2010-02-03 34 views
1

我使用pyPEG爲簡單的語法創建了一個分析樹。樹使用列表和元組來表示。這裏是一個例子:如何處理具體語法樹?

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

我的問題是我在這一點上用它做什麼?我知道很多事情取決於我正在嘗試做什麼,但我一直無法找到關於消費/使用分析樹的信息,只能創建它們。有沒有人有任何指向我可能使用的引用?

感謝您的幫助。

回答

2

對於some reasons,CSTs(具體語法樹)很難使用。因此,它們通常轉換爲AST(抽象語法樹)以供進一步處理(相同文章中的細節)。例如,the Python compiler(將Python源代碼轉換爲Python VM字節碼的組件)將CST轉換爲AST作爲其工作的一部分。

現在,它確實在很大程度上取決於您的最終目標。你在分析什麼?你想用它做什麼?如果您正在重新創建一個經典的編譯流程,轉換爲AST可能是一個好方法。否則,你可能會發現CST足夠 - 這一切都取決於你需要什麼。

0

我們有一個社區委員會來支持圍繞pyPEG的這些問題。你可以在這裏找到它:https://community.fdik.org/board/show/2/pypeg/

你的, VB。

+2

Volker,該董事會搬到了別的地方嗎?鏈接似乎已經死了... – FriendFX 2012-05-27 23:25:18