{"id":18947116,"url":"https://github.com/qedsoftware/bamboolean","last_synced_at":"2026-03-02T13:42:08.230Z","repository":{"id":57413844,"uuid":"105641668","full_name":"qedsoftware/bamboolean","owner":"qedsoftware","description":"Are you bamboozled by Booleans? Let Bamboolean interpret them.","archived":false,"fork":false,"pushed_at":"2020-01-27T21:29:02.000Z","size":64,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-06-24T06:04:44.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qedsoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-03T10:59:28.000Z","updated_at":"2023-05-26T18:23:56.000Z","dependencies_parsed_at":"2022-09-05T02:12:14.232Z","dependency_job_id":null,"html_url":"https://github.com/qedsoftware/bamboolean","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/qedsoftware/bamboolean","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qedsoftware%2Fbamboolean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qedsoftware%2Fbamboolean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qedsoftware%2Fbamboolean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qedsoftware%2Fbamboolean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qedsoftware","download_url":"https://codeload.github.com/qedsoftware/bamboolean/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qedsoftware%2Fbamboolean/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266832926,"owners_count":23991865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T13:09:02.753Z","updated_at":"2026-03-02T13:42:03.198Z","avatar_url":"https://github.com/qedsoftware.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bamboolean interpreter\n\n[![Build Status](https://travis-ci.org/qedsoftware/bamboolean.svg?branch=master)](https://travis-ci.org/qedsoftware/bamboolean)\n\nSupported from Python \u003e= 3.6\n\nImplementation of Bamboolean - Boolean Logic Language\n\nBamboolean is a simple language that consumes array of pre-defined variables, and\nreturns boolean value if constraints on these variables are met.\n\n[Exemplary expressions in the language](./bamboolean/tests/fixtures.py)\n\n## Features\n\n- Case in-sensitive variable names and keywords\n- Comparison operators (listed below)\n- Logic AND / OR / NOT\n- Expressions with parentheses\n- Types: Float, Int, String, Bool, Variable\n- [Truth value testing same as in Python](https://docs.python.org/3/library/stdtypes.html#truth-value-testing)\n- Implicit cast of variables to boolean when no relational operator is specified\n\n##### Operators associativity\n\nAll operators are left-associative\n\n##### Operators precedence (the higher number the higher priority)\n\n1. OR\n2. AND\n4. NOT\n3. == | != | \u003c | \u003c= | \u003e | \u003e=\n\n## Testing\n\nRun tests:\n\n    `python run_tests.py`\n\n## EBNF Grammar\n\n```\ncompound_expr : expr\n              | empty\n\nexpr : simple_expr (OR simple_expr)*\n\nsimple_expr : term (AND term)*\n\nterm : statement\n     | LPAREN expr RPAREN\n     | NOT term\n\nstatement : value\n          | constraint\n\nconstraint : variable (relational_operator value)?\n\nrelational_operator : ( EQ | NE | LT | LTE | GT | GTE )\n\nvalue : INTEGER\n      | FLOAT\n      | STRING\n      | BOOL\n\nvariable : ID\n\nempty :\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqedsoftware%2Fbamboolean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqedsoftware%2Fbamboolean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqedsoftware%2Fbamboolean/lists"}