Javascript有一个棘手的语法来解析.正斜杠可以表示许多不同的东西:除法运算符,正则表达式文本,注释引入者或行注释引入者.最后两个很容易区分:如果斜线后跟一个星号,则会启动多行注释.如果斜杠后跟另一个斜杠,则为行注释.
但消除歧义和正则表达式字面意义的规则正在逃避我.我在ECMAScript标准中找不到它.词汇语法明确分为两部分,InputElementDiv和InputElementRegExp,具体取决于斜杠的含义.但没有什么可以解释何时使用哪个.
当然,可怕的分号插入规则使一切变得复杂.
有没有人有一个明确的代码为lexing Javascript有答案?