Реализация языка программирования Оберон на базе PascalABC.NET: Основные этапы разработки: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Juliet (обсуждение | вклад) |
Juliet (обсуждение | вклад) (→Типы) |
||
Строка 40: | Строка 40: | ||
=== Типы === | === Типы === | ||
Реализованы основные '''типы''': | |||
''INTEGER(4), BOOLEAN, SHORTINT(1), LONGINT(8), REAL(8), LONGREAL(8)''. И, дополнительно, — ''STRING''.<br /> | |||
Определяются следующие '''литералы''': | |||
<span style="color: maroon">1644</span> 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 |
Версия от 12:35, 30 июля 2010
Знакомство
Знакомство с архитектурой 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