저는 ANTLR의 초보자이며 애매한 언어를위한 파서를 개발하는 데 사용합니다. 내가하고 싶은 것은 AST를 사용하지 않고 "주석"주위의 토큰을 하나의 토큰으로 결합하는 방법입니다.ANTLR에서 주석 주위에 토큰을 결합하는 방법
나는 문제 이제 우리는 간단한 텍스트 "테스트 {댓글} 어"두 개의 토큰이 생성됩니다 즉, "테스트"와 "어"로 그것을 실행하면
grammar test;
query
: expression+
;
expression
: alpha
;
alpha
: ID
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
COMMENT
: '{' (options {greedy=false;} : .)* '}' {$channel=HIDDEN;}
;
에게 설명하기 위해이 간단한 문법을 사용하고 있습니다 . 반면에 하나의 토큰을 만들고 싶습니다. 어떤 도움을 많이 주시면 감사하겠습니다. 사전에
덕분에
짐
이런 방식으로 작업하면 아마도 사전 처리가 필요할 것입니다. LL/LR 파서는 모호한 언어 인 btw를 처리하도록 설계되지 않았으므로 향후 몇 가지 어려운 문제에 직면 할 수도 있습니다. – ricochet1k
여기에 게시 : http://antlr.markmail.org/message/nvtzsu6zoh4b3pr4 –