モノイド的構文解析言語 MonParser - MonParser の構文解析(C# 形式)
MonParser (C# 形式) バージョン 0.2
演算子を使うように仕様を変更します。演算子を多用すると何が書いてあるかわかりにくくなりますが、簡潔に書くことができるので全体の構成が把握しやすくなります。まだ仕様は決まっていませんが、現在の状況を書いておきます。C# で書くことができるように仕様を決めていきます。
- 「str(文字列)」は構文木で使われない文字列を表します。文字列は正規表現を表します。
- 「st(文字列)」は構文木で使われない文字列を表します。文字列は正規表現ではありません。
- 「opr(文字列)」は構文木で使う文字列を表します。文字列は正規表現を表します。
- 「op(文字列)」は構文木で使う文字列を表します。文字列は正規表現ではありません。
- 「構文式 >> 演算子の構文式」は左結合二項演算子の演算が連続した式を表します。コンストラクターによって二項演算の構文木を構成します。コンストラクターがないときはリストを構成します。
- 「構文式 << 演算子の構文式」は右結合二項演算子の演算が連続した式を表します。コンストラクターによって二項演算の構文木を構成します。コンストラクターがないときはリストを構成します。
- 「構文式 > 演算子の構文式」は後置単項演算子の演算が連続した式を表します。コンストラクターによって単項演算の構文木を構成します。
- 「構文式 < 演算子の構文式」は前置単項演算子の演算が連続した式を表します。コンストラクターによって単項演算の構文木を構成します。
- 「構文式1 & 構文式2」は構文式1と構文式2が連続する構文を表します。
- 「構文式1 | 構文式2」は構文式1と構文式2のどちらかが成立することを表します。
- 「構文式 * n」(n は 0 以上の整数)は構文式が n 回以上繰り返される構文を表します。
- 「構文式 ^ コンストラクター」は構文式で表された構文を表し、構文式から構文木を構成します。