带有逻辑or的奇怪JavaScript赋值

带有逻辑or的奇怪JavaScript赋值,javascript,parsing,Javascript,Parsing,我正在构建一个JavaScript解析器,在第496行的jQuery上测试时出错: isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; }, 我把它简化为: a = b || function() {} 这是有效的ECMA-262,还是此后添加的功能?不管怎样,我如何用解析器来表达它 我的赋值表达式的抽象语法树是: data Assignment = CondExpr

我正在构建一个JavaScript解析器,在第496行的jQuery上测试时出错:

isArray: Array.isArray || function( obj ) {
    return jQuery.type(obj) === "array";
},
我把它简化为:

a = b || function() {}
这是有效的ECMA-262,还是此后添加的功能?不管怎样,我如何用解析器来表达它

我的赋值表达式的抽象语法树是:

data Assignment
    = CondExpr        CondExpr
    | Assign          LeftExpr AssignOp Assignment 
    | AssignFuncDecl  FuncDecl
这不支持上述格式的作业


如果需要,我可以进一步解释我的AST。谢谢你能给我的帮助

您应该查找“ecma bnf”。这是一些链接。

啊,这真的很方便。我希望我开始的时候有这个。。。我设法找出了我的错误。结果我在MemberExpression中漏掉了FunctionExpression。谢谢