如果仅仅是写个计算器, 其实很简单, 用递归下降的语法分析方法用
半个小时就能够写出来. 你先写一个词法分析的程序, 负责把输入的
字符串按照 整数, 浮点数, 运算符等等分开, 然后就按照递归下降的
语法分析处理就可以了.
Expression -> SimpleExpression [RelOp SimpleExpression]...
SimpleExpression -> ['+' | '-'] Term [AddOp Term]...
Term -> Factor [MulOp Factor]...
Factor -> Number
-> String
-> '(' Expression ')'
-> NOT Factor
RelOp -> '>'
-> '<'
-> '<='
-> '>='
-> '<>'
AddOp -> '+'
-> '-'
-> OR
-> XOR
MulOp -> '*'
-> '/'
-> DIV
-> MOD
-> AND
-> SHL
-> SHR