JavaScript (31) パーサージェネレーター

EBNF (Extended Backus–Naur Form) で記述した構文からパーサー(構文解析プログラム)を生成するパーサージェネレーターを作成しました。generatortest01 として公開しました。

図29 生成されたパーサー
【図29 生成されたパーサー】

上図は生成されたパーサーの一部です。EBNF の非終端記号 syntax の定義 rule, {rule} から生成されたメソッド syntax() です。解析された結果は match という配列に入り、run() というメソッドに渡され、その中で JavaScript のコードに変換されます。実行部分という意味で run という名前にしました。メソッド run() は生成の対象ではありません。

EBNF の構文からパーサーを作れるようになったので、色々と応用してみたいと思います。

コメントを残す