在delphi中用语法分析处理公式,有哪位做过。比如说公式定做是a+b,公式的条件是  !(a>0)
有哪位兄弟姐妹们能给点建议。谢谢

解决方案 »

  1.   

    我做过。建议是:
    如果有时间想完全自己做的话,先去学怎么写 scanner 和 parser,写出来之后再用逆波兰表达式把符号表里的中缀式转成后缀式,结果就很容易算出来了
    如果觉得完全不了解 scanner、parser 的制作,也可以找点儿 lex&yacc 的资料看一下,用它们来生成,磨刀不误砍柴功
    还是觉得有难度的话,直接找个流行点儿的脚本语言调吧
      

  2.   

    能不能说的具体一点,我现在就是在做前辈遗留下的问题,其中用了yya数组表示action表,yyg表示GoTo表,以及用yys和yyv分别表示状态栈和符号栈。里面还有一个yyd和yyr就不明白是什么意思了,希望的到你的帮助。谢谢
      注:yyd数组好像是和yya和yyg有关,yyr数组的格式是(sym,act)act<0进行规约,act>0表示shift我不明白这个数组中的act的数是怎么来的,还有在这个程序中似乎找不到文法的所在