下载实例:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1074
程序主要包括:基础结构定义、词法分析、语法分析、算术运算
基础结构定义:枚举(操作数类型、操作符类型、标记类型、有限状态自动机);
结构(操作数、操作符、标记、标记链)。
词法分析:将字符串分解成有效标记(有效的操作数和操作符),生成标记链表。
语法分析:分析括弧的有效性,操作数、操作符的排列有效性,操作符与操作数类型匹配关系。
算术运算:使用后缀表达式运算规则,根据后缀表达式链表进行求值。首先将我们日常应用的中缀表达式转换为后缀表达式。例如:6*(5-3) 转换为 6 5 3 - *,6-2+5*2转换为 6 2 - 5 2 * +
这里对后缀表达式的转换作一个说明,每个操作符有一个运算优先级(oper_PRI),但是当表达式中含有括弧时,括弧中的操作符运算优先级会改变。所以增设了一个括弧深度优先级(dee

本文介绍了一个C语言编写的四则运算表达式解析器,包括基础结构定义、词法分析、语法分析和算术运算。程序通过将中缀表达式转化为后缀表达式,再进行求值。在后缀表达式转换过程中,考虑了括号和运算符的优先级,包括操作符的普通优先级和括号深度优先级。以5+(8-2*3)*4为例,解析过程将表达式转化为5 8 2 3 * - 4 * +的后缀形式。
最低0.47元/天 解锁文章
2388

被折叠的 条评论
为什么被折叠?



