Согласно В разделе ECMAScript specification7.8.1NullLiteral
определяется следующим образом:Как выглядит NullLiteral в виде дерева?
NullLiteral :: null
То, что я пытаюсь понять, как это представлено в виде дерева, когда NullLiteral
включается в следующих производствах содержится в разделах 7.6.1 и 7.8.
ReservedWord :: Keyword FutureReservedWord NullLiteral BooleanLiteral Literal :: NullLiteral BooleanLiteral NumericLiteral StringLiteral
Мое предположение о том, как это будет выглядеть так:
InputElementDiv | Token | IdentifierName | ReservedWord | Literal | NullLiteral | null
Это просто не кажется мне правильным, хотя.
Примечание
Из моих исследований, кажется, что очень немногие компиляторы фактически генерируют СГП из грамматики языка. Я могу, конечно, понять, почему, но это упражнение для меня, поэтому я хочу получить это право, прежде чем перейти к более профессиональным средствам синтаксического анализа, например, с использованием генератора парсера.
Как о предоставлении ссылки на соответствующий раздел (ы) спецификаций? – LukeH
Не могли бы вы объяснить немного больше о том, почему синтаксическое дерево, которое вы создали с , кажется вам неправедным? Я не вижу проблемы там. –
@Jim - Я думаю, что мое основное замешательство заключается в том, где размещать 'Literal' или' ReservedWord' в иерархической структуре ниже 'IdentifierName'. Кто знает, может быть, нет проблем. Я изучаю все это самостоятельно, и нет синтаксиков CST ECMAScript 5, о которых я знаю, и это не из-за отсутствия поиска. – ChaosPandion