pydsl already have a BNF-like grammar support. Standard BNF features are almost the same for all implementations
Symbol1 = Symbol2 | "terminalstr" Symbol2 = "anotherterminalstr"
However the advanced features are more tricky and differs heavily between implementation. pydsl supports nested grammar with terminal rules. ANTLR grammars uses delegate grammars. I think pydsl shouldn’t reinvent the wheel, so it should implement an existing format such as ANTLR .g format. I guess that support for very simple expressions will arrive soon, but I have my doubts about full support.