|
Давайте создадим компилятор!Возможно вы просто не используете возможностей языка так как могли бы. Следующий шаг добавление имен переменных. Сейчас, однако, мы имеем небольшую проблему. В случае с компилятором мы не имели проблем при работе с именами переменных мы просто выдавали эти имена ассемблеру и позволяли остальной части программы заботиться о распределении для них памяти. Здесь же, напротив, у нас должна быть возможность извлекать значения переменных и возвращать их как значение функции Factor. Нам необходим механизм хранения этих переменных. В ранние дни персональных компьютеров существовал Tiny Basic. Он имел в общей сложности 26 возможных переменных: одна на каждую букву алфавита. Это хорошо соответствует нашей концепции односимвольных токенов, так что мы испробуем этот же прием. В начале интерпретатора, сразу после объявления переменной Look, вставьте строку: Table: Array['A'..'Z'] of integer; Мы также должны инициализировать массив, поэтомуPдобавьте следующую процедуру: {} { Initialize the Variable Area } procedure InitTable; var i: char; begin for i := 'A' to 'Z' do Table[i] := 0; end; {} Вы также должны вставить вызов InitTable в процедуру Init ...» |
Код для вставки книги в блог HTML
phpBB
текст
|
|