抽象構文木..私はいつもGithubのSpiderMonkey ASTにコンパイルすると聞いた。
JSの構文木の実際の標準ですか?そしてV8があります、V8は同じ種類のASTを使用していますか?JavaScript ASTとは、どのようにプレイするのですか?
どのようにして遊ぶことができますか?
抽象構文木..私はいつもGithubのSpiderMonkey ASTにコンパイルすると聞いた。
JSの構文木の実際の標準ですか?そしてV8があります、V8は同じ種類のASTを使用していますか?JavaScript ASTとは、どのようにプレイするのですか?
どのようにして遊ぶことができますか?
SpiderMonkeyはparser apiを提供しています。おそらく、構文オブジェクトを手に入れるのが一番簡単な方法です。
EsprimaのようなオープンJS-jsからパーサは(実際には、ECMAScriptのですが、それは右の路地次第だもの)もあります
1.YouはAST explorerを見てみることができます。 10を超えるパーサーによって生成されたASTを探索するためのオンラインツール。言語のASTツリーを学ぶための良いツールです。
AST explorer source at Github.com。あなたがJavaScript AST visualizerにあなたのjsのコードを貼り付け、 "ショーAST" ボタンをクリックすることができ2.Also
、あなたはvisully ASTが表示されます。
デモJSコード:
function foo(d) {
d += 3;
return d+999
}
function bar(d) {
return d*100
}
この画像の利点は何ですか?それは役に立ちますか? –
これは受け入れられる回答でなければなりません。 :) –
あなたは教授からACRONパーサを試してみたい場合Marijnh https://github.com/marijnhこのリンクを試してみる:https://astexplorer.net/
これは小さなあり、 JavaScriptで完全に書かれた高速のJavaScriptパーサーです。
上記のJavaScript AST visualizerは、Esprimaエンジンを使用しており、JavaScrptでも書かれています。
JavaScriptエンジンが今日非常に最適化されているため、JavaScriptがASTを解析する際に支配的です。 https://en.wikipedia.org/wiki/JavaScript_engine
JS構文木のSpiderMonkey AST標準? V8は同じ種類のASTを使用していますか?
これらのWebブラウザエンジンの両方は、C++で書かれたAST処理をしています。このため、JavaScrptコードはeval
を除いてほとんどの場合高速で実行されます。
JavaScriptのAST実行を簡単に視覚化できます:http://int3.github.io/metajs/ –