1 #include <stdio.h>
2 #include <string.h>
3 #include <assert.h>
8 "(* Main module *)"
9 "MODULE Test;"
10 "IMPORT Out;"
11 ""
12 "VAR i : INTEGER;"
13 ""
14 "PROCEDURE X(VAR x : INTEGER; y : INTEGER);"
15 " VAR"
16 " q, w, r : INTEGER;"
17 " PROCEDURE Y;"
18 " VAR levY : INTEGER;"
19 " BEGIN"
20 " x := 3345;"
21 " q := 666;"
22 " END Y;"
23 "BEGIN"
24 " x := 54646;"
25 " q := 1;"
26 " Y;"
27 " Out.String('Pos Y: q = '); Out.Int(q, 0); Out.Ln;"
28 "END X;"
29 ""
30 "BEGIN;"
31 " i := 1;"
32 " X(i, i);"
33 " Out.Int(i, 0); Out.Ln;"
34 "END Test."
35 ;
38 "MODULE Out;"
39 " PROCEDURE Open*;"
40 " END Open;"
41 ""
42 " PROCEDURE Char* (ch : CHAR);"
43 " END Char;"
44 ""
45 " PROCEDURE String* (str : ARRAY OF CHAR);"
46 " END String;"
47 ""
48 " PROCEDURE Int*(i, n : LONGINT);"
49 " END Int;"
50 ""
51 " PROCEDURE Real*(x : REAL; n : INTEGER);"
52 " END Real;"
53 ""
54 " PROCEDURE LongReal*(x : LONGREAL; n : INTEGER);"
55 " END LongReal;"
56 ""
57 " PROCEDURE Ln*;"
58 " END Ln;"
59 ""
60 "END Out."
61 ;
68 {
70 {
72 }
74 {
76 }
77 else
78 {
80 }
81 }
86 {
87 }
92 {
97 {
99 }
101 }
106 {
111 {
113 }
115 }
120 {
122 }
125 {
134 }
137 {
140 }
142 int
144 {
150 // init_system_modules();
152 // oberon_generator_dump(ctx, "dump.txt");
154 // start_module();
158 }