布尔逻辑语言解释器

bamboolean的Python项目详细描述


Bambolean解释器

Build Status

从python支持>;=3.6

bambolean布尔逻辑语言的实现

bambolean是一种使用预定义变量数组的简单语言,并且 如果满足这些变量的约束,则返回布尔值。

Exemplary expressions in the language

功能

  • 敏感变量名和关键字的大小写
  • 比较运算符(如下所示)
  • 逻辑和/或
  • 带圆括号的表达式
  • 类型:float、int、string、bool、variable
  • Truth value testing same as in Python
  • 当未指定关系运算符时,将变量隐式转换为布尔值
运算符关联性

所有运算符都是左关联的

运算符优先级(数字越高优先级越高)
  1. ==!=<;<;=>;>;=

测试

运行测试:

`python run_tests.py`

ebnf语法

compound_expr : expr
              | empty

expr : simple_expr (OR simple_expr)*

simple_expr : term (AND term)*

term : statement
     | LPAREN expr RPAREN

statement : value
          | constraint

constraint : variable (relational_operator value)?

relational_operator : ( EQ | NE | LT | LTE | GT | GTE )

value : INTEGER
      | FLOAT
      | STRING
      | BOOL

variable : ID

empty :

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

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件