(Python实现,注释详细)直接输入:3+4*5,一般的计算器会在输入乘号时,先得到7,输入完成后的结果是35。如果希望能够更方便的使用计算器,我们可以进行一些改进。实验中要求计算器:
(1)可以输入+ - * / ()
(2) 输入时不立即计算,等到下一个算符出现时才确定是否进行计算,例如:输入3+5*4,在输入*后,发现+的优先级低于*,因此+不计算,表达式输入结束后先计算*,后计算+。
实验分成两个阶段进行:
(1)第一阶段,运用算符优先分析算法完成计算器中对算术表达式的语法分析;
(2)第二阶段,设计属性文法,改造第一阶段的程序,完成算术表达式的计算和相关的输出。
1