当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

expression-analyzer

java 公式解析 表达式解析
授权协议 GPL
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 吕峰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

基于有限自动机和LL(1)分析法实现的公式解析器,使用java语言开发,具备以下功能:

1)         实现了算术和逻辑表达式的解析,可使用单条或多条语句,表达式中可使用注释; 

2)         支持多种数据类型,包括数值、布尔、字符串和日期; 

3)         支持变量定义,表达式解析前和解析后能够设置和取得变量的值;

4)         支持函数运算,除默认的系统函数外,用户可使用自定义函数;

5)         实现了对if-else分支结构的解析;

6)         能够对语句中出现的词法错误和语法错误给出提示并定位。

简单使用示例,具体参见downloads中的文档:

Expression expression = new Expression("a +1;");//创建表达式

expression.initVariable("a", 1);//设置变量值

Valuable result = expression.reParseAndEvaluate(); //执行,返回结果

取得数值结果可调用:

result.getNumberValue(),返回BigDecimal,结果为2



 

  • 编译 Clang CSA (Clang Static Analyzer) 是 clang 的一部分。建议使用自行编译的 clang ,源码在 llvm/llvm-project (github.com) 上获取。 编译 clang 前首先要生成 clang 的编译脚本。在生成 clang 的编译脚本时通常需要设置如下几个参数: -S 源代码路径 -B 生成的编译脚本放置的目录 -G 编译工具的选择

  • Lex - A Lexical Analyzer Generator by M. E. Lesk and E. Schmidt Lex - A Lexical Analyzer Generator ABSTRACT Lex helps write programs whose control flow is directed by instances of regular expressions

  • NodeRef 是Node的引用 Scope Scope本身是一个链表 解析公式的类型 Optional<Scope> parent RelationId 是Node RelationType 是Node的类型(数据类型) FieldId是解析出来的ResolvedField的index信息 Analyzer Analyzer{ Metadata

 相关资料
  • 编写算术表达式的方法称为notation 。 算术表达式可以用三种不同但等效的符号书写,即不改变表达式的本质或输出。 这些符号是 - Infix Notation 前缀(波兰语)表示法 后缀(反向波兰)表示法 这些符号被命名为它们如何在表达式中使用运算符。 我们将在本章中学到相同的内容。 中缀表示法 我们用中infix表示法编写表达式,例如a - b + c,其中运算符用in操作数之间。 我们人类

  • 我正在寻找一个JAVA库来解析 我的要求: 支持所有的值类型(例如int,双,布尔,String等) 支持所有已知的数学 有什么建议吗?

  • 由来 很多JavaBean嵌套有很多层对象,这其中还夹杂着Map、Collection等对象,因此获取太深的嵌套对象会让代码变得冗长不堪。因此我们可以考虑使用一种表达式还获取指定深度的对象,于是BeanResolver应运而生。 原理 通过传入一个表达式,按照表达式的规则获取bean下指定的对象。 表达式分为两种: .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表

  • Java中的正则表达式问题。我正在从元素href属性中提取Id号。我在一个字符串中有一堆这样的链接:

  • 问题内容: 有什么方法可以在python中的流上使用正则表达式匹配吗?喜欢 而且我不想通过获取整个字符串的值来做到这一点。我想知道是否有任何方法可以在srtream上匹配正则表达式(即时)。 问题答案: 我有同样的问题。首先想到的是实现一个类,该类的作用类似于字符串,但仅从流中读取当前所需的数据(我通过重新实现并提取和缓冲字符直到访问的最高位置来完成此操作……)。 这没有解决(我从中得到了“ Ty

  • 正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。

  • 问题内容: 我正在创建一个CSS编辑器,并试图创建一个可以从CSS文档获取数据的正则表达式。如果我拥有一个属性,则此正则表达式有效,但我无法使其对所有属性都有效。我在PHP中使用preg / perl语法。 正则表达式 测试用例 预期结果 实际结果 在此先感谢您的帮助-整个下午使我感到困惑! 问题答案: 对于单个正则表达式来说,这似乎太令人费解了。好吧,我敢肯定,通过正确的扩展,高级用户可以创建正

  • 本文向大家介绍Python中 Lambda表达式全面解析,包括了Python中 Lambda表达式全面解析的使用技巧和注意事项,需要的朋友参考一下 什么是Lambda表达式 “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函