2010-08-15 6 views
4

J'ai besoin d'une classe, de préférence écrite en PHP, C#, ou Python, qui peut analyser PHP et retourner une arborescence de jetons. Quelqu'un peut-il suggérer un bon, précis?Quelqu'un peut-il suggérer une bonne classe d'analyse PHP?

+0

Que voulez-vous dire par un « arbre symbolique » (ce n'est pas un terme standard, je sais)? Voulez-vous dire un arbre d'analyse concret correspondant à la grammaire PHP? Voulez-vous dire un arbre de syntaxe abstraite? –

Répondre

5

Laissez PHP d'avoir une fonction native de faire exactement cela: http://php.net/token_get_all

+1

Je ne pense pas que ce soit un arbre, juste un jeton. La demande d'origine concerne l'arbre. Par contre, je ne suis pas sûr que l'analyseur ait un arbre interne. Pourrait être juste une machine d'état. Certes, ouvrir un crochet dans un bloc php et le fermer dans un autre n'aide pas la génération d'arbres. Il pourrait utiliser des jetons de saut, je suppose. –

+0

Il ne serait pas difficile de construire un arbre OO qui prend un tableau de jetons et le convertit en un arbre d'objets (Fondamentalement, au début d'un bloc créer un nouvel objet et lui remettre l'analyse, puis remettre le analyser une fois que le bloc est terminé) ... – ircmaxell

+0

@ircmaxwell: oui, vous pourriez obtenir un arbre, qui a utilisé des jetons de cette façon. Vous pouvez définir beaucoup d'arbres avec des noeuds internes arbitraires dont les feuilles sont les tokens de token_get_all. Mais quel serait le point d'avoir un tel arbre (si ce n'était pas une sorte d'arbre d'analyse)? –

Questions connexes