表达式
由于解析器处理的对象是表达式,因此有必要介绍表达式的组成。虽然表达式的类型多种多样,但本章只处理一种类型:数值表达式。数值表达式由下列元素组成:
● 数字
● 运算符+、–、/、*、^、%、=
● 圆括号
● 变量
其中,^运算符表示求幂运算(不是Java中规定的XOR运算),=是赋值运算符。这些元素按照代数学的规则组合成表达式。例如:
10 – 8
(100 – 5) * 14/6
a + b – c
10^5
a = 10 – b
每个运算符的优先级如表2-1所列:
表2-1 运算符优先级
最高优先级最低优先级 + - (正负号)
^
* / %
+ -
=
优先级相等的运算符按照从左到右的顺序计算。
本章介绍的解析器必须满足以下一些约束条件:第一,所有变量都是单个字母(从A到Z的26个变量),字母不区分大小写(把a和A视为同一个变量)。第二,假定所有的数字都是double类型,可以方便地修改解析器从而处理其他类型的值。最后,为保证逻辑清晰和理解方便,解析器只进行基本的错误检查。
|