Реализация языка программирования Оберон на базе PascalABC.NET: Основные этапы разработки: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Juliet (обсуждение | вклад) (→Типы) |
Juliet (обсуждение | вклад) (→Типы) |
||
Строка 44: | Строка 44: | ||
Определяются следующие '''литералы''': | Определяются следующие '''литералы''': | ||
<span style="color: maroon">1644</span> INTEGER | <span style="color: maroon">1644</span> INTEGER | ||
0FFH INTEGER | <span style="color: maroon">0FFH</span> INTEGER | ||
5656565555555 LONGINT | <span style="color: maroon">5656565555555</span> LONGINT | ||
678FFFFA3BBCH LONGINT | <span style="color: maroon">678FFFFA3BBCH</span> LONGINT | ||
TRUE, FALSE BOOLEAN | <span style="color: maroon">TRUE, FALSE</span> BOOLEAN | ||
234.67 REAL | <span style="color: maroon">234.67</span> REAL | ||
8764.34E+3 REAL | <span style="color: maroon">8764.34E+3</span> REAL | ||
8764.34E3 REAL | <span style="color: maroon">8764.34E3</span> REAL | ||
8764.34E-3 REAL | <span style="color: maroon">8764.34E-3</span> REAL | ||
6345.79D+3 REAL | <span style="color: maroon">6345.79D+3</span> REAL | ||
6345.79D3 REAL | <span style="color: maroon">6345.79D3</span> REAL | ||
6345.79D-3 REAL | <span style="color: maroon">6345.79D-3</span> REAL | ||
'c' CHAR | <span style="color: maroon">'c'</span> CHAR | ||
"c" CHAR | <span style="color: maroon">"c"</span> CHAR | ||
65X CHAR | <span style="color: maroon">65X</span> CHAR | ||
'line' STRING | <span style="color: maroon">'line'</span> STRING | ||
"line" STRING | <span style="color: maroon">"line"</span> STRING |
Версия от 12:41, 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