問題タブ [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.
scala - 文法、Scalaパーサーコンビネーター、オーダーレスセット
さまざまな「コマンド」文字列を取り込むアプリケーションを作成しています。コマンドをトークン化するためにScalaコンビネータライブラリを調べてきました。多くの場合、「これらのトークンは順序のないセットであるため、任意の順序で表示でき、一部は表示されない可能性があります」と言いたいことがあります。
文法に関する私の現在の知識では、シーケンスのすべての組み合わせをそのように定義する必要があります(疑似文法)。
だから私の質問は、tokenA-Cがユニークであることを考えると、文法を使用して任意の順序のセットを定義するより短い方法はありますか?
javascript - ECMAScript の EBNF?
ECMAScript の適切な EBNF 記述を見つけようとしていますが、これまでのところ完全なものは見つかりませんでした。
何か案は?
scala - Scala パーサーのトークン区切りの問題
以下のコマンドの文法を定義しようとしています。
2 番目のコマンドは、次のようにトークン化する必要があります。
以下に定義する文法でこの入力を実行すると、次のエラー メッセージが表示されます。
私が見る限り、メッセージの単語を照合するパターンは、プロパティのキーと値のペアのキーのパターンとほぼ同じであるため、パーサーはメッセージがどこで終了し、プロパティが開始するかを判断できないため、失敗します。次のように、各プロパティに開始トークンを使用することを主張することで、これを解決できます。
しかし、コマンドをできるだけ自然言語に近づけたいと思います。2 つの質問があります。
エラーメッセージは実際にはどういう意味ですか? また、指定された入力文字列で機能するように既存の文法を変更するにはどうすればよいでしょうか?
emacs - Emacs 用の BNF モードはありますか?
.bnf 形式の多くの文法ファイルを編集する必要があります。Emacsにこれのためのモードはありますか?
CEDET のセマンティック パッケージを調べたところ、bnf モードが使用されていたようですが、それ以上は使用されていないようです。このスニペットはグーグル可能ですが、セマンティック-bnf-モードは存在しないようです:
actionscript-3 - AS3 文法: 最も正確
私が作成している練習文法に使用する正確な AS3 文法 (形式は問題ではありませんが、ANTLR が最も機能すると思います) を探しています。
AS3 で使用できる最も正確な文法は何ですか?
grammar - 文法構文と言語学
私は本当に機械で翻訳でき、厳密にルールベース(統計的なものではない)の方法で英語の文構造の説明が必要です。文脈自由文法である必要はありませんが、それが望ましいでしょう(それを完全に説明することはできません)。私が見つけた最高のものはBNF用でしたが、それは本当に基本的でした. あいまいなところを除いて、例外のないものが必要です。リンクはありますか?
.net - テスト機能を備えた任意の BNF IDE
私は新しい言語に取り組んでおり、文法を書いている間に、完全性、競合などについて文法をテストできるようにしたいと考えています。基礎となるパーサージェネレーターについてはあまり心配していません (ただし、.NET 用のジェネレーターが望ましいでしょう)。
つまり、機能リストは次のようになります。
- テキスト エディターのビルド機能
- 構文/セマティクス エラー レポート
- 競合の報告
- 文法テスト機能 (つまり、意図した文法でコードを記述して、文法定義の正確性を検証するためのウィンドウ)
Irony と呼ばれる CodePlex プロジェクトには、私が求めているものと似たようなものがありますが、必要な BNF としての文法の記述はサポートされていません。
algorithm - エスケープされていないユーザー名はBNFと互換性がありませんか?
解析する必要のあるソフトウェアからの(独自の)出力があります。悲しいことに、エスケープされていないユーザー名があり、BNF(またはEBNFまたはABNF)を使用して解析する必要のあるファイルを記述できるかどうかを知りたいと思っています。
過度に単純化された問題(これは実際には単なる例です)は、次のようになります。
(データ)::=<ユーザー名>
<ユーザー名>::=(他のタイプのデータ)
また、場合によっては、ユーザー名を左または右に表示する代わりに、行の中央に表示することもできます。
問題は、ユーザー名がエスケープされておらず、ユーザー名に十分な制限がないことです(印刷可能なASCII、最大20文字であり、改行を含めることはできません)。たとえば、「=」は完全に有効なユーザー名になります。また、「= 1 = john = 2」も同様です(ユーザーは、サインオン時に、必要なユーザー名を選択でき、これらは取得した出力でエスケープされていないように見えるため)。
私のパーサーがいくつかの非常に創造的なユーザー名を窒息させたので(もう一度、私の制御ではなく、それらは「奇妙」であり、私はそれに対処する必要があります)、これに対処する簡単な方法を見つけることができないので、私は尋ねています。また、ユーザー名が事前にわからないことにも注意してください(たとえば、ユーザーが作成したすべてのユーザー名を含むデータベースにアクセスできません)。
では、無制限でエスケープされていないユーザー名はBNFと互換性がありませんか?
PS:間違いを犯した場合は、私と一緒にクールになってください、それはstackoverflowに関する私の最初の投稿です:)
bnf - EBNFからBNFへの変換
宿題の問題があり、助けが必要です。次の EBNF ステートメントを BNF に変換する必要があります
これが私がこれまでに思いついたことです。
主にWAGであるため、気分が良くありません。私の本 (Concepts of Programming Languages、Sebesta) の例は、まったく役に立ちません。ですから、誰かが洞察を持っているなら、それは大歓迎です。ありがとう!