2014-02-22 44 views

回答

4

隱式乘法是一種語法結構。 Lexing純粹是關於識別個人符號的。由於詞法分析器不知道「表達式」,兩個相鄰表達式應該相乘的事實不是詞彙概念。解析器的確如此。

如果詞法分析器負責,則必須添加大量有關相鄰令牌的規則。例如,插入兩個IDENTIFIER S,或IDENTIFIERNUMBERNUMBERIDENTIFIER之間,或)IDENTIFIER,或IDENTIFIER( ...之間的×令牌除了嗯哦,IDENTIFIER (可能是一個函數調用,所以也許我需要在符號表中查找IDENTIFIER以查看它是否是函數名稱...

真是一團糟!

另一方面,解析器可以通過單個語法規則來實現。

E → E '×' E 
    | E E