http://blog.erezsh.com/how-to-write-a-dsl-in-python-with-lark/