ANTLR의 내 문법에서 Java 코드는 "$"가 포함 된 입력에 대한 오류를 포착하고 인쇄 할 수 있습니다. 필자의 구현에서는 성공적인 입력을 위해 "성공"을 인쇄해야합니다. 그래서, 내 경우에는 잘못된 입력에 대한이 0보다
CharStream charStream = new ANTLRFileStream(filePath);
myLexer lexer = new myLexer(charStream);
TokenStream tokens = new CommonTokenStream(lexer);
myParser parser = new myParser(tokens);
/*if there is an error throws an exception message*/
parser.program();
/*if there is an error find how many, if 0 then print success,*/
int errorsCount = parser.getNumberOfSyntaxErrors();
if(errorsCount == 0){
System.out.println("parsing successful");
}
getNumberofSyntaxErrors 반환 숫자보다, 내 자바 코드에서 다음을 수행합니다. "int i;"의 경우, 출력은 그냥; 내가 INT의 $ 같은 입력에 내 코드를 실행하면
parsing successful
난 자바 코드가 getNumberofSyntaxErrors()가 0을 반환하기 때문에 "성공적인 분석"로 오류 메시지를 출력 ;,;
line 1:4 no viable alternative at character '$' /*this is what I expect to see*/
parsing successful /*this is not what i expect to see*/
바트, 감사합니다. –
존 환영합니다. –