1
我有一個QT應用程序,我想嵌入SpiderMonkey。有了它,我想解析JavaScript段(不執行它),並在某種結構化樹中檢索所有變量,函數,對象,數組等等,或者只是列出它們...這可能嗎?SpiderMonkey變量列表
我查看了文檔,但找不到任何東西。
或者如果我不能用SpiderMonkey做到這一點,也許有人可以指點我另一個解析器?
我有一個QT應用程序,我想嵌入SpiderMonkey。有了它,我想解析JavaScript段(不執行它),並在某種結構化樹中檢索所有變量,函數,對象,數組等等,或者只是列出它們...這可能嗎?SpiderMonkey變量列表
我查看了文檔,但找不到任何東西。
或者如果我不能用SpiderMonkey做到這一點,也許有人可以指點我另一個解析器?
如果你必須這樣做了SpiderMonkey的嵌入,可以使用JS_InitReflect
功能在目前全球範圍內(documentation)創建Reflect
對象。這將需要你編寫一個腳本來運行Relect.parse(/* your javascript segment */)
,但是你已經在JS對象層次結構中獲得了AST。此時,應該很容易將JSON字符串或您需要的任何內容導出回您的本機代碼。
它很可能是一個更容易使用的項目像Esprima並生成一個Node.js的過程打印出來的AST你要分析,而不是處理一個完整的嵌入的SpiderMonkey的麻煩JS。