[go: up one dir, main page]

Menu

[r263]: / mpl.pas  Maximize  Restore  History

Download this file

36 lines (25 with data), 1.1 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
(* MPL - MICRO PROGRAMMING LANGUAGE / COPYRIGHT (C) 2017-2018 DEREK JOHN EVANS *)
{$I PASCAL.INC}
{$I MPLTYPE.PAS}
TYPE FAIL=(ESYN,EDUP,EMIS); KIND=(K0,K1,K2,K3,K4,K5,K6,K7,K8);
VAR GX:CODE; GR:REF; GZ,GI,GE,GP:SHORT; GK:KIND; GO:OPER; GT:PTEXT;
GC:CHAR; GS:STR127; GV:PACKED ARRAY[0..511] OF SHORT;
PROCEDURE ARGV(VAR S:STR127; I:SHORT); BEGIN
S:=PARAMSTR(I); FOR I:=1 TO LENGTH(S) DO S[I]:=UPCASE(S[I])
END;
FUNCTION ENTER:BOOL; BEGIN ENTER:=TRUE;
ASSIGN(GT^,MPLPATH+GS+MPLFEXT); RESET(GT^); IF IORESULT<>0 THEN
BEGIN ASSIGN(GT^,GS+MPLFEXT); RESET(GT^); ENTER:=IORESULT=0 END END;
PROCEDURE LEAVE; BEGIN
CLOSE(GT^) (* BUG: MUST REMOVE CLOSE() FOR AMIGA HSPASCAL (?) *)
END;
PROCEDURE RDCH; BEGIN GC:=CHR(0); IF NOT EOF(GT^) THEN READ(GT^,GC) END;
{$I MPLSCAN.PAS} (* SOURCE SCANNER/PARSER *)
{$I MPLSYMB.PAS} (* SYMBOL TABLE & ERROR LOG *)
{$I MPLOPER.PAS} (* CODE GENERATION *)
{$I MPLCOMP.PAS} (* MPL COMPILER *)
{$I MPLMAIN.PAS} (* FRONT END *)
BEGIN
MAIN;
{$IFDEF FPC}READLN;{$ENDIF}
END.