У меня тоже была мысль первая -- зачем останавливаться на подмене операторов на токены, если можно все прожевать в деталях (но так, что бы потом можно было восстановить). Для листинга и редактирования можно потерпеть как фарш проворачивается назад, а для исполнения все же иметь то, что легко исполнить, а не легко отредактировать. Но пока я не знаю что на самом деле там происходит, так что это все так, слова и жестикулирование.
Константы можно было бы хранить в обработанном виде. Тут правда трудно соблюсти однозначное соответствие между текстом и внутренним представлением. Как отличить 0003 (ну захотелось мне так написать) от 3. Например так: токен "const-int", 3, индекс строки "0003" в таблице строк. Больше памяти нужно, ну и что.
А выражения как обрабатываются? Каждый раз строится дерево с нуля (наверное на ходу прямо исполняясь) ?





Ответить с цитированием