問題タブ [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.
regex - この文脈自由文法は正規表現ですか?
次のように定義された文法があります。
A
正規表現ですか?BNF 文法の解釈方法について混乱しています。
language-agnostic - EBNF から BNF への変換
コンピューター言語の授業から数年が経ち、BNF や EBNF の細かい点を忘れてしまい、教科書が手元にありません。具体的には、EBNF を BNF に変換する方法を忘れてしまいました。
私が少し覚えていることから、主なポイントの 1 つは改心することであることがわかります。
の中へ
でもそれ以外のルールは覚えていません。これをオンラインで調べようとしましたが、宿題の質問へのリンク、または中括弧で用語を変換することに関する小さなコメントしか見つかりません。翻訳を定義するルールの完全なリストが見つかりません。
java - Javaの注釈の文法
Javaの注釈の文法を説明するBNFまたはEBNFはありますか?
grammar - EBNFまたはBNFを使用して再帰下降パーサーを作成する方が簡単ですか?
文法用のBNFとEBNFがあります。BNFは明らかにより冗長です。BNFを使用して再帰下降パーサーを構築する限り、私はかなり良い考えを持っています。これには多くのリソースがあります。EBNFを再帰下降パーサーに変換するためのリソースを見つけるのに問題があります。これはもっと難しいからですか?CS理論のクラスで、EBNFを調べたことを思い出しますが、EBNFを再帰下降パーサーに変換することはしませんでした。BNFを再帰下降パーサーに変換することをやり直しました。
私が尋ねている理由は、EBNFがよりコンパクトだからです。
{
EBNFの一般的な見方から、との間に囲まれた用語はループ}
に変換できることに気付きました。while
他にガイドラインやルールはありますか?
syntax - BNF vs EBNF vs ABNF: どちらを選ぶべきか?
言語の構文を考え出そうとしています。私はこれらの 3 つについて少し読んだことがありますが、ある人ができて別の人ができないことは実際にはわかりません。どちらか一方を使用する理由はありますか? それとも単に好みの問題ですか?
grammar - GNU/Linux コマンドのコマンド ライン使用法を正しく形式化するには?
いくつかの GNU/Linux ツールのコマンド ラインの使用法を説明するために、BNF のような正式な文法を書き留めたいと思います。たとえば、cat
コマンドの使用法を次のように説明できます。
問題は、 などの一部のコマンドの正確な文法を書き留めることができないことmd5sum
です。それに対する私の最初の試みは次のとおりです。
--check
しかし、ご覧のとおり、この文法では引数を何度でも指定できます。これは、多くても 1 回しか使用できないため、正しくありません。
どうすれば修正できますか?また、この種の問題をより適切に処理するには、どのような形式文法を勉強すればよいでしょうか?
python - Python用の標準のレクサー/パーサーツールはありますか?
ボランティアの仕事では、多数のLaTeXドキュメントをePubファイル形式に変換する必要があります。これは、これまでオンデマンド印刷サービスを介して紙でのみ作成された一連のオープンソースのフィクション本です。最良の結果を得るためにePub形式を必要とする書籍リーダーデバイス(Kindleなど)のユーザーに書籍を提供できるようにしたいと考えています。
幸い、ePubは非常に単純な形式ですが、LaTeXが必要なXHTML出力を生成するための簡単な方法はありません。
代替のLaTeXコンパイラー(例:plastex)を試しましたが、最終的には、LaTeX言語の小さなサブセットを理解し、XHTML/ePubに直接コンパイルする独自のコンパイラーを作成する方がはるかに簡単であると考えました。
以前、私はGOLDと呼ばれるWindows上のツールを使用していました。これにより、BNF文法からスタブパーサーに直接移動することができました。また、好きな言語でパーサーを実装することもできました。(私はPythonを選びます)。
この製品はLinuxで動作する必要があるため、Ubutnu / Eclipse/Pythonでも動作する同等のツールチェーンがあるかどうか疑問に思います。TeXの文法を採用し、その小さなサブセットを実装するという考え方ですが、文法と構文解析について心配することに膨大な時間を費やしたくはありません。パーサジェネレータは明らかに私たちにかなりの時間を節約するでしょう。
サル
更新1:優れたドキュメントまたはチュートリアルを備えたソリューションのボーナスマーク。
更新2:TeXの文法ファイルがすでに利用可能である場合は、追加のボーナスがあります。私がしなければならないのは、関心のある関数を実装することだけだからです。
url - URL BNF 検索部分が意味をなさない
W3C によって公開されたURL BNFに基づいて URL の Java 正規表現を実装しているときに、検索部分を理解できませんでした。引用されたように:
検索は、プラス記号で区切られた xalphaであると主張しています。xalphasは、 safeで主張されているように、それ自体にプラス記号を含めることができます。したがって、私の理解によれば、次のようになります。
ここでどこが間違っていますか?
testing - BNF 文法を自動的に悪用するテスト ケースの生成
BNF文法が与えられた場合、それをランダムに(しかしインテリジェントに)調整し、BNFをすり抜けるケースを検出するために使用する出力ストリームを生成するツールまたは手法があるかどうか疑問に思っています(しかしすべきではありません)。
編集:パーサーのファズテスト、つまり。
ありがとう