2012-02-28 2 views
2

Я строй парсер JavaScript и получил ошибку при тестировании его на JQuery на линии 496:задания Странного JavaScript с логическим или

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 

Это не поддерживает задания в вышеуказанном формате.

В случае необходимости я могу объяснить свой АСТ. Спасибо за любую помощь, которую вы можете дать!

ответ

2

Вы должны искать «ecma bnf». Вот ссылки one.

+0

А, это действительно удобно. Хотелось бы, чтобы у меня было это, когда я начал ... Мне удалось отследить мою ошибку. Оказывается, я пропустил FunctionExpression в MemberExpression. Благодарю. –

Смежные вопросы