2015-07-28 40 views
1

我有一個QT應用程序,我想嵌入SpiderMonkey。有了它,我想解析JavaScript段(不執行它),並在某種結構化樹中檢索所有變量,函數,對象,數組等等,或者只是列出它們...這可能嗎?SpiderMonkey變量列表

我查看了文檔,但找不到任何東西。

或者如果我不能用SpiderMonkey做到這一點,也許有人可以指點我另一個解析器?

回答

0

如果你必須這樣做了SpiderMonkey的嵌入,可以使用JS_InitReflect功能在目前全球範圍內(documentation)創建Reflect對象。這將需要你編寫一個腳本來運行Relect.parse(/* your javascript segment */),但是你已經在JS對象層次結構中獲得了AST。此時,應該很容易將JSON字符串或您需要的任何內容導出回您的本機代碼。

它很可能是一個更容易使用的項目像Esprima並生成一個Node.js的過程打印出來的AST你要分析,而不是處理一個完整的嵌入的SpiderMonkey的麻煩JS。