想做一个语法分析器, 分析计算用户自定义的算术表达式, 
语法约定其中仅包含+ - * / () 运算符; 整型, 货币型变量或常量, 并能检测语法错误。
语法正确, 输出结果, 希望经验的人给个提示如何做?

解决方案 »

  1.   

    我以前用C写了一个差不多的,用的是三维数组+指针。没敢用面向对象,水平实在有限。怎么存储表达式定下来了就好做了,忘了编译原理了,:)
      

  2.   

    做过次,但是不好说,建议看下编译原理。如果用算符优先分析法的话,首先建立一个算符文法,再建立算符优先关系表,根据关系表就可以进行语法分析了。不过在语法分析前要先进行词法分析,扫描出输入串的单词,判别有没不允许出现的字符。通过语法分析可生成一连串的四元式,按顺序算出这些四元式就能得到计算结果了。关于多种类型数值,我那时是统一用变体类型来保存其值,每个值关联一种类型标识,实际计算的时候再进行转换。我对这个也没什么经验,应该有更好的方法。