パーサ入門として式解析の一つである再帰下降構文解析をTypescriptで実装してみたのでまとめました。 構文解析の基礎 構文解析入門にあたって基本的な語句を整理します。 構文図 構文の規則を図式化したもの。構文の構成要素とその関係性を図式で表します。 例えばある言語のルールとして「英字で始まりで英字と数字で構成されるもの」が識別子とされている場合、その識別子は下記のような構文図で表されます。下記の例だとab0, b01aなどが該当します。 BNF記法 構文図を文字列で表現したもの。例えば前述の例を表す場合 <識別子> ::= <英字> (<数字> | <英字>) <英字> ::= a | b | c| ... | z <数字> ::= 0 | 1 | 2 | ... | 9 のようになります。<>で囲まれているものは非終端記号、それ以外を終端記号といいます。 非終端記号: 他の文字列で代