Antlr은 ~, @, #, $, %, * 등의 문자를 무시합니다. , (,), {,}, [,] 입력 문자열에서.
나는 show ~~~, show ~ @ # $ % 등과 같은 입력 문자열을 사용하여 아래의 문법을 테스트했지만 Antlr은 eclipse/antlr works interpreter의 문자를 이스케이프 처리합니다. 나는 그러한 시나리오가 예외를 던지기를 원하고 그것으로부터 복구하지 않기를 바란다. Pls는 당신이 전에 이것을 직면했는지 알려주고 만약 그렇다면 무엇을해서 그것을 없애려고합니까?
grammar Sample;
options {language = Java;} @header {package a.b.c;} @lexer::header {package a.b.c;}
prog: stat+ ; stat: expr ; expr: paramValueChildStructure ;
paramValueChildStructure: ALPHANUMERIC;
ALPHANUMERIC: ('a'..'z' |'A'..'Z' | '0'..'9')+ ;
내가 옵션은 위의 문제를 제거하는 아래에 시도했지만이 내 생성
OTHER : . {throw new RuntimeException("unknown char: '" + $text + "'");};
lexer.java 감사에 도달 할 수없는 코드 컴파일시 문제를 제공, 인 Ashish
이 코드를 추가 할 때 문제가 해결되었습니다. @lexer :: 회원은 { \t \t 공개 무효가 (RecognitionException 재) { \t \t \t \t은 System.out을 복구 할 수 있습니다.println ("lexer memeber recover"); \t \t \t \t throw 새로운 RuntimeException (re); \t \t} } – user1836974