Я пытаюсь разобрать javascript (используя javascript) и столкнулся с проблемой с объектами.Как javascript определяет разницу между объектом или блоком?
Например,
{ x : 1, y : 2}
Token Stream:
[{][x][:][1][,][y][:][2][}]
Очевидно, что объект, однако
{ var x = 1; var y = 2}
Поток токенов:
[{][var][x][=][1][;][var][y][=][2][}]
Является совершенно допустимым анонимным блоком JavaScript.Как бы мне было эффективно идентифицировать каждый поток токенов как объект или блок?
Однако, более важно, чем то и другое, как определить разницу между потоком токенов, что может быть объектом илиblock как показано ниже:
{ a : null }
Token Stream:
[{][a][:][null][}]
Это может быть либо объект, параметр которого равен нулю, или это может быть блок, в котором первая инструкция в блоке (null
) имеет метку (a
)