問題タブ [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.

0 投票する
1 に答える
428 参照

parsing - HL7 (HL7.org) メッセージ形式は、LALR(1) 互換性のある BNF として表現できますか?

これを新しいメッセージとして再投稿しました (もともと私は HL7 の BNF 文法を求めていました)。HL7 のすべてを BNF として表現することは可能かもしれませんが、BNF を LALR(1) 準拠 (完全に決定論的) にする必要があります。Devon Cooks Gold Parser はツールセットです。

自分で BNF を作成する前に聞いてみようと思いました...

0 投票する
2 に答える
1026 参照

grammar - あいまいなBNFを見つける

あいまいなBNFを修正する割り当てがありますが、完全に失われています。私はこれが本当のプログラミングの質問ではないことを知っています、そしてそれがこれらのボードにとって適切な質問でないならば、私は喜んでそれを削除します。BNFについてもっと学ぶことができる良いサイトはありますか?私が扱っているのはかなり単純なようですが、BNFに関する例や良い説明は見つかりません。あいまいな構文解析ツリーやその他の種類の文法を見つけた経験はありますが、これには完全に迷っています。

学校の課題なので、問題のBNFを投稿する必要があるかどうかはわかりませんが、誰かが私の質問を攻撃する方法をよりよく理解するために調べることができる良いサイトを知っている場合。どこから始めたらいいのかわからない。

0 投票する
1 に答える
33 参照

parsing - ペイント以外の解析木作成ソフト automagic

私は BNF 文法を持っており、文法に関して解析すると思われるかなりの数の式があります。( )を使用してツリーを入力してツリーを表現し、ソフトウェアがそれらを描画するソフトウェアはありますか?

0 投票する
2 に答える
221 参照

java - 通訳を書く、このデータを表現する助けが必要

バッカス・ナウア記法の例を示すために小さな通訳を書いています。いくつかのデータを表すために助けを求めたいと思います。

ご覧のとおり、すべてがステートメントにカプセル化されています。その後、割り当てと表現があります。式は、数値と変数をカプセル化する用語をカプセル化します。割り当ては、変数と式をカプセル化します。私の質問は、これらすべてを表すためにどのデータ構造を使用するかです。私はそれがセットであるべきだと思っています、しかしそれから私はネストされたセットを持っているべきかという疑問を提起しますか?

0 投票する
2 に答える
1184 参照

bnf - 括弧はいつ EBNF で使用されますか?

次のような文法がある場合:

そして、文 A = B + C * A から、この左端の導出が得られます。

しかし、A = B + ( C * A ) はどうでしょうか?

0 投票する
1 に答える
2800 参照

parsing - 数式のBNFを改善する

プログラミングを学びながらの良い練習は、電卓を書くことです。これを行うために、私はBNFである種のDSLを作成し、それを改善するためにあなたの助けを求めたいと思います。このミニ言語を使用すると、名前に値と式を使用できるようになります(別名、変数と関数を作成します)。addmultiplyassign

最初にBNFを見てみましょう。

ご覧のとおり、このBNFはの横に空白を処理しませんNewLineNewLine解析を開始する前に、解析する文字列から(もちろん以外の)すべての空白を削除する予定です。とにかくパーサーにとっては必須ではありません。

現在定義されているこの言語を使用すると問題が発生する可能性のある4つのことがあります。適切な解決策を見つけるのに役立つことを願っています。

  1. この文法を生成しながら、トップダウンのアプローチに従おうとしましたが、、、、の間<Expression>に円<Summand><Factor>あり<Call>ます。
  2. 文法は変数と関数をまったく同じように扱います。ほとんどのプログラミング言語は違いを生みます。ここで差別化する必要がありますか?
  3. プログラミング、BNFなど、BNFを実装しようとしているときに、後で私を殺してしまうことについて、私が知らないことがいくつかあるかもしれません。しかし、私が始める前にあなたはそれを見つけることができるかもしれません。
  4. 私が自分自身を見つけることができなかった単純で愚かな間違いがあるかもしれません。その場合は申し訳ありません。これらの間違いがもうないことを願っています。

手と脳を使用して、次のテストケースを正常に解析できました。

電卓をうまく書くために使用できるように、BNFの改善にご協力ください。

編集: このBNFは実際には完成していません。「2+-3」(失敗するはずですが失敗しません)と「2 +(-3)」(失敗しないはずですが失敗します)の場合は正しく処理されません。

0 投票する
3 に答える
997 参照

sql - Interpreting SQL's BNF

I'm looking at the syntax of SQL, specifically the character string literal.

Ignoring the [ <introducer> <character set specification> ] part, does this mean one or more <quote> [ <character representation> ... ] <quote>s separated by a <separator>?

If so, does that mean that 'hello' 'world' should be parsed as one <character string literal>?

For the query SELECT 'hello' 'world', Microsoft SQL Server 2005 returns:

and MySQL 5.0 returns:

I understand that every flavor of SQL is different, and that they don't all follow the standard. I'm just trying to determine whether I'm interpreting the BNF correctly. Thanks.

0 投票する
2 に答える
1092 参照

parsing - BNF を書くとき、{ と } の間に何が入りますか?

BNFで困っています。物事を行う標準的な方法(ある場合)と思われるものと、charやintなどの型、またはすでに組み込まれているものがあるかどうかはわかりません。

ただし、私の主な問題は、中括弧内の BNF の部分がどのように機能するかを理解していないことです。
次のようなものが与えられます:

(これはどこかから簡単に盗まれたもので、yacc / C 用です)

中括弧内は実際に何を言っているのでしょうか? ハッピーパーサージェネレーターについても同様のことを調べましたが、同様に混乱しました。

0 投票する
1 に答える
2136 参照

programming-languages - BNF 文法と演算子結合性

(まず第一に、これはハードウェアではありません。私はすべての答えを持っています)

私は単純な BNF 文法を持っています

and演算子は左結合 (左再帰) or演算子は右結合 (今回は右再帰)

式 が与えられたときc and b or not a and ( not b or c )、解析ツリーで一番右の「and」が上位にあるのはなぜですか?
ちなみに、c **and** b or not a and ( not b or c )一番左が解析ツリーの上位にあるはずです。

私たちの教授はこの答えを提供しました:

Lispy 表記の解析ツリーを次に示します。

0 投票する
3 に答える
5654 参照

json - EBNF表記とJSONに関する質問

最近、私はパーサーと文法、そしてそれらがどのように機能するかを研究しています。http://www.ietf.org/rfc/rfc4627.txtEBNFを使用するJSONの形式文法を読んでいました。私はBNFとEBNFの理解にかなり自信を持っていましたが、どうやらまだ完全には理解していません。RFCは、次のようなJSONオブジェクトを定義しています。

ここでの目的は、任意のJSONオブジェクトが(オプションで)メンバーを持つことができ、その後に0個以上の(値-区切り文字、メンバー)ペアが続くことを表現することであることを理解しています。私が理解していないのは、アスタリスクがのに表示される理由(value-separator member)です。アスタリスクは正規表現を模倣するものではないので、アイテムのに0回以上繰り返されるように表示されますか?JSONオブジェクトの文法は次のように書くべきではありません: