2017-11-28 35 views
-2

Antlr 구문 분석 트리를 생성하려고합니다. 이것은 웹에서 얻은 샘플 문법입니다.Antlr 구문 분석 트리 생성

grammar Hel; 
hi : 'hello' ID ;   
ID : [a-z]+ ;    
WS : [ \t\r\n]+ -> skip ; 

나는 Parup 트리를 생성하기 위해 Jupyter 노트북에서 다음 코드를 시도했다.

해결 방법을 알려주세요.

from antlr4 import * 
from HelLexer import HelLexer 
from HelParser import HelParser 


input = InputStream('hello jgt') 
lexer = CoDalogLexer(input) 
stream = CommonTokenStream(lexer) 
parser = HelParser(stream) 
tree = parser.hi() 

어떻게 파스 트리를 생성합니까? 나무의 요소에 어떻게 접근합니까?

감사합니다.

+0

무엇이 잘못되었는지 설명하지 않았습니다. 'tree'는 파스 트리를 포함해야합니다. –

+0

어떻게 나무의 요소에 액세스합니까? –

답변

0

구문 분석 트리의 요소에 액세스하는 것은 간단하며 생성 된 클래스를 살펴볼 때 명확 해집니다. 구문 분석 트리에는 구문 분석 중에 발견 된 요소에 대해 생성 된 모든 구문 분석 규칙 컨텍스트에 액세스 할 수있는 children 속성 또는 메서드가 있습니다. 편의상 특정 하위 컨텍스트에 쉽게 접근 할 수있는 특수 접근자가 있습니다. 귀하의 예에서는 HiParseContext에 ID() 함수가 표시되어 일치하는 ID 토큰 (예 : 입력의 위치, 토큰 유형, 토큰 텍스트 등)에 대한 세부 정보를 제공합니다. 가능한 소스를 보려면 생성 된 소스 코드와 런타임 소스 코드를 살펴보십시오.