Skip to main content

Interpreter of Boolean Logic Language

Project description

# Bamboolean interpreter

[![Build Status](https://travis-ci.org/qedsoftware/bamboolean.svg?branch=master)](https://travis-ci.org/qedsoftware/bamboolean)

Supported from Python >= 3.4

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](./bamboolean/tests/fixtures.py)

## Features

- Case in-sensitive variable names and keywords
- Comparison operators
- Logic AND / OR
- Expressions with parentheses
- Types: Floats, ints and string

##### Operators associativity

All operators are lef-associative

##### Operators precedence (the higher number the higher priority)

1. OR
2. AND
3. == | != | < | <= | > | >=

## Testing

Run tests:

`python run_tests.py`

## BNF Grammar

```
expr : simple_expr (OR simple_expr)*

simple_expr : term (AND term)*

term : constraint
| LPAREN expr RPAREN

constraint : variable relational_operator value

value : INTEGER
| FLOAT
| STRING
| BOOL

variable: ID

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


Project details


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.1.6.tar.gz (8.4 kB view hashes)

Uploaded Source

Built Distribution

bamboolean-0.1.6-py3-none-any.whl (11.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page