1 #include <stdio.h>
2 #include <string.h>
3 #include <assert.h>
8 "(* Main module *)"
9 "MODULE Test;"
10 "TYPE"
11 " P = PROCEDURE;"
12 " F = PROCEDURE (x : INTEGER) : INTEGER;"
13 ""
14 "VAR"
15 " p : P;"
16 " f : F;"
17 " i : INTEGER;"
18 ""
19 "PROCEDURE Pow(x : INTEGER) : INTEGER;"
20 "BEGIN"
21 " RETURN x * x;"
22 "END Pow;"
23 ""
24 "PROCEDURE Do;"
25 "END Do;"
26 ""
27 "BEGIN;"
28 " p := Do;"
29 " f := Pow;"
30 " i := f(7);"
31 " p;"
32 "END Test."
33 ;
36 "MODULE Out;"
37 // "(* Interface to outer program ;) *)"
38 // "VAR"
39 // " Open- : PROCEDURE;"
40 // " Char- : PROCEDURE(ch : CHAR);"
41 // " String- : PROCEDURE(str : ARRAY OF CHAR)"
42 // " Int- : PROCEDURE(i, n : LONGINT);"
43 // " Int- : PROCEDURE(i, n : INTEGER);"
44 // " Real- : PROCEDURE(x : REAL; n : INTEGER);"
45 // " LongReal- : PROCEDURE(x : LONGREAL; n : INTEGER);"
46 // " Ln- : PROCEDURE;"
47 "END Out."
48 ;
55 {
57 {
59 }
61 {
63 }
64 else
65 {
67 }
68 }
73 {
74 }
79 {
84 {
86 }
88 }
93 {
98 {
100 }
102 }
107 {
109 }
112 {
121 }
124 {
127 }
129 int
131 {
137 // init_system_modules();
139 // oberon_generator_dump(ctx, "dump.txt");
141 // start_module();
145 }