가 난 그냥 뭔가 두통을 만났다 문사용 ANTLR 문법 내가 예를 가지고있는 것처럼 나는, 다른 기능으로 문을 분할하려고 ..</p> <p>를 (함수는 같은 시작 항목이 있지만, 중간에 키워드를 가질 수있다)
start
n turnTo 's'.
n terminate.
end
문 모두 현재 내가 쓰고, 'N'로 시작
statement
:
(turnTo_statment|terminate_statment)*
;
turnTo_statment
:
variable 'turnTo' '\'' value '\'' '.'
;
terminate_statment
:
variable 'terminate' '.'
;
하지만 렉서 실행, 그것은 결정할 수없는 경우 베카있는 하나입니다 substatemts를 모두 사용하는 것은 'n'과 같은 것으로 시작하고, 컴파일러는 규칙을 사용하기 위해 다른 선택을해야합니다. 다음 문자열이 첫 번째 규칙 컴파일러와 일치하지 않으면 자동으로 일치하는 오류가 발생합니다.
'x turnTo y'를 만났을 때 ANTLR을 확인하고 말한 다음 'x terminated'를 만났을 때 turnTo_statment 규칙을 사용하면됩니다. 다음 규칙 terminate_statment을 사용 ..
즉, ANTLR의 모든 기능이 이렇게 ..
statement
:
((if statement contain_keywords 'turnTO') -> turnTo_statment
|
(if statement contain_keywords 'terminate') ->terminate_statment)*
;
덕분에 ..