2013-04-21 9 views
43

抽象構文木..私はいつもGithubのSpiderMonkey ASTにコンパイルすると聞いた。
JSの構文木の実際の標準ですか?そしてV8があります、V8は同じ種類のASTを使用していますか?JavaScript ASTとは、どのようにプレイするのですか?

どのようにして遊ぶことができますか?

+7

JavaScriptのAST実行を簡単に視覚化できます:http://int3.github.io/metajs/ –

答えて

22

SpiderMonkeyはparser apiを提供しています。おそらく、構文オブジェクトを手に入れるのが一番簡単な方法です。

EsprimaのようなオープンJS-jsからパーサは(実際には、ECMAScriptのですが、それは右の路地次第だもの)もあります

32

1.YouはAST explorerを見てみることができます。 10を超えるパーサーによって生成されたASTを探索するためのオンラインツール。言語のASTツリーを学ぶための良いツールです。
AST explorer source at Github.com。あなたがJavaScript AST visualizerにあなたのjsのコードを貼り付け、 "ショーAST" ボタンをクリックすることができ2.Also

enter image description here


、あなたはvisully ASTが表示されます。

デモJSコード:

function foo(d) { 
    d += 3; 
    return d+999 
} 
function bar(d) { 
    return d*100 
} 

js ast demo

+2

この画像の利点は何ですか?それは役に立ちますか? –

+0

これは受け入れられる回答でなければなりません。 :) –

2

あなたは教授から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を除いてほとんどの場合高速で実行されます。

+0

ビデオリンクが無効です –

+0

ありがとう@JuanPicado、私はリンクを削除しました。 – prosti

+0

私はそのビデオの話題に疑問を抱いていました。 –

関連する問題