我目前正在使用spiderMonkey来解析一些JavaScript脚本并获取它们各自的AST。我已经使用赋值表达式和排序完成了这个,但是当我尝试解析if语句时,在执行AST生成的预订序遍历时出现以下错误:
TypeError: root is undefined
我执行预订单遍历的代码如下:
function printTreePreOrder(root)
{
currentNodeSequence.push(root.type);
if(root.left!=null)
{
printTreePreOrder(root.left);
}
if(root.right!=null)
{
printTreePreOrder(root.right);
}
}
我的预期结果是拥有root.type =“IfStatement”。我使用Mozilla Parser API作为基础:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API#Built-in_objects
有人可以确定问题是什么吗?这是我尝试访问该类型的方式吗?
这是我目前正在尝试解析的脚本:
if(a>b)
a=2;
else
b=3;
此外,我使用Reflect.parse来解析脚本并获取其AST。然后将此AST传递给上述方法(作为参数根目录)