作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据ECMAScript specification在 7.8.1 节中,一个 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
不过这对我来说似乎不对。
注意
根据我的研究,似乎很少有编译器真正从语言语法生成 CST。我当然可以理解为什么,但这对我来说是一个学习练习,所以我想在我转向更专业的解析方法(例如使用解析器生成器)之前把它做好。
最佳答案
如图所示的树不在语法范围内,因为它不提供从 IdentifierName
到 ReservedWord
的派生,也不提供派生 ReservedWord
到 Literal
。
ReservedWord
产生式实际上仅用于限制IdentifierName
的有效值,这应该在词法层面上看到。它不会进入 CST,在那里您只会看到 IdentifierName
。
Literal 的上下文是 PrimaryExpression,因此真实 CST 的片段可能如下所示:
...
|
PrimaryExpression
|
Literal
|
NullLiteral
|
null
关于javascript - NullLiteral 如何以树形式表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3247785/
根据ECMAScript specification在 7.8.1 节中,一个 NullLiteral 定义如下: NullLiteral :: null 我想了解的是,当 NullLiter
我是一名优秀的程序员,十分优秀!