1
Antlr 버전 4.0을 사용하여 논리 표현식을 구문 분석하고 트리를 생성하여 표현식을 평가하려고합니다.Antlr 생성자 LogicLexer (ANTLRStringStream)이 eclispe에서 정의되지 않았습니다.
antlr 도구를 실행하여 파서와 렉서를 생성했지만 프로젝트에 생성 된 파일을 배치 할 때 "생성자 LogicLexer (ANTLRStringStream)이 정의되지 않았습니다."및 "생성자 CommonTokenStream (LogicLexer) 정의되지 않았습니다 ".
코드
은 다음과 같습니다 : 당신이 렉서와 파서 클래스를 생성하기 위해 V4 도구와 v3의 문법을 사용하고 같은LogicLexer lexer = new LogicLexer(new ANTLRStringStream(expression));
LogicParser parser = new LogicParser(new CommonTokenStream(lexer));
CommonTree tree = (CommonTree)parser.parse().getTree();
나는 것 앤틀 항아리가 당신의 classpath에없는 것 같아요. –
필자는이 Antlr 버전을 사용하지 않았지만 새 API 참조에 따라 해당 클래스는 antlr 4의 일부가 아닙니다. http://antlr4.org/api/Java/index.html 참조 할 부분은 작동해야하는 코드입니다. Antlr 3을 위해. –
아마도 도구가 Antlr의 다른 버전 용으로 설계되었습니다. 문서가 말해야합니다. –