Компилятор .NET на основе синтаксиса Паскаль
Описание языка GinPascal
зарезирвированные слова: program, unit, var, if, then, else, for, to, downto, do, while, repeat, until, goto, type, const, uses, procedure, function, begin, end, and, or, not, xor, div, mod, true, false, nil, array
Структура программы:
program имя программы; // не обязательно, вообще не выполняет никакой функции
раздел uses // не обязательно
раздел описаний // не обязательно
begin // не обязательно
операторы
end. // не обязательно
Да, да вы не ошиблись, можно просто написать оператор и это будет программа !
Так выглядит программа HelloWorld.pas: Write('Hello World !!!');
! Если вы не используете блок begin..end то первое обьявление var будет восприниматься как глобальное, а не локальное.
В uses можно добавить помимо имен модулей и пространств имен .NET выражение типа Идентификатор = пространство_имен_.NET
Например:
{$reference 'System.Windows.Forms.dll'}
{$apptype windows}
uses
System,
WF = System.Windows.Forms;
begin
WF.Application.Run(WF.myForm);
end.
т.е. WF это сокращенное слово System.Windows.Forms теперь.
Раздел описаний может включать разделы описания переменных, констант(пока не реализовано), типов, процедур и функций, которые следуют друг за другом в произвольном порядке.
Комментарии { Это комментарий }
(* Это тоже комментарий *) - не реализовано
// Это комментарий
Описание переменных Раздел описания переменных начинается со служебного слова var, после которого следуют элементы описания вида:
список имен: тип; - для описания переменых в блоке begin.end имя := выражение; // - для описания переменых в блоке begin.end имя: тип; - для описания переменых в блоке begin.end и в глобальных переменных
Метки Так же как и в обычном паскале, только их не надо описывать.
Описание типов Раздел описания типов начинается со служебного слова type, после которого следуют строки вида имя типа = тип;
Например: type myint = integer;
Операторы реализованы все кроме: case, foreach, try, raise, lock
синтаксис модуля:
unit имя модуля; раздел описаний begin раздел инициализации - пока не реализовано end.