HISTORY 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. 27 апреля 2020 г.
  2. Контекстный анализ конструкции вызова процедур: вар-параметры.
  3. 22 апреля 2020 г.
  4. 150-я годовщина со дня рождения В. И. Ленина.
  5. Контекстный анализ: проверка типов параметров процедуры. Добавлен класс
  6. объекта Par, означающий вар-параметр. Реализован импорт псевдомодулей
  7. In и Out и процедур In.Int, Out.Int, Out.Char, Out.Ln, для чего созданы
  8. процедуры SymTable.AddProc, SymTable.AddParam.
  9. 19 апреля 2020 г.
  10. Реализован импорт модуля Out в SymTable.Import, а также процедуры
  11. Parser.QualIdent и SymTable.ThisObjInModule, позволяющие обращаться
  12. к объектам в других модулях.
  13. Реализован синтаксический анализ вызова процедуры, а частично и
  14. контекстный анализ (но типы параметров пока не проверяются).
  15. Появилась процедура Gen.MakeItem, переводящая Object в Item и процедура
  16. Gen.Call, вызываемая при обработке вызова процедуры.
  17. Вызов SymTable.Init перенесён из модуля Compiler в Parser.Init, в Parser
  18. добавлен объект dummy, который выдаёт QualIdent в случае ошибки.
  19. 17 апреля 2020 г.
  20. Процедура Parser.Type упрощена, теперь она возвращает результат в виде
  21. SymTable.Type, а не Generator.Item. Реализована синтаксическая
  22. структура IMPORT.
  23. 15 апреля 2020 г.
  24. Factor теперь устанавливает значение Item.val. SimpleExpression и Term
  25. во время компиляции производят арифметические операции над константами.
  26. При объявлении переменных распределяются их адреса (см. varsize, dc).
  27. Исправлено: При обработке целочисленных и других литералов Factor
  28. выдавал Item.mode = Var вместо Const. Добавлен класс/режим Const.
  29. 13 апреля 2020 г.
  30. Изменены константы лексического анализатора. Добавлена обработка
  31. литерного типа в процедуре Factor (41X или "A"). Строки иной длины
  32. обрабатываются лексическим анализатором, но отвергаются синтаксическим.
  33. Завершён семантический анализ. Начато добавление val в Object и Item.
  34. 12 апреля 2020 г.
  35. Добавлен тип CHAR (но Factor ещё не обрабатывает строковой литерал).
  36. Ошибки выводятся красным цветом. Переделан оператор присваивания, в его
  37. левой части теперь «обозначение», обрабатываемое процедурой Designator,
  38. производится проверка согласования типов. Expression, SimpleExpression,
  39. Term и Factor теперь передают друг другу данные через x: Item, проверяя
  40. типы, где необходимо.
  41. 5 апреля 2020 г.
  42. Новая процедура символьной таблицы ThisObj ищет текущий идентификатор.
  43. Она используется в нетерминале Type. Начальные объекты символьной
  44. таблицы теперь все имеют какое-либо имя (иначе был бы невозможен
  45. поиск). Добавлена чисто отладочная процедура OutType.
  46. 25 марта 2020 г.
  47. Доисаны процедуры Factor, Term и SimpleExpression, выполняющие
  48. теперь синтаксический анализ.
  49. 18 февраля 2020 г.
  50. Синтаксический анализ выражений: Expression, SimpleExpression, Term,
  51. Factor (не закончено). Обработка присваивания вынесена за пределы
  52. Statements. Исправлена обработка строковых литералов.
  53. 29 января 2020 г.
  54. Слегка изменена процедура Statements (добавлен цикл). Добавлены
  55. отсутствовавшие лексемы операций: деление, умножение, сравнение, а
  56. также строковой литерал. Есть проверка на максимальную длину строки.
  57. 4 апреля 2019 г.
  58. Исправлена процедура WriteDummy, теперь она создаёт работающий
  59. исполнимый файл. Процедура WriteProgramHeader в качестве размера
  60. программного сегмента выводила 30 вместо 38, также было две опечатки.
  61. 2 апреля 2019 г.
  62. Добавлена процедура Generator.WriteDummy - создаёт исполнимый файл Test
  63. с простейшей программой, выводящей на экран "Hi!". Хардкод.
  64. Файл не работает, но и не вылетает с ошибкой.
  65. Подключен модуль Chmod для того, чтобы отмечать файл как исполнимый.
  66. 2 апреля 2019 г.
  67. Реализовано объявление переменных:
  68. Написана процедура Parser.Declarations.
  69. Добавлена процедура Parser.Type (пока хардкод).
  70. Написана процедура SymTable.NewObj и диагнозтическая процедура SymTable.Display.
  71. Исправлен синтаксический разбор модуля.
  72. 26 марта 2019 г.
  73. Добавлены модули SymTable и Generator.
  74. Модуль символьной таблицы содержит типы Object и Type, а также экспортированные процедуры NewObj и Init.
  75. Модуль кодогенератора содержит только определение типа Item.
  76. В модуле синтаксического анализатора (Parser) написать псевдокод считывания объявления переменных в процедуре Declarations.
  77. 12 марта 2019 г.
  78. Исправлена обработка пустого оператора (;).
  79. 5 марта 2019 г.
  80. Компилятор разделён на три модуля: Compiler, Scanner, Parser.
  81. 5 марта 2019 г.
  82. Показан пример считывания диапазона множества {11..15}, лексема upto, приём 7FX
  83. 26 февраля 2019 г.
  84. Начат синтаксический анализатор.
  85. 26 февраля 2019 г.
  86. Лексический анализатор (сканер) частично готов.
  87. Можно переходить к синтаксическому анализатору (парсеру).