2013-04-04 5 views
8

나는 추상 구문 트리를 만드는 ANTLR3 문법을 가지고있다. ANTLR4로 업그레이드하는 중입니다. 그러나 ANTLR4는 추상 구문 트리가 아닌 구문 분석 트리 만 작성합니다. 예를 들어, output=AST 옵션은 더 이상 인식되지 않습니다. 더구나 "AST""추상 구문""The Definitive ANTLR4 reference" 텍스트에 나타납니다.ANTLR4를 사용하여 AST를 작성하려면 어떻게해야합니까?

제가 누락 된 부분이 있는지 궁금합니다.

내 응용 프로그램은 현재 ANTLR3에서 생성 한 AST를 크롤링하는 방법을 알고 있습니다. 파스 트리를 처리하기 위해 그것을 변경하는 것은 불가능하지 않지만 약간의 작업이 될 것입니다. 나는 그 길을 시작하기 전에 그것이 필요하다는 것을 확실하게하고 싶다.

+0

이 질문은 결국 http://stackoverflow.com/questions/29971097/how-to-create-ast-with-antlr4에 응답되었습니다. – James

답변

7

ANTLR 4는 임의의 AST 연산자 및/또는 다시 쓰기 규칙을 기반으로하는 AST 대신 문법을 기반으로 구문 분석 트리를 생성합니다. 이를 통해 ANTLR 4는 문법을 사용하여 코드에서 구현할 수있는 리스너 및 방문자 인터페이스를 자동으로 생성 할 수 있습니다.

변경 사항은 기존 응용 프로그램을 버전 3에서 업그레이드하는 사용자에게 큰 변화가 될 수 있지만 전체적으로 새 시스템은 훨씬 사용하기 쉽고 (특히) 유지 관리가 쉽습니다.

+0

감사합니다. 새로운 시스템의 장점을 이해할 수 있는데,이 시스템을 업그레이드하고 싶습니다. 나는 그렇게하기 위해 필요한 것을 할 의향이 있습니다. 나는 그 노력에 착수하기 전에 상황을 이해하고 싶었다. 내가하는 것처럼 들린다. –

+0

'ParserRuleContext'를 AST의 노드로 사용할 수 있습니까? – jiamo

관련 문제