1

pyPEGを使用して、単純な文法の解析ツリーを作成しています。ツリーは、リストとタプルを使用して表されます。次に例を示します。

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

私の質問は、この時点でそれをどうするかということです。私は自分が何をしようとしているかに大きく依存することを知っていますが、解析ツリーの消費/使用についてはあまり見つけることができず、作成するだけです。誰かが私が使用する可能性のある参照へのポインタを持っていますか?

ご協力いただきありがとうございます。

4

1 に答える 1

2

CST(具体的な構文木)は、いくつかの理由で操作が非常に困難です。したがって、それらは通常、さらなる処理のためにAST(抽象構文木)に変換されます(詳細は同じ記事にあります)。たとえば、Pythonコンパイラ(PythonソースコードをPython VMバイトコードに変換するコンポーネント)は、作業の一環としてCSTをASTに変換します。

さて、それは本当にあなたの最終的な目標に強く依存します。何を解析していますか?あなたはそれで何をしたいですか?従来のコンパイルフローを再作成する場合は、ASTに変換することをお勧めします。そうでなければ、CSTを十分に見つけることができます-それはすべてあなたが必要とするものに依存します。

于 2010-02-03T03:55:59.573 に答える