2010-08-15 58 views
4

我需要一個類,最好用PHP,C#或Python編寫,它可以解析PHP並返回一個令牌樹。任何人都可以提出一個好的,準確的嗎?任何人都可以提出一個很好的PHP解析類嗎?

+0

你說的「令牌樹」的意思(這不是一個標準術語,我知道)?你的意思是一個匹配PHP語法的具體解析樹嗎?你的意思是抽象語法樹嗎? – 2010-08-15 04:22:05

回答

5

交給PHP有一個本地函數來做到這一點:http://php.net/token_get_all

+1

我不認爲它做了一棵樹,只是一個令牌流。原始請求是針對樹的。 另一方面,我不確定解析器是否有內部樹。可能只是一個狀態機。當然,在一個php塊中打開一個括號並關閉另一個不會幫助樹生成。我猜可以使用跳過令牌。 – 2010-08-15 02:23:21

+0

構建一個接收令牌數組並將其轉換爲對象樹的OO樹並不難(基本上,在塊的開始處創建一個新對象並將其解析爲該對象,然後將該對象的樹一旦塊完成解析)... – ircmaxell 2010-08-15 04:06:54

+0

@ircmaxwell:是的,你可以得到一棵樹,那種方式使用了令牌。您可以定義大量具有任意內部節點的樹,其樹葉恰好是來自token_get_all的令牌。但是擁有這樣一棵樹的意義是什麼(如果它不是某種解析樹)? – 2010-08-15 04:24:18

相關問題