나는 부분 태그가있는 텍스트를 AST의 절인 문구가있는 ANTLR3 AST로 변환하는 작업을하고 있습니다.일부 단어가 키워드 인 ANTLR3에서 Lexing space로 분리 된 단어
DT-THE The NN dog VBD sat IN-ON on DT-THE the NN mat STOP .
즉, (태그 토큰) + 태그 또는 토큰이 모두 공백 포함 여기서
ANTLR에 대한 입력은 같다.
가되는 렉싱이 좋은 방법 다음
WS : (' ')+ {skip();};
TOKEN : (~' ')+;
문법은 다음과 같은 항목을 포함하여 AST의 가장 낮은 레벨에 대해 설명하기 위해 다음의
dtTHE:'DT-THE' TOKEN -> ^('DT-THE' TOKEN);
nn:'NN' TOKEN -> ^('NN' TOKEN);
(186 자세히 이것들!)
이 접근법은 작동하는 것처럼 보이지만 ~ 9000 라인의 Java Lexer를 생성하고 (~ 2GB) 빌드하기 위해 많은 양의 메모리를 필요로하므로이게 opti인지 궁금해하고있었습니다. 이 문제를 푸는 방법.
답변을 주셔서 감사합니다. TOKEN이 렉서를 수정하여 단일 토큰으로 인식되는 것을 의미합니까? (그렇지만 각 태그 유형에 대해 하나의 렉서 규칙을 사용할 수 있습니까?) – Dan2097