`
jindw
  • 浏览: 505141 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

关于逆波兰式处理表达式的问题。

    博客分类:
  • Java
阅读更多
想写一个基于逆波兰式的表达式解析程序。
支持简单运算、属性读取和函数调用
http://hi.baidu.com/jindw/blog/item/8b6c4edf8d2a121548540302.html
http://hi.baidu.com/jindw/blog/item/e11b9db1cba393520823021f.html


现在遇到一个问题。
有没有什么办法处理常见的条件短路问题呢?

比如?
a != null && a.isChecked()


先翻译为:
a null != a 'isChecked' <getMethod> <CallMethod> &&


按章常见的处理模式,这个表达式一定会报错。
因为 object.isChecked()一定会执行。

大家谁又什么好办法吗?

分享到:
评论
1 楼 jindw 2008-10-12  
增加一种跳出规则?

a null != <false-skip> a 'isChecked' <getMethod> <CallMethod> && 

相关推荐

    利用逆波兰式求表达式值

    求解逆波兰式通常采用栈数据结构,依次处理表达式中的每个元素:遇到数字就压入栈,遇到操作符则取出栈顶的两个操作数进行运算,结果再压回栈中。最后,栈中只剩下一个元素,即为表达式的结果。 在MFC框架下,我们...

    表达式求值(逆波兰式法)

    逆波兰式法是一种有效的方法来解决表达式求值的问题,因为不需要括号来明确运算顺序,而且可以通过简单的栈数据结构进行计算。 在本程序中,用户输入的表达式是按照中缀形式给出的,例如"2 3 + 4 * #"。这里的每个...

    表达式计算 逆波兰式 栈

    逆波兰式,也被称为后缀...以上就是关于“表达式计算 逆波兰式 栈”的主要知识点,这个主题在计算机科学,尤其是编译原理和算法设计中占有重要地位。通过理解和掌握这些概念,可以有效地解决复杂表达式的计算问题。

    逆波兰表达式实现

    在实现逆波兰表达式时,需要注意运算符的优先级和括号的处理。运算符的优先级可以通过设置不同的优先级来实现,例如,乘除的优先级高于加减。括号的处理可以通过设置不同的标记来实现,例如,遇到左括号时,设置标记...

    将逆波兰式转换成波兰式表达式

    这是严蔚敏《数据结构》配套习题册上的题目:将逆波兰式转换成波兰式,并提示错误(作为简化,只处理"+-*/"和0~9的数字)。 例如:"123*-"转换成波兰式为"-1*23" 逆波兰式"123*-"的表达式树如下: 所以这个转换...

    中缀表达式转化为逆波兰表达式

    1. **创建一个栈**:栈是数据结构中的一个重要概念,具有后进先出(LIFO)的特性,非常适合处理逆波兰表达式转换的问题。 2. **遍历中缀表达式字符**:从左到右逐个读取中缀表达式的字符,包括数字、运算符和括号。...

    编译原理实验报告6-逆波兰式的翻译和计算.doc

    提供的源代码片段展示了如何读取文件中的表达式,使用栈来处理运算符,并构建逆波兰式。例如,当遇到左括号时,会将其压入栈;遇到右括号时,会将栈中直到左括号的所有元素弹出并放入逆波兰式;遇到加减乘除运算符时...

    表达式计算 逆波兰式 栈 可括号小数负数

    逆波兰式,也被称为后缀表达式,是一种用于表示数学表达式的方式,它避免了使用括号,并且可以通过栈操作来方便地计算表达式的值。在这个主题中,我们将深入探讨如何利用栈的数据结构来实现逆波兰式的转换和计算,...

    表达式的逆波兰式转换

    逆波兰式转换 逆波兰式(Reverse Polish Notation,RPN)是一种后缀表达式的表示形式,它将中缀表达式转换...* 数据处理:逆波兰式转换也可以用于数据处理,例如将中缀表达式转换为后缀表达式,并对其进行处理和分析。

    编译原理逆波兰式分析法源码

    - **表达式求值函数**:使用逆波兰式进行计算,可能再辅助栈中完成操作数的存储和运算符的处理。 - **其他辅助函数**:可能包括处理运算符优先级和结合性的函数,以及一些输入/输出相关的辅助函数。 通过阅读和理解...

    1. 实验3 逆波兰式的产生及计算-预习提示1

    实验3主要涉及的是逆波兰式(后缀式)的生成与计算,这是计算机科学中一种常见的算法问题,尤其在编译原理和数据结构课程中常见。逆波兰式是一种表达算术表达式的方式,它的特点是运算符写在操作数之后,便于计算机...

    c#的中缀表达式转化为逆波兰式(后缀表达式)

    然而,为了更高效地计算,我们经常使用后缀表达式,也称为逆波兰式,其中运算符紧跟在其操作数之后,如2 3 4 * +。这种表示方式无需括号,通过简单的栈操作即可进行计算。本文将详细介绍如何使用C#语言将中缀表达式...

    逆波兰式的生成-(代码+原理图)

    通过该实验,我们掌握了逆波兰式的原理和实现方法,并且能够将算术表达式转换为逆波兰式,并计算用逆波兰式表示的算术表达式的值。 逆波兰式的生成步骤包括: 1. 在表达式字符串的末尾加一个代表结束的辅助符,...

    正则表达式+逆波兰式的计算器

    正则表达式(Regular Expression,简称regex)是一种...对于学习正则表达式、逆波兰表达式以及理解计算机如何处理表达式的人来说,这是一个很好的实践项目。同时,它也展示了JavaScript在前端计算和交互设计中的能力。

    逆波兰式(JAVA版)

    - **解析表达式**:可以使用正则表达式或者自定义解析函数来处理输入的中缀表达式,将其转换为逆波兰式。 - **运算符优先级**:需要维护一个表示运算符优先级的映射表,例如`{'*': 2, '/': 2, '+': 1, '-': 1}`,...

    逆波兰式的生成(包括输入表达式是否合法的判定)

    逆波兰式(Reverse Polish Notation, RPN)是一种后缀表示法,通常用于计算数学表达式,它避免了传统数学表达式中的括号使用问题,使得计算更加高效且简单。在本篇文章中,我们将探讨如何生成逆波兰式,并验证输入...

    java 逆波兰式(这个是java版的还附有实验报告)

    逆波兰式,也被称为后缀表达式,是一种数学表达式表示方法,它的主要特点是运算符位于操作数之后。这种表示方式在计算机科学中被广泛应用于算法设计,特别是计算器和编译器的实现中,因为其简化了计算过程,避免了...

    libolan.rar_site:www.pudn.com_逆波兰_逆波兰式_逆波兰表达式

    例如,计算器应用可以使用逆波兰表达式来方便地处理用户的输入,而编译器和解释器则可以利用逆波兰表达式的简洁性和解析效率来优化代码生成和执行。 总之,逆波兰表达式是一种高效且易于解析的表达式形式,对于理解...

    编译原理 逆波兰式 C++实现

    逆波兰式,也被称为后缀表达式,是计算机科学中的一种表示算术或逻辑表达式的方式,它在编译原理中具有重要的地位。这种表示法将运算符放置在其操作数之后,消除了括号和优先级问题,使得计算更为简单。在本主题中,...

    书写正确的表达式转换为逆波兰式

    将标准数学表达式转换为逆波兰式的算法是计算机科学中的一个经典问题,尤其是在编译器设计和计算器程序中有着广泛的应用。本文主要介绍如何通过编写程序实现从标准数学表达式到逆波兰式的转换,并提供了一个具体的...

Global site tag (gtag.js) - Google Analytics