2014-02-22 75 views

回答

4

隐式乘法是一种语法结构。 Lexing纯粹是关于识别个人符号的。由于词法分析器不知道“表达式”,两个相邻表达式应该相乘的事实不是词汇概念。解析器的确如此。

如果词法分析器负责,则必须添加大量有关相邻令牌的规则。例如,插入两个IDENTIFIER S,或IDENTIFIERNUMBERNUMBERIDENTIFIER之间,或)IDENTIFIER,或IDENTIFIER( ...之间的×令牌除了嗯哦,IDENTIFIER (可能是一个函数调用,所以也许我需要在符号表中查找IDENTIFIER以查看它是否是函数名称...

真是一团糟!

另一方面,解析器可以通过单个语法规则来实现。

E → E '×' E 
    | E E