問題タブ [ebnf]

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 投票する
3 に答える
388 参照

ebnf - メタ識別子の EBNF 空白

ここで EBNF の ISO 仕様の pdf を見ました(お金がかかるように見える ISO Web サイトを除いて、公式のものは見つかりませんでした)、空白がよくわかりません。

公式の標準がメタ識別子にスペースを許可しているかどうかを知っている人はいますか? 標準ドキュメント (セクション 8.1) のメタ識別子に基づいて、ノーと言うでしょうが、同じ標準ドキュメントの同じ例を見ると、イエスと言っているように見えます。

そのドキュメントの 8.1 の上部にあるコメントでは、それ自体を使用して EBNF を定義していると言っているようです。これについて私が混乱しているのは、次のような行です。

メタ識別子はそれ自体がメタ識別子である必要がありますが、私が見る限り、それはメタ識別子に適合しません (文字と任意の数の数字または文字)。

誰が何が起こっているのか知っていますか?

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

parsing - 文法のEBNF解釈

これをENBF文法としてどのように解釈できますか?


この文法を使用して、任意のステートメントの解析ツリーと派生を作成できますが、EBNFに問題があります。

0 投票する
4 に答える
6177 参照

parsing - POSIXshEBNF文法

利用可能な既存のPOSIXsh文法はありますか、それとも仕様から直接理解する必要がありますか?

私は純粋なshにはあまり興味がないことに注意してください。拡張されているが準拠しているshも、私の目的には十分です。

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

grammar - 次の ANTLR 文法規則を正規化して左再帰をなくすにはどうすればよいですか?

私は治療できるようになりたいです:

関数型として。この (簡素化された) 文法を正規化するにはどうすればよいですか?

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

antlr - EBNF 文法 (ANTLR)

ANTLRWorks の EBNF 文法に問題があります。

CLASSNAME は常に大文字で開始し、数字、大文字または小文字で構成することができます。

エラーログ:

誰かがこの問題を解決するのを手伝ってくれますか? 前もって感謝します。

よろしく、フラデオ

編集:

トークンを参照していない場合は、fragment キーワードを使用する必要がありますか? このようにfragmentキーワードを使うのは間違っているでしょうか?

そして別の質問。

OBJECTNAME は、少なくとも 1 つの文字 (大文字または小文字は関係ありません) と、必要に応じて別の文字または数字で構成される必要があります。コードのその部分の何が問題なのですか? たとえば、入力しようとするとvariable問題ありませんが、大文字で始めるとVariableエラーが発生します。

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

java - 正規表現または ebnf による分割

次のような文字列があります。

正規表現またはebnfで分割する可能性はありますか? [a-zA-Z0-9](私たちが知らないもの)のようなものはすべて配列に格納されるということですか?

つまり、次の正規表現を使用すると、次のようになります。

配列を取得したい:

  • +
  • fname
  • +
  • 名前
  • -
  • 整数
0 投票する
1 に答える
985 参照

c - 関数型言語コンパイラの作り方



夏のプロジェクトとして言語とそのコンパイラを書くことを検討していますが、解析ツリーまたは BNF/EBNF を使用してコンパイラをプログラムする方法に関する情報を見つけるのに苦労しています。全体的な目標は、単純化された関数型言語の構文を解析して c に変換するコンパイラを作成することです。私は現在、このコンパイラを C 言語で書くことを計画していますが、誰かがそれがより良いアイデアであると信じているなら、他の何かでそれを行うことを気にしません. (ただし、LEX などのツールを使用せずに手動でこれを行いたいと思います)

たとえば、言語を作成し、そのADD構文を として定義した場合(+ 3 4)、その EBNF を簡単に生成できます。

解析ツリーを作成するのはさらに簡単です。

しかし、どのようにしますか:

  1. C で EBNF または解析ツリーを表す
  2. このデータを使用して有効な C コードを取得します

非常に単純な実際の例を見ることができれば、正しい方向に進むのに十分だと思います。(コンパイラの標準リソースのようです)を読むことをお勧めする方が多いと思いますDragon Bookので、既に注文して出荷されていることをお知らせしたいと思います。

あなたがこれに当てることができる光を前もってありがとう!

-バイキング羊飼い