2010-02-03 4 views
1

난 간단한 문법에 대한 구문 분석 트리를 만들려면 pyPEG을 사용하고 있습니다. 트리는리스트와 튜플을 사용하여 표현됩니다. 여기 예가 있습니다 :구체적인 구문 트리로 무엇을합니까?

[('command', 
    [('directives', 
    [('directive', 
     [('name', 'retrieve')]), 
    ('directive', 
     [('name', 'commit')])]), 
    ('filename', 
    [('name', 'f30502')])])] 

제가 지금이 질문에 어떻게 대답합니까? 나는 내가 무엇을하려고하는지에 따라 많은 것을 알지만, 파스 트리를 소비/사용하는 것에 관해서는 많이 알지 못한다. 누구든지 사용할 수있는 참조 포인터가 있습니까?

도움 주셔서 감사합니다.

답변

2

CST (구체적인 구문 트리)는 some reasons에서 작동하기가 어렵습니다. 따라서 추가 처리를 위해 일반적으로 AST (추상 구문 트리)로 변환됩니다 (동일한 아티클의 세부 정보). 예를 들어, the Python compiler (Python 소스 코드를 Python VM 바이트 코드로 바꾸는 구성 요소)은 작업의 일부로 CST를 AST로 변환합니다.

이제는 최종 목표에 크게 좌우됩니다. 너 파싱은 뭐니? 그걸로 무엇을하고 싶니? 클래식 컴파일 플로우를 다시 작성하는 경우 AST로 변환하는 것이 좋습니다. 그렇지 않으면 CST를 충분히 찾을 수 있습니다. 필요한 CST가 모두 필요합니다.

0

우리는 pyPEG와 같은 질문에 대한 지원을위한 커뮤니티 보드를 보유하고 있습니다. 너는 여기에서 그것을 발견 할 수 있는다 : https://community.fdik.org/board/show/2/pypeg/

너의 것, VB.

+2

Volker, 다른 이사 이사회가 있습니까? 링크가 죽은 것 같습니다 ... – FriendFX