2012-06-13 2 views
2

Xtext 문법이 파일의 끝을 유효한 문으로 인식하도록 만들기 위해 노력하고 있지만 지금까지 시도한 모든 방법이 작동하지 않습니다.Xtext에서 EOF를 사용하는 방법

EOF를 사용하려고하면 직접 나에게 편집기에서 메시지는 "입력 'EOF'에서 더 실행 가능한 대안"표시되지 않습니다 :

:
Object : 
    typ=('char'| 'any' | 'number' | 'space' | 'symbol') (' ' | ';' | EOF) 
; 

그래서 내가 EOF로 연결되는 터미널을 소개하는 시도를
terminal ETX: EOF; 
... 
Object : 
    typ=('char'| 'any' | 'number' | 'space' | 'symbol') (' ' | ';' | ETX) 
; 

xtext 그런 식으로 컴파일 가능한이지만, 나에게 같은 오류를 줄 것이다
(일식 응용 프로그램으로 xtext를 실행할 때 열리는 하나)을
"언어 편집기 창"에서 위와 같이 내가 마지막 요소 뒤에 공백이나 세미콜론 (문자)를 입력하지 않는 경우 오류가 발생합니다

symbol number char(!) 

내가 터미널에 세 허용 요소를 넣을 때 같은 일이 발생합니다

terminal END: (' ' | ';' | EOF); 
... 
Object : 
    typ=('char'| 'any' | 'number' | 'space' | 'symbol') END 
; 

문법은 정의 된 형식의 문자열을 구문 분석하는 데 사용되는 일종의 정규 표현식 언어 인
을 설명하는 데 사용됩니다. 예를 들어 :

char_symbol_number_ 
char_symbol_number; 

은 (오류가 표시되지 않습니다) 코드 수정에 의해 허용됩니다 (I이 명확를 만들기 위해 공백을 밑줄 대체합니다).

char_symbol_number 

나에게 두 번째 일식 편집기 창에서 위에서 언급 한 오류를 줄 것이다 반면.
(내 정의 된 언어 코드 완성 등으로 한.)

이 문제를 지적하려면, 내가 무엇을 달성 노력하고있어 그대로 내가 마지막 문을 떠날 수 있도록 순수 cosmetical 조정,
입니다 공백이나 세미콜론을 추가하지 않아도됩니다.


그래서 질문입니다 : Xtext가 EOF (nothing)를 유효한 종료 문으로 인식하도록하려면 어떻게해야합니까?

답변

0

난 단지 최종 구문은 다음과 같이 방법을 문법 조각에서 추측하지만, 당신을 위해 않을 것

Object: typ=('char'|'any') ';'? ; 

작업을 할 수 있습니까?

+0

빠른 응답 감사합니다. 아니, 작동하지 않는다 "나는 입력" ' "오류와 같은 실행 가능한 대안을 얻을. –

+0

완전한 문법과 유효한 것으로 기대되는 완전한 샘플 파일을 게시하십시오. –