再帰下降パーサプログラム

某ノベルゲームエンジンのシンタックスに対応したPerl Parse::RecDescentによるLL型再帰下降パーサプログラムとコンパイラ。
応用することでさまざまなアプリケーションの任意のスクリプトに対応できます。
構造
Keywords: LL, parser, compiler, recursive descent parser, BNF

on Parse Process
+---------+        +------------------+
| main.pl |        |    BaseParser    |
+---------+        +------------------+
           \ use      |            |
            \___      |   inherit  |
                \,    |            |
+----------+ use +----------+  +---------+
|RLCommands|<----| RLParser |  | TParser |
+----------+     +----------+  +---------+
     |                             ^
     |                         use |
     +-----------------------------+

on Compile Process
       +---------+
       | main.pl |
       +---------+
            |
            | use
           .|,
      +------------+
      | NVCompiler |
      +------------+


内蔵のステートマシンによって意味を解釈し、スクリプト中に含まれる変数、計算式などを計算します。その後は任意の中間言語やデータファイルとして書き出します。
某ゲームでは動作に2つのファイルが必要とされ、スクリプト本体、付随する台詞ファイルを同時に解釈しなければなりません。
そのため、パーサ部が二つとなっています。
問題
  • LL型パーサの限界により、左再帰文法がパース不可能