Если это в целях саморазвития, то делай вообще без всего этого. Напиши собственноручно recursive descent парсер, затем разбирай аст и делай оптимизации.
Я делаю в целях получить более быстрый ЯП чем python, но с таким более менее лёгким синтаксисом. Он вообще должен быть: ЯОП, ООП, ФП