更多表达式的Parsing

简介

上一章节讲述并验证了Parse和Translate普通数学表达式的技术。最后以一个简单Parser作为成果而结束,该parser可以解析任意复杂的数学表达式,但有两个限制:

  1. 不支持变量,只支持数字字面量
  2. 数字字面量只支持单个数字

变量

    b * b + 4 * a * c

其中a、b、c皆是变量。

要支持变量,只需要在之前的设计上扩展<factor>即可。 之前是:

    <factor> ::= <number> | (<expression>)

现在要扩展为:

    <factor> ::= <number> | (<expression>) | <variable>

代码改动非常小,只需要在factor解析那儿增加一种peek操作即可实现。