鉄道図は文脈自由文法を視覚化する一般的な方法であり、これらの図にBackus-Naur Formをマップすることができます。しかしsome variants of BNF、例えばW3C-BNFは例外を許可します(文脈自由な言語は相違の下で閉じられないので、これらの例外は規則的でなければなりません)。私は鉄道の図で例外を含む文法を視覚化したいと思っています。私は自分自身の拡張をグラフィカル表記法に基づいて作成するのか、それとも既にこれを実験した人がいますか?ここで例外を捕捉するための鉄道線図の拡張はありますか?
は(はい、あなたも例外なく、この特定の文法を表現することができますが、それはポイントではありません)を除いて、ルールの例です:
comment := "<!--" (string - "--") "-->"
例外は任意の正規文法ことができます。 PS
[<] → [!] → [-] → [-] → (string) → [-] → [-] → [>]
!
! → [-] → [-] → ↯
:文法が間違っていた、それは
comment := "<!--" (string - (string "--" string | string "-")) "-->"
する必要があります私は、矢印や線のいくつかの特殊なタイプ(ここでは感嘆符で示されている)によって非終端記号に接続された例外を追加することを考えました
否定の非直観的な使用は正式な文法ではほとんど使われない理由の1つですか?
興味深い。私はコードポイントと範囲に異なる形のボックスを使用したいと思います。単純な正規表現もこのようなボックスに入れることができます。ターミナルシンボル、非終端記号、パターンシンボルの3種類のボックスがあります。これらのパターンボックスに非終端記号をあなたの "Char - " - ""のように置くことは、改善できる妥協点です。どのように他のボックスの形でパターンを含むボックスを描画するのですか? – Jakob
あなたは正しいです、ターミナルボックスは適切ではないので、私はそれに応じて発電機を変更しました。 – Gunther
良い解決策。私はこれを「違い」ボックスに拡張しました。違いがあれば、文法をより読みやすく書くことができますが、解析するのが難しくなります。http:// imgur。com/inakK – Jakob