Реализация языка программирования Оберон на базе PascalABC.NET: Основные этапы разработки
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Знакомство
Знакомство с архитектурой PascalABC.NET.
Текст_программы -> Синтаксическое_дерево -> Семантическое_дерево -> ... -> код
Прочтение этой статьи.
Разбор существующего кода (oberon00.lex and oberon00.y)
Тестирование и разбор основ
Описания
Проверка и корректировка сообщений об ошибках на примере различных ошибочных программ.
Несколько таких программ:
// Dls не совпадает с именем модуля MODULE Decls; BEGIN END Dls. // Встречено BEGIN, а ожидалось ';' MODULE Decls BEGIN END Decls. // Встречено ':=', а ожидалось '=' MODULE Decls; CONST A := 789; BEGIN END Decls.
Правильная программа:
MODULE Decls; CONST A = 789; VAR a, b: INTEGER; f: BOOLEAN; BEGIN END Decls.
Типы
Реализованы основные типы:
INTEGER(4), BOOLEAN, SHORTINT(1), LONGINT(8), REAL(8), LONGREAL(8). И, дополнительно, — STRING.
Определяются следующие литералы:
1644 INTEGER 0FFH INTEGER 5656565555555 LONGINT 678FFFFA3BBCH LONGINT TRUE, FALSE BOOLEAN 234.67 REAL 8764.34E+3 REAL 8764.34E3 REAL 8764.34E-3 REAL 6345.79D+3 REAL 6345.79D3 REAL 6345.79D-3 REAL 'c' CHAR "c" CHAR 65X CHAR 'line' STRING "line" STRING