摘要: 对于形如2*2+2/1+3的算术表达式,如果不将优先级顺序考虑进去的话,那么解析如上的表达式十分容易,a = get first operandwhile(operand present){op = get operatorb = get second operanda = a op b} 如果将优先级考虑进去的话,而且还使用上述算法,那么复杂度可想而知.在此,我用递归下降的方式实现解析有优先级的算术表达式. 在此解析的算术表达式,由如下元素组成: 数字运算符+ - * / % 运算符的优先级如下 % / * > + - 优先级相等的运算符从左向右顺序计算 在使用递归向下解析器时,表达式 阅读全文
posted @ 2011-03-10 22:30 Notifyer 阅读(1931) 评论(0) 推荐(1) 编辑
摘要: 对于形如2*2+2/1+3的算术表达式,如果不将优先级顺序考虑进去的话,那么解析如上的表达式十分容易,a = get first operandwhile(operand present){op = get operatorb = get second operanda = a op b} 如果将优先级考虑进去的话,而且还使用上述算法,那么复杂度可想而知.在此,我用递归下降的方式实现解析有优先级的算术表达式. 在此解析的算术表达式,由如下元素组成: 数字运算符+ - * / % 运算符的优先级如下 % / * > + - 优先级相等的运算符从左向右顺序计算 在使用递归向下解析器时,表达式 阅读全文
posted @ 2011-03-10 22:22 Notifyer 阅读(619) 评论(0) 推荐(0) 编辑