重複の可能性:
ECMAscript / Actionscript/Javascriptのyaccgammarはどこにありますか
Yacc用のJavaScriptの文法ファイルを見つけようとしています(Jay用が望ましいですが、JayはYaccクローンなので、.NETに実装する必要があるので問題ありません)。
重複の可能性:
ECMAscript / Actionscript/Javascriptのyaccgammarはどこにありますか
Yacc用のJavaScriptの文法ファイルを見つけようとしています(Jay用が望ましいですが、JayはYaccクローンなので、.NETに実装する必要があるので問題ありません)。
自分で組み立てる必要があると思いますが、途中にヒントがあります。
完全な JavaScript 文法は、どこかで入手できるはずです。簡単に検索すると、JavaScript LL(1) Grammarが表示されました。( RPA Toolkit: Parse JavaScriptには、JavaScript の BNF スキーマもあります。)
あなたはパーサーについてのみ質問しているので、すでにレクサーを持っていると仮定します。
その文法を Yacc ファイルに変換することは、実際にはそれほどひどいことではありません。例として、Yacc の C 文法があります。
antlr を試してみませんか。ecmascript 用に作成された文法があるようです。
http://www.antlr.org/grammar/list
Antlr には C# ランタイムも含まれているようですが、私は Java からしか使用したことがありません。
本当にゼロから実装する必要がありますか? Jintなどの一部のライブラリは、同じ仕事をより速く、より安全に行うことができます。Jint は .NET の JavaScript インタープリターです - 私自身の承認を得ました。
COCO/R for C# http://ssw.jku.at/coco/を使用してパーサーを作成しています。これは、構成を必要とせずに動作するためです。ただし、Yacc、Flex、Bison などとのソースレベルの互換性はありません。ただし、構文はより単純です。さらに、COCO/R は C# とは異なるいくつかの .NET 言語をサポートしています。ANTLR works for C# にはより多くの機能がありますが、ドキュメントの読み取りとツールの設定に時間がかかります。