JavaScript lexer:处理“/”

时间:2013-01-27 22:43:47

标签: javascript lexer

  

可能重复:
  Division/RegExp conflict while tokenizing Javascript

我正在写一个JS lexer以获得乐趣,而且只有一件缺失:可以咀嚼正则表达式的部分。

例如,以下有效的JS代码:/ab+c/;

JS lexer如何知道它是在处理正则表达式还是用于处理正则表达式 [Operator('/'), Identifier('ab'), Operator('+'), Identifier('c'), Operator('/'), Semicolon]

2 个答案:

答案 0 :(得分:3)

  

JS lexer如何知道它是处理正则表达式还是[内部带有operator /的某个表达式]?

好吧,词法分析者不能。这是解析器应该做的事情。

答案 1 :(得分:0)

你需要实现一个包含解析正则表达式的词法语法。根据{{​​3}},“ECMA Script documenation”中给出了ECMAScript的RegExp语法:

"The form and functionality of regular expressions is modeled 
after the regular expression facility in the Perl 5 programming language."

另请参阅:15.10