去了解一下 编译原理 吧...
贴一个 别人写的思路, 你参考一下吧
以下内容转自 CSDN 论坛:
==========================================================================================
我曾经在VB下做了一个简单的表达式分析,只能用于+、-、*、/、^、()的运算分析,没有用过这种函数的。我简单说一下我的主要思路:
1。主体用函数递归调用,并且在对表达式分析的时候要从右向左分析,(因为在处理象:9*3/3这样的表达式时候,有一个优先问题,下面再细说。)
2。注意其中的优先级问题。例如:()->^->*,/->+,-
3。从优先级低的地方把表达式分开成两段,之后递归对这两段再分析,直至到两个最简单的数相运算。
比如上面的那个9*3/3,从右开始:找到/后,分为:9*3和3,运算为/;对9*3分析后,分为:9和3,运算为*。然后,递归会帮你分析到底。
如果是从左到右的话,会出错的。