Реализация языка программирования Оберон на базе 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.

Типы