LEPL is not a parser generator - it's better! Parsers are defined in Python code and built at runtime (hence some inefficiency, but much easier to use). It uses operator overloading to build a fully readable DSL. Things like c = a & b | b & cfor BNF c := a b | b c..
() abritary, AST ( , , Python). , ( memoization, , " Lepl ()" ).