使用SLY实现SFEEL(Python3的lex和yacc)

pySFeel的Python项目详细描述


皮斯费尔

DMN(决策模型表示法)标准中指定的实现S-FEEL(简单表达式语言)。 pySFeel是用Python实现的,使用SLY模块,并且有许多FEEL特性。在

  • not以及,这些逻辑表达式可以用圆括号(())括起来
  • in()函数,例如5 in(<;6)
  • 列表和筛选器
  • 上下文和筛选器
  • 范围
  • 内置函数

pySFeel一次处理一个S-FEEL语句。 它并不是为了完美地实现S-FEEL, 而是实现DMN(决策模型表示法)pyDMNrules。 内部数据类型有float、string、boolean,日期时间.日期, 日期时间.time,和日期时间。时间增量. S-FEEL常量null映射为None。 年和月的持续时间以浮动形式存储。天数和持续时间存储为日期时间。时间增量在

一个可选的{/str'在标准的上下文中{/str'不是一个标准的词。 [{x:1,y:2},{x:2,y:3}][x=1]无效(因为x=1为真或假),但是[{x:1,y:2},{x:2,y:3}][item x=1]有效并将返回{x:1,y:2}。 类似地,fred.y是not名为“fred”的上下文列表中的“y”过滤器(因为fred.y是一个有效的名称)。 但是(fred).y是名为fred的上下文列表中的“y”筛选器。在

有一个扩展-赋值运算符(<;-)

fred <- 7
bill <- 9
fred = bill

这将返回False

^{pr2}$

这将返回[2,3]

用法:

import pySFeel
parser = pySFeel.SFeelParser()
sfeelText = '7.3 in [2.0 .. 9.1]'
(status, retVal) = parser.sFeelParse(sfeelText)
if 'errors' in status:
    print('With errors:', status['errors'])
  • 回归是真的
  • 如果您的sfeelText中有错误,听写式的“status”将具有键“errors”。在
  • status['errors']是字符串列表。它可能有助于诊断您的S-FEEL语法错误。在

文件: 更多详细信息请访问readthedocs

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
打印val在Java中可以用作变量吗?   java如何以矩阵格式存储2D数组(带逗号)   java获取空的响应正文,带有Inversion2>无法填充数据   java Jackson UnrecognizedPropertyException存在时引发   java为什么我可以在非公共类中拥有公共成员?   如何在Java中从外部库导入包?   java如何从不推荐使用的日期类型替换getDate()?   java如何将数据集转换为JavaPairDD?   如何在JavaSpring中创建3d数组   合法线程操作的java定义   如何从java文本文件中读取输入   从StringArray java中的标记/单词构建句子   将UDP从Java发送到Python不起作用   java显示组织。日食xsd。XSDSchema内容