使用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第三方库


热门话题
java使用EntityManager有没有更有效的习惯用法?   Android上的java Google应用程序引擎(GAE)响应代码和cookie   如何在Java中创建单元测试?   java从DB获取特定列的最新行   java替换所有悬空元字符   java使用Hibernate删除SQL表中的数据   swing显示JComponent对象Java   java在确认内容类型后如何将URL保存到文件?   javascript如何从段落中选择大量单词?(硒)   java在Linux上使用BundleEnableTiveCode不起作用   java使用日志似然性来比较不同的mallet主题模型?   java无法在Tomcat7上运行Spring Boot 2.0:“由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplicationContext。”   java有办法显式引用非静态内部类实例吗?   java如何使用Spring的NamedParameterJdbcTemplate在MySQL数据库中创建和删除表?