17

ECMAScript の適切な EBNF 記述を見つけようとしていますが、これまでのところ完全なものは見つかりませんでした。

何か案は?

4

4 に答える 4

13

ECMAScript 標準はどうですか? 定義により完成:-}

編集:既存の文法が必要な場合は、文法ジェネレーター ツール サイトのいずれかを試してください。ANTLR の場合、 ECMAScript grammarは次のとおりです。その品質については何も知りませんが、グラマーが慎重に構築されていれば、ANTLR は優れたパーサーを生成できます。おそらく、文法も多くのANTLRのものと織り交ぜられていることに気付くでしょう。そのため、あなたの観点から見ると、標準と同じ問題に悩まされる可能性があります。少なくとも、そのすべてを削除できます。

于 2009-11-23T22:53:25.423 に答える
9

CrockfordのJavaScriptの第2章:Good Parts図(ご想像のとおり)GoodParts。

BNFforJavaScriptでのいくつかの刺し傷は次のとおりです。

この以前のSOの質問から:

BNF文法のリポジトリ?

于 2009-11-24T02:46:27.747 に答える
4

ベースのパーサーに取り組んでいます。これまでの私の文法は次のとおりです。

EcmaScript の Tom Copeland の BNF も参照してください。

「Yet Another JavaScript Interpreter」と同様に:

Dojo Toolkit の Grammar (おそらく YAJI に基づく) と同様に:

私の見解では、YAJI または Dojo Toolkit は (私の知る限りでは) 最も完成度が高く、最も優れています。私はそれらに基づいて作業を行っていますが、さらに完全 (5.1/6) で、標準に準拠しながらも実用的なものにしたいと考えています。

ECMAScript の文法は非常に複雑です。いくつかの大きな注意事項があります。

  • 正規表現リテラルと除算 (レクサー レベルでは区別できません)
  • 自動セミコロン挿入 (ASI)

そのため、ご承知おきください。それらを実装するのは非常に難しいです。

ターゲット プラットフォームが Java で、JavaCC を気にしない場合は、私のプロジェクトに参加していただければ幸いです。私の文法は実際に準備ができています (警告なしでビルド/コンパイルされます)。私は現在、すべての機能と製品をカバーするテスト スイートに取り組んでいます。ただし、正規表現リテラルと ASI に関するいくつかの問題が予想されます。

ps。質問が 09 からのものであることに気付いたので、招待が遅すぎる可能性があります。:)

于 2015-02-14T09:27:34.710 に答える
2

このリンクecmascriptA3を試してください。ecmascriptのBNFがあります

于 2012-02-22T11:53:36.803 に答える