来自Douglas Crockford's JavaScript: The Good Parts,第2章语法
本章介绍JavaScript的优点部分的语法, 快速概述语言的结构。我们会 用铁路图表示语法。
解释这些图表的规则很简单:
- 从左边缘开始,沿着轨道向右边缘移动。
- 当你走的时候,你会遇到椭圆形的文字,以及矩形的规则或描述。
- 通过跟踪曲目可以制作的任何序列都是合法的。
- 跟踪曲目无法制作的任何序列都不合法。
- 每端有一个条形的铁路图允许在任何一对标记之间插入空格。与两个酒吧的铁路图 在每一端都没有。
醇>本章介绍的好的部分的语法是 比整个语言的语法简单明了。
我见过this answer on SO,它基本上重申了本书中的内容。那么这里的令牌是什么意思?
答案 0 :(得分:1)
标记是语法的基本原子单位。在典型的编程语言中,标记包括代数运算符(+
,*
),语句分隔符((
,{
,;
),标识符等内容,数字和字符串值以及保留字。
“令牌”的概念与编写和解析语法的方式有些联系。一些解析方案不涉及标记化的概念(用于PEG的packrat解析器)。但是,在这种情况下,使用铁路图意味着传统的BNF(或类似BNF)语法,并带有一组令牌。
编辑 - 实际上,在查看其他问题时,讨论实际上是关于一个令牌语法本身 - JSON的令牌语法。我想你可以将字符集的元素视为“令牌”。无论如何,应该清楚的是,在那些情况下 - 数字和字符串的规则 - 空格不能出现在这些结构的中间。也就是说,23
和2 3
不一样。
除了自动分号插入的奇怪情况之外,我想不到JavaScript语法中不允许令牌之间的空格的地方。