Skip to content

Компилятор .NET на основе синтаксиса Паскаль

Notifications You must be signed in to change notification settings

ValeraGin/GinCompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GinCompiler

Компилятор .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.

About

Компилятор .NET на основе синтаксиса Паскаль

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages