Участник:Volobuev Ilya/Formslan

Материал из Викиучебника — открытых книг для открытого мира
#код на языке FormsLan - смеси Python, C++, VBA.
int: a, b, c end
get: a, b, c end
focus: window
buttons: a end
a[text]="Кнопка 001"
definition F(void)
{
print(a, b, c)
}
a[link]=F

Предполагаемый синтаксис языка.

Что должно быть сначала[править]

Напишем язык на Паскале, потому что этот язык компилируемый. Хотя и старый.

Uses GraphABC, CRT;
///типы токенов
INT_='INT';FLOAT_='FLOAT';STR_='STR';OBJECT_='OBJECT';
var
///системное - хранит последовательность типов для каждой из конструкций языка
TYPESconstructions:array [0..10,0..100] of string; // если строка кода не соответствует ни одной конструкции, то TypeConstructionError:ошибка последовательности типов.
TYPESconstructionsIndex:integer;
///список заразервированных слов и символов
operators: set of 'int','float','str','if','for','while','definition','list','frozenset','set','dict','exit','window','console','button','key','[',']','(',')','import','get','print';
///Создает новую синтаксическую конструкцию состоящую из 6 параметров (последовательности типов)
function AddConstruction(t1:string='',t2:string='',t3:string='',t4:string='',t5:string='',t6:string=''):boolean; forward;
function AddConstruction(t1:string='',t2:string='',t3:string='',t4:string='',t5:string='',t6:string=''):boolean; forward;
begin
TYPESconstructions[TYPESconstructionsIndex]:=t1;
TYPESconstructions[TYPESconstructionsIndex+1]:=t2;
TYPESconstructions[TYPESconstructionsIndex+2]:=t3;
TYPESconstructions[TYPESconstructionsIndex+3]:=t4;
TYPESconstructions[TYPESconstructionsIndex+4]:=t5;
TYPESconstructions[TYPESconstructionsIndex+5]:=t6;
TYPESconstructionsIndex:=TYPESconstructionsIndex+6;
end;