Loading article…

構文定義形式( SDF ) は、文脈自由文法を定義するために使用されるメタ構文です。つまり、形式言語を記述する形式的な方法です。文脈自由文法の全範囲を表現できます。現在のバージョンは SDF3 です。[ 1 ] SDF 仕様のパーサーとパーサージェネレータは、無料のASF+SDF メタ環境の一部として提供されています。これらは SGLR (スキャナレスGLR パーサー) を使用して動作します。SDF パーサーは、構文木、または曖昧さがある場合は構文フォレストを出力します。
SDFの特徴:
次の例は、SDF2における単純なブール式構文を定義しています。
モジュール基本/ブール値 輸出 ソート ブール値 文脈自由開始記号ブール値 文脈自由構文 「true」→ブール値 「false」→ブール値 lhs:ブール値 "|" rhs:ブール値 -> ブール値 {left} lhs:ブール値 "&" rhs:ブール値 -> ブール値 {left} 「not」 "("ブール値")" -> ブール値 "("ブール値")" -> ブール値 文脈に依存しない優先順位 ブール値 "&" ブール値 -> ブール値 > ブール値 "|" ブール値 -> ブール値