布尔逻辑语言解释器

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如何强制用户在允许访问活动之前处理对话框?我的许可证代码怎么了?   java ArraysList作为JSON   mysql如何在java中创建包含多个可选where子句的搜索语句?   java如何让Apache Camel在“直接”路径的末尾删除文件?   使用socket在两个Androids之间进行java实时数据传输。IO(websocket)和4G   如何在java中实现两个CORBA服务器之间的通信   会话树xml表示为java对象   java Skype4Java编号swtwin323325   java RecyclerView getAdapterPosition()不工作:第一次单击返回正确位置,第二次单击返回1   java在$TOMCAT/conf/context上为JNDI设置资源。xml   java为什么第二个矩形冲突在第一个矩形冲突时不起作用?   JScrollPane上的java JTextArea未出现在JPanel上   java如何将实现的PriorityQueue打印为字符串?   jpa使用Jersey更新用户角色RESTJava(JAXRS)