crack521 / logical-expression-parser

Parser for logical expressions language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simple logical expression parser using lark-parser module.

Expression example:

Пол="М" AND (Возраст>25 OR (Стаж>.5 AND Должность!="Руководитель"))
'(NOT (NOT (NOT (NOT (Gender = "m"))))) AND (NOT (NOT (NOT ((NOT (age > 25)) OR (seniority > 5 AND position!= "Manager")))))'

Use

To get dict with AST (abstract syntax tree) use function parse from module main and pass valid logical expression string to it. (Check parser.py for grammar):

from main import parse
print(parse('Стаж>.5 AND Должность!="Руководитель"'))

OR

Import ExpressionParser from parser module and call parse function on it to get lark.tree.Tree object, that you can print with pretty() function:

from parser import ExpressionParser as logic_parser
ast = logic_parser.parse('Стаж>.5 AND Должность!="Руководитель"')
print(ast.pretty())

Test

To test call module main.py.

About

Parser for logical expressions language


Languages

Language:Python 100.0%