2017-10-07 25 views
0

ANTLR4와 Java를 사용하여 코드 압입기를 작성하고 있습니다. 나는 렉서와 파서를 성공적으로 생성했다. 그리고 내가 사용하고있는 접근법은 생성 된 구문 분석 트리를 살펴 보는 것입니다.ANTLR을 사용하는 코드 압입기 4

ParseTreeWalker mywalker = new ParseTreeWalker(); 
    mywalker.walk(myListener, myTree);  

자동 생성이 * BaseListener 아래 같은 방법 ...

@Override public void enterEveryRule(ParserRuleContext ctx) { } 

내가 ANTLR 매우 새로 온 사람이있다. 하지만, 내가 이해, * BaseListener 확장하고 관련 메서드를 재정의하고 들여 쓰기 코드를 작성해야합니다, 그래서 내 질문에 내가 입력 코드 파일을 들여 쓰기에 대한 무시 해야하는 방법은 무엇입니까? 또는 내가 취해야 할 대체 방법이 있다면 알려 주시기 바랍니다.

감사합니다.

답변

1

없음. 이 작업을 위해 파서가 필요하지 않으며 파서가 필요할 때 올바른 코드로 제한하고 있습니다 (따라서 구문 오류로 인해 코드를 다시 포맷 할 수 없음). 대신 렉서를 가져 와서 모든 토큰을 반복합니다. 상태에 따라 당신이 어디에 있는지 (블록, 기능, 무엇이든) 알 수있게하고 그에 따라 들여 쓰기를하십시오.