3305807bbb3fa1c87b0cbd508aaec7e6787ebbfb
1 #include <stdio.h>
2 #include <string.h>
3 #include <assert.h>
8 "(* Main module *)"
9 "MODULE Test;"
10 "IMPORT Out;"
11 "TYPE"
12 " Callback = PROCEDURE;"
13 " Callfront = PROCEDURE(x : LONGINT) : LONGINT;"
14 " RecDesc = RECORD"
15 " cb : Callback;"
16 " cf : Callfront;"
17 " END;"
18 ""
19 "VAR"
20 " r : RecDesc;"
21 " i : LONGINT;"
22 ""
23 "PROCEDURE Stuff;"
24 "BEGIN"
25 " Out.Int(0123456789, 0); Out.Ln;"
26 "END Stuff;"
27 ""
28 "PROCEDURE Ffuts (x : LONGINT) : LONGINT;"
29 "BEGIN"
30 " RETURN 9876543210 + x;"
31 "END Ffuts;"
32 ""
33 "BEGIN"
34 " Out.Open;"
35 " Out.Int(1, 0); Out.Ln;"
36 " r.cb := Stuff;"
37 " Out.Int(2, 0); Out.Ln;"
38 " r.cb();"
39 " Out.Int(3, 0); Out.Ln;"
40 " r.cf := Ffuts;"
41 " Out.Int(4, 0); Out.Ln;"
42 " i := r.cf(0123456789);"
43 " Out.Int(i, 0); Out.Ln;"
44 "END Test."
45 ;
47 // PROCEDURE Char* (ch : CHAR);
48 // PROCEDURE String* (str : ARRAY OF CHAR);
51 "MODULE Out;"
52 " PROCEDURE Open*;"
53 " END Open;"
54 ""
55 " PROCEDURE Int*(i, n : LONGINT);"
56 " END Int;"
57 ""
58 " PROCEDURE Real*(x : REAL; n : INTEGER);"
59 " END Real;"
60 ""
61 " PROCEDURE LongReal*(x : LONGREAL; n : INTEGER);"
62 " END LongReal;"
63 ""
64 " PROCEDURE Ln*;"
65 " END Ln;"
66 ""
67 "END Out."
68 ;
75 {
77 {
79 }
81 {
83 }
84 else
85 {
87 }
88 }
93 {
94 }
99 {
104 {
106 }
108 }
113 {
118 {
120 }
122 }
127 {
129 }
132 {
141 }
144 {
147 }
149 int
151 {
157 // init_system_modules();
159 // oberon_generator_dump(ctx, "dump.txt");
161 // start_module();
165 }