Этот товарищь всплывал полгода назад на форуме sql.ru где ему дали вполне конструктивную критику и объясняли почему то что он хочет таким способом реализовать не получиться.
Приведенный код яркий пример реализации паттерна да придет спаситель.
https://www.youtube.com/watch?v=aKPbB_TfTR4
Ну а вообще если хочешь реализовать этот проект тебе стоит разобраться с таким понятием как грамматики языка в приведенном коде есть попытка грубой силой (простым условным ветвлением) выделить лексемы языка это закономерно приводит к потере контекста и структуры в которых используются эти части языка что и делает выделение этих лексем (токенов) бессмысленным занятием, происходит вырывание их из их контекста.
Если объяснять по простому то твоя задача из кода в виде текста создать структуированную информацию об этом коде обычно это называют AST деревом.
Ну и в целях общего развития необходимо научится использовать критику в свою пользу.
небольшая лекция -
https://coub.com/view/2eqj35