2

現在、不器用な「手作り」の C# および Java パーサーがある既存の言語用の JavaScript パーサーを作成しようとしています。私はジソンを使いたいと思っており、バイソンの基礎も学ぼうとしています。

答え方がわからない質問は、Bison/Jison の出力は正確には何ですか? 何かを自動的に取得しますか (AST など)? または、bison ファイルを書いている人によるルール アクションを使用してすべてが行われます。たとえば、ルールに適合する新しい変数の割り当てを指定するルールがあるとします。

VariableStatement : VAR VariableDeclarationList ';'

{ var var1 = {name: $1, value: $2 } などのアクションを指定する必要がありますか (まあ、この特定のルールでは機能しませんが、$2 は何らかの端末トークンであると仮定します)。ジソンは実際に新しい変数を作成しますか? それとも私はそれを間違っていますか?

ありがとう!

4

1 に答える 1

5

自動的に得られるのは構文エラーだけです。つまり、アクションを指定しない場合、bison によって生成されたコードは、入力が文法に対応していることを確認し、それ以外は何も確認しません。

于 2014-01-23T20:28:58.670 に答える