X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Ftest.c;h=a144f3616074e1f8891dbc30af0007420bad0ef9;hb=51a1ab2543ec5c221d4a3a9ab89968ae7dd39981;hp=d2950b968189c70a5f4b743c5131cd9682498959;hpb=ee7fd939ac99201466900fb3983aa90b980da5c3;p=dsw-obn.git diff --git a/src/test.c b/src/test.c index d2950b9..a144f36 100644 --- a/src/test.c +++ b/src/test.c @@ -8,50 +8,40 @@ static char source_test[] = "(* Main module *)" "MODULE Test;" "IMPORT Out;" - "CONST" - " null = 0X;" - " space = 020X;" - " bang = 021X;" - " h = 048X;" - " e = 045X;" - " l = 04CX;" - " o = 04FX;" - " w = 057X;" - " r = 052X;" - " d = 044X;" "" "TYPE" - " Ident = ARRAY 20 OF CHAR;" - " PrintString = PROCEDURE (str : ARRAY OF CHAR);" + " R = INTEGER;" "" - "VAR" - " hello : Ident;" - " print : PrintString;" + "PROCEDURE Factorial(n : R) : R;" + "BEGIN" + " IF n <= 1 THEN" + " RETURN 1;" + " ELSE" + " RETURN n * Factorial(n - 1);" + " END;" + " RETURN 0; (* Детектор ретурнов - дерьмо *)" + "END Factorial;" "" "BEGIN" - " print := Out.String;" - " hello[0] := h;" - " hello[1] := e;" - " hello[2] := l;" - " hello[3] := l;" - " hello[4] := o;" - " hello[5] := space;" - " hello[6] := w;" - " hello[7] := o;" - " hello[8] := r;" - " hello[9] := l;" - " hello[10] := d;" - " hello[11] := bang;" - " hello[12] := null;" - " Out.Open;" - " print(hello);" - " Out.Ln;" + " Out.Open();" + " Out.Int(Factorial(0), 0); Out.Ln;" + " Out.Int(Factorial(1), 0); Out.Ln;" + " Out.Int(Factorial(2), 0); Out.Ln;" + " Out.Int(Factorial(3), 0); Out.Ln;" + " Out.Int(Factorial(4), 0); Out.Ln;" + " Out.Int(Factorial(5), 0); Out.Ln;" + " Out.Int(Factorial(6), 0); Out.Ln;" + " Out.Int(Factorial(7), 0); Out.Ln;" + " Out.Int(Factorial(8), 0); Out.Ln;" + " Out.Int(Factorial(9), 0); Out.Ln;" + " Out.Int(Factorial(10), 0); Out.Ln;" + " Out.Int(Factorial(11), 0); Out.Ln;" + " Out.Int(Factorial(12), 0); Out.Ln;" + " Out.Int(Factorial(13), 0); Out.Ln;" + " Out.Int(Factorial(14), 0); Out.Ln;" "END Test." ; -// PROCEDURE Char* (ch : CHAR); -// PROCEDURE String* (str : ARRAY OF CHAR); - static char source_out[] = "MODULE Out;" " PROCEDURE Open*;"