問題タブ [bnf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
context-free-grammar - 例外を捕捉するための路線図の拡張機能はありますか?
鉄道図は、文脈自由文法を視覚化する一般的な方法であり、Backus-Naur Form をこれらの図にマッピングできます。しかし、 BNF の一部の変種、たとえばW3C-BNFでは例外が許可されます (文脈自由言語は違いの下で閉じられていないため、これらの例外は規則的でなければなりません)。鉄道図で例外のある文法を視覚化したいと思います。グラフィカル表記の独自の拡張機能を発明する必要がありますか、それとも誰かがすでにこれを試していますか?
例外のあるルールの例を次に示します (はい、この特定の文法を例外なく表現することもできますが、それは重要ではありません)。
例外は、通常の文法である可能性があります。特殊なタイプの矢印または線 (ここでは感嘆符で示されています) によって非終端記号に接続された例外を追加することを考えました。
PS:文法が間違っていました。
否定の非直感的な使用が、形式文法で否定がほとんど使用されない理由の 1 つかもしれません。
programming-languages - BNFに関する質問
この文法は BNF で書かれています。+ を * よりも優先し、+ を右結合にするように変換するにはどうすればよいですか?
これが私の解決策です:
特定の文法の正確性を確認するにはどうすればよいですか? 何か案が?
ありがとう、
bnf - CのBNFの開始状態は?
CのBNFでどれが開始状態か分からない
誰でも知っていますか?
context-free-grammar - 正規表現
まず第一に、これが私が求めているものの正しい翻訳であるかどうかはわかりません。
私のコースの1つでは、正規表現や形式言語などについて学び始めました。
この場合、私が1Rから始めたとしましょう。そうすれば、1Rまたは0Rのどちらかを続けていくことができます。
1Rから始めると、1 ....すると、文(この場合は2進数)は完全になりますか?後で何かを「追加」できないので、1Rと言ってから、1を選択してから、もう一度1Rを選択しますか?
よろしくお願いします。正しくない場合は、投稿にタグを付け直してください。
追加した:
1100110を生成する方法は?
これは宿題ではなく、パワーポイントからの例/質問です。それがどのように行われるのかわかりません。
presentation - EBNF プレゼンテーションの例?
電子メディア (つまり HTML)の拡張バッカスナウア形式のプレゼンテーションの良い例を知っている人はいますか?
内容ではなく形式に関する提案を探しています。ルール、端末、および EBNF シンボルを簡単に区別できるように、できるだけ読みやすくすることを目指しています。
validation - 電子メール検証の質問 [abnf] [RF 5322]
次の文で、次の意味は何ですか1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )
誰かが簡単な言葉でそれを分解できますか?
次の [ABNF] プロダクションに一致する任意の文字列:
atext は [RFC 5322] で定義されているとおりであり、ldh-str は [RFC 1034] で定義されているとおりです。
parsing - Yaccパーサーの文法のバグ。int X; intXおよび;として個別に読み取ります。
問題の説明
私のyaccパーサー文法では、次のルールと対応するアクションが定義されています(以下のprogram.yを参照)。構文解析int X;
には派生type => TOK_INT
とが必要variable_list => TOK_VARIABLE
であり、これらは。で終わる宣言と一致しstatment ;
ます。ただし、これをint X
およびとして読み取ります;
。つまり、2つの別々のステートメントです。誰もが理由を見ることができますか?
program.y
python - WikiLeaks ケーブル用のフォールト トレラントな Python ベースのパーサー
少し前に、ウィキリークスが公開したケーブル用のBNF ベースの文法を書き始めました。しかし、私のアプローチはおそらく最善ではないことに気づき、改善を求めています。
ケーブルは 3 つの部分で構成されています。head にはRFC2822スタイルのフォーマットがあります。これは通常正しく解析されます。テキスト部分は、よりカジュアルな仕様になっています。たとえば、REFラインがあります。これは で始まるはずREF:
ですが、異なるバージョンが見つかりました。次の正規表現は、ほとんどのケースをキャッチします: ^\s*[Rr][Ee][Ff][Ss: ]
. そのため、前にスペースがあり、さまざまな場合があります。テキスト部分はほとんどがプレーン テキストで、特別な形式の見出しがいくつかあります。
各フィールド (日付、REF など) を認識し、データベースに入れたいと考えています。Pythons SimpleParse を選択しました。現時点では、認識できない各フィールドで解析が停止します。現在、よりフォールト トレラントなソリューションを探しています。すべてのフィールドには何らかの順序があります。パーサーがフィールドを認識しない場合、現在のフィールドに「認識されない」ブロブを追加して続行する必要があります。(または、ここでより良いアプローチがあるかもしれません)。
どのような種類のパーサーまたは他の種類のソリューションを提案しますか? 周りに何か良いものはありますか?
xml - ABNF を XML に自動的に変換できますか?
ABNF を XML に自動変換することは可能ですか? 特に、ABNF で記述された音声認識文法を XML に変換する必要があります。ありがとう。
regex - RFC 2141 の NID の BNF 構文を説明する
行は<NID> ::= <let-num> [ 1,31<let-num-hyp> ]
です。<NID>
それは文字列の記号であり、2 つの規則によって制約されていることを意味すると思います。
- 文字列は、いずれかの文字の 1 回の出現で始まる必要があります
<let-num>
。 - この文字の後には、任意の文字が 0 ~ 31 回 * 続く場合があります
<let-num-hyp>
。
私はこれを正しく読んでいますか?もしそうなら、いくつかの意味は少し混乱するからです。
* 「オプションで、1 ~ 31 回の出現」と同等
RFC2141<NID>
の(名前空間識別子)の完全な BNF 構文は次のとおりです。