И вновь реанимация. Снова переписываю с нуля ядро, ибо ОСОЗНАНИЕ.
На данный момент это выглядит так:
-имеется стек отложенных токенов-значений/переменных
-имеется стек отложенных токенов-команд/операций
-имеется общий стек токенов команд-значений
Происходит всё так:
-лексический анализатор преобразует всё в токены
-на стадии сборки токены сортируются в нужном порядке, учитывая скобки и прочее. К примеру строка if(a == 0) сортируется на a, 0, ==, (, if
-семантический анализатор исполняет код столько раз, сколько нужно.
Но на словах-то это легко, а вот реализовать - жопа. Пойду писать.
В предыдущей версии не было лишь сортировки токенов, была хитрая система с отложением команд, но она оказалась слишком хитрой и я не осилил.
Вот исходники, если кому интересно:
http://rghost.ru/67RdmN2Kx