引用 : 正規表現エンジンを作ろう (3) 構文解析 構文解析処理では、字句解析処理で作成されたトークンをもとに構文的なチェックを行い、同時に構文木の作成を行います。 構文解析を行うにあたって、事前に正規表現の文法規則を整理しておく必要があります。ここではバッカス・ナウア記法(BNF)と呼ばれる記法を用いて、文法規則を記述します。この文法規則に従って正規表現を分解することで、正規表現として与えられた文字列が構文として正しいかどうかを確認することができます。 <expression> ::= <subexpr> <EOF> <subexpr> ::= <seq> "|" <subexpr> | <seq> <seq> ::= <subseq> | "" <subseq> ::= <star> <subseq> | <star> <star> ::= <factor> "*" | <facto