抽象語法樹..我總是聽說在Github上編譯爲SpiderMonkey AST。
那麼,這是JS語法樹的實際標準嗎?還有V8,V8是否使用了同樣的AST?什麼是JavaScript AST,如何玩呢?
我該怎麼玩?
抽象語法樹..我總是聽說在Github上編譯爲SpiderMonkey AST。
那麼,這是JS語法樹的實際標準嗎?還有V8,V8是否使用了同樣的AST?什麼是JavaScript AST,如何玩呢?
我該怎麼玩?
SpiderMonkey提供parser api。這可能是最容易掌握語法對象的方法。
還有開放JS-JS解析器像Esprima(這是ECMAScript的,真的,但它是正確的了衚衕)
1.You可以看看AST explorer。一個在線工具,用於探索由10多個解析器生成的AST。學習一種語言的AST樹是一個很好的工具。
AST explorer source at Github.com。
2.Also你可以粘貼JS代碼到JavaScript AST visualizer,然後單擊 「顯示AST」 按鈕,您將visully看到AST。
演示JS代碼:
function foo(d) {
d += 3;
return d+999
}
function bar(d) {
return d*100
}
這張圖片有什麼好處?它有幫助嗎? – 2016-10-25 12:40:42
這應該是被接受的答案。 :) – 2017-04-27 18:57:39
如果您想嘗試從教授ACRON解析器Marijnh https://github.com/marijnh嘗試此鏈接:https://astexplorer.net/
這是一個很小的,快速的JavaScript解析器,完全用JavaScript編寫。
上述JavaScript AST visualizer使用Esprima引擎,並且也用JavaScrpt編寫。
JavaScript在解析AST方面占主導地位,因爲JavaScript引擎今天已經超級優化。 https://en.wikipedia.org/wiki/JavaScript_engine
SpiderMonkey JS語法樹的AST標準? V8是否使用同一種AST?
這兩個網頁瀏覽器引擎都有用C++編寫的AST處理程序。這就是爲什麼除了eval
之外,大多數情況下JavaScrpt代碼都會運行得很快。
視頻鏈接無效 – 2017-08-15 20:26:42
感謝@JuanPicado,我刪除了鏈接。 – prosti 2017-08-16 13:24:36
我在想那個視頻的主題。 – 2017-08-16 13:55:13
下面是一個方便的javascript AST執行的可視化:http://int3.github.io/metajs/ – 2013-08-29 04:25:24