作业帮 > 综合 > 作业

关于语法分析器我最近想要制作一个表达式分析器.由用户输入一个表达式,由程序分析和计算表达式的值.首先验证是否有语法错误或

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 23:27:31
关于语法分析器
我最近想要制作一个表达式分析器.由用户输入一个表达式,由程序分析和计算表达式的值.首先验证是否有语法错误或表达式错误,例如分母为零之类的,例如多了一个单独的括号之类的.能够分析到函数例如sqrt();sin()之类的(各种运算函数都事先写好了),并且按正确的顺序运算,允许括号提升运算优先级.我只知道似乎用数组和正则表达式可以实现.真正做起来却无从下手.请问谁能够提供一解决思路,最好有一些java代码和流程.
麻烦大家最好给一些算法,
例如如何处理运算次序,如何从语句中分析出“-”表示的究竟是减法还是负号之类的.
可以看看这个,我刚解析了一大堆.那个源代码就是表达式分析器,有括号的可以用递归解决,遇到左括号递归括号内的表达式,最后要递归完毕配上右括号有效.-号出现的位置不多,要不就开始出现,要不就在‘(’右边出现,还可能在sin右边出现,自己在这些地方判断下就行了,至于sin类那些运算,可以在分析表达式的时候用个词法分析器判定一下,然后用个'S'代替方便运算.当遇到S的时候,直接递归S右边的表达式就可以了.遇到其他双目预算符就用栈操作就可以了.http://zhidao.baidu.com/question/230577084.html