4

Mozillaは、Javascriptモジュールを解析して抽象構文ツリーを生成するためのAPIを提供しています。彼らはそれをReflect.parseと呼んでいます。

Javascriptでスタンドアロンモジュールとして記述されたReflect.parseまたは同様のものはありますか?構文ツリーを生成するためにES5エンジンで実行できるものはありますか?それが失敗すると、C ++にこれを行うスタンドアロンツールがありますか?またはサービス?


私はdoctorjs.orgを試してみましたが、非常に単純な自己評価無名関数でしたが、窒息しました。私はそれを間違っていますか?

(function (scope) {
  ....
}(this));
4

4 に答える 4

4

Esprimaをチェックしてください:http://esprima.org/

同様の抽象構文木を生成する別のプロジェクトはここにあります:http://boshi.inimino.org/3box/PanPG/build/js_ast.html

于 2012-04-24T17:21:38.220 に答える
4

数ヶ月前に始めたプロジェクト、Esprima(esprima.org )を試してみてください。そのAST出力はMozillaReflect.parseと互換性があり、IE 6からNode.jsまでほぼすべての場所で実行され、パーサーは非常に高速(競合他社の中で最速)であり、100%のコードカバレッジで単体テスト(500以上および成長)が進んでいます。 。

EsprimaはES5に準拠しており(厳密モードを含む)、ES6(およびHarmony)機能のサポートもあります。jQueryなどの標準ライブラリから数百万行のWebアプリコードまで、大量のJavaScriptを問題なく解析できることが知られています。

于 2012-04-27T04:23:19.917 に答える
2

JS.js(Javascriptで記述されたJavascriptインタープリター)には、おそらくコンポーネントとしてJavascriptパーサーが含まれていますが、外部からアクセスしたり、外部から使用したりするのがどれほど簡単かはわかりません。

于 2012-04-24T04:04:21.953 に答える
0

構文ツリーを生成するためにES5エンジンで実行できるものはありますか?それが失敗すると、C ++にこれを行うスタンドアロンツールがありますか?

ソースを取得して、Reflect.parseが組み込まれたSpiderMonkey JavaScriptスタンドアロンシェル(MozillaのFirefoxのJSエンジン)を構築できるため、ツールとして使用できるSpiderMonkeyの機能をラップする小さなスクリプトを作成できます。

于 2012-04-26T04:41:56.223 に答える