В настоящее время я работаю над базовым парсером на Java и столкнулся с проблемой, когда дело доходит до циклов.Скажем, я хочу проанализировать цикл while, он будет выглядеть примерно так:
a = 0
WHILE a < 10
a = a + 1
WEND
Этот пример содержит 4 выражения, одно из которых нужно будет анализировать только одно, а остальные - 10 раз.Первый - это начальный a = 0, второй и третий - с каждой стороны условия в операторе WHILE, а последний - внутри блока WHILE.Когда я написал интерпретированный для этого, он загружает класс выражения в 4 различных переменных как новые, переоценивает их при каждом запуске.Моя проблема в том, что, хотя они изначально загружаются как новые классы каждый раз, между ними возникает переполнение, поэтому при повторном их анализе все они выглядят как последние: a + 1 Любой совет, как это обойти?
База кода довольно большая, поэтому я не буду публиковать ее здесь, но она доступна по адресу: http://git.life -hack.org / basic-parser / tree / src / parser Файл, который я имеюработает в LoopBlock.java