Skip to main content

Interpreter of Boolean Logic Language

Project description

Bamboolean interpreter

Build Status

Supported from Python >= 3.6

Implementation of Bamboolean - Boolean Logic Language

Bamboolean is a simple language that consumes array of pre-defined variables, and returns boolean value if constraints on these variables are met.

Exemplary expressions in the language

Features

  • Case in-sensitive variable names and keywords
  • Comparison operators (listed below)
  • Logic AND / OR / NOT
  • Expressions with parentheses
  • Types: Float, Int, String, Bool, Variable
  • Truth value testing same as in Python
  • Implicit cast of variables to boolean when no relational operator is specified
Operators associativity

All operators are left-associative

Operators precedence (the higher number the higher priority)
  1. OR
  2. AND
  3. NOT
  4. == | != | < | <= | > | >=

Testing

Run tests:

`python run_tests.py`

EBNF Grammar

compound_expr : expr
              | empty

expr : simple_expr (OR simple_expr)*

simple_expr : term (AND term)*

term : statement
     | LPAREN expr RPAREN
     | NOT term

statement : value
          | constraint

constraint : variable (relational_operator value)?

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

value : INTEGER
      | FLOAT
      | STRING
      | BOOL

variable : ID

empty :

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for bamboolean, version 0.4.0
Filename, size File type Python version Upload date Hashes
Filename, size bamboolean-0.4.0-py3-none-any.whl (16.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size bamboolean-0.4.0.tar.gz (11.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page