| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 27 апреля 2020 г.
- Контекстный анализ конструкции вызова процедур: вар-параметры.
- 22 апреля 2020 г.
- 150-я годовщина со дня рождения В. И. Ленина.
- Контекстный анализ: проверка типов параметров процедуры. Добавлен класс
- объекта Par, означающий вар-параметр. Реализован импорт псевдомодулей
- In и Out и процедур In.Int, Out.Int, Out.Char, Out.Ln, для чего созданы
- процедуры SymTable.AddProc, SymTable.AddParam.
- 19 апреля 2020 г.
- Реализован импорт модуля Out в SymTable.Import, а также процедуры
- Parser.QualIdent и SymTable.ThisObjInModule, позволяющие обращаться
- к объектам в других модулях.
- Реализован синтаксический анализ вызова процедуры, а частично и
- контекстный анализ (но типы параметров пока не проверяются).
- Появилась процедура Gen.MakeItem, переводящая Object в Item и процедура
- Gen.Call, вызываемая при обработке вызова процедуры.
- Вызов SymTable.Init перенесён из модуля Compiler в Parser.Init, в Parser
- добавлен объект dummy, который выдаёт QualIdent в случае ошибки.
- 17 апреля 2020 г.
- Процедура Parser.Type упрощена, теперь она возвращает результат в виде
- SymTable.Type, а не Generator.Item. Реализована синтаксическая
- структура IMPORT.
- 15 апреля 2020 г.
- Factor теперь устанавливает значение Item.val. SimpleExpression и Term
- во время компиляции производят арифметические операции над константами.
- При объявлении переменных распределяются их адреса (см. varsize, dc).
- Исправлено: При обработке целочисленных и других литералов Factor
- выдавал Item.mode = Var вместо Const. Добавлен класс/режим Const.
- 13 апреля 2020 г.
- Изменены константы лексического анализатора. Добавлена обработка
- литерного типа в процедуре Factor (41X или "A"). Строки иной длины
- обрабатываются лексическим анализатором, но отвергаются синтаксическим.
- Завершён семантический анализ. Начато добавление val в Object и Item.
- 12 апреля 2020 г.
- Добавлен тип CHAR (но Factor ещё не обрабатывает строковой литерал).
- Ошибки выводятся красным цветом. Переделан оператор присваивания, в его
- левой части теперь «обозначение», обрабатываемое процедурой Designator,
- производится проверка согласования типов. Expression, SimpleExpression,
- Term и Factor теперь передают друг другу данные через x: Item, проверяя
- типы, где необходимо.
- 5 апреля 2020 г.
- Новая процедура символьной таблицы ThisObj ищет текущий идентификатор.
- Она используется в нетерминале Type. Начальные объекты символьной
- таблицы теперь все имеют какое-либо имя (иначе был бы невозможен
- поиск). Добавлена чисто отладочная процедура OutType.
- 25 марта 2020 г.
- Доисаны процедуры Factor, Term и SimpleExpression, выполняющие
- теперь синтаксический анализ.
- 18 февраля 2020 г.
- Синтаксический анализ выражений: Expression, SimpleExpression, Term,
- Factor (не закончено). Обработка присваивания вынесена за пределы
- Statements. Исправлена обработка строковых литералов.
- 29 января 2020 г.
- Слегка изменена процедура Statements (добавлен цикл). Добавлены
- отсутствовавшие лексемы операций: деление, умножение, сравнение, а
- также строковой литерал. Есть проверка на максимальную длину строки.
- 4 апреля 2019 г.
- Исправлена процедура WriteDummy, теперь она создаёт работающий
- исполнимый файл. Процедура WriteProgramHeader в качестве размера
- программного сегмента выводила 30 вместо 38, также было две опечатки.
- 2 апреля 2019 г.
- Добавлена процедура Generator.WriteDummy - создаёт исполнимый файл Test
- с простейшей программой, выводящей на экран "Hi!". Хардкод.
- Файл не работает, но и не вылетает с ошибкой.
- Подключен модуль Chmod для того, чтобы отмечать файл как исполнимый.
- 2 апреля 2019 г.
- Реализовано объявление переменных:
- Написана процедура Parser.Declarations.
- Добавлена процедура Parser.Type (пока хардкод).
- Написана процедура SymTable.NewObj и диагнозтическая процедура SymTable.Display.
- Исправлен синтаксический разбор модуля.
- 26 марта 2019 г.
- Добавлены модули SymTable и Generator.
- Модуль символьной таблицы содержит типы Object и Type, а также экспортированные процедуры NewObj и Init.
- Модуль кодогенератора содержит только определение типа Item.
- В модуле синтаксического анализатора (Parser) написать псевдокод считывания объявления переменных в процедуре Declarations.
- 12 марта 2019 г.
- Исправлена обработка пустого оператора (;).
- 5 марта 2019 г.
- Компилятор разделён на три модуля: Compiler, Scanner, Parser.
- 5 марта 2019 г.
- Показан пример считывания диапазона множества {11..15}, лексема upto, приём 7FX
- 26 февраля 2019 г.
- Начат синтаксический анализатор.
- 26 февраля 2019 г.
- Лексический анализатор (сканер) частично готов.
- Можно переходить к синтаксическому анализатору (парсеру).
|