Interpreter of Boolean Logic Language
Project description
Bamboolean interpreter
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
- 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)
- OR
- AND
- == | != | < | <= | > | >=
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bamboolean-0.3.0.tar.gz
(9.8 kB
view hashes)
Built Distribution
bamboolean-0.3.0-py3-none-any.whl
(13.1 kB
view hashes)
Close
Hashes for bamboolean-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8065133cfb202fcdd43488ebbb4495241ea78c100bf4f895c9662616d42935b6 |
|
MD5 | 929622bc27ebf1f74b6bff1a930c4441 |
|
BLAKE2b-256 | cc91cccbe3af5820cca0c9c7fcd846d74d4e22334637a9293ab9205a9a959559 |