4 #include <string.h>
5 #include <assert.h>
8 "(* Main module *)"
9 "MODULE Test;"
10 "IMPORT Out;"
11 "CONST"
12 " real = 0.1E3;"
13 ""
14 "VAR"
15 " nx- : INTEGER;"
16 " p : POINTER TO ARRAY 3 OF RECORD i, j, k : INTEGER END;"
17 " q : POINTER TO RECORD x, y, z : INTEGER END;"
18 ""
19 "PROCEDURE ChParam(VAR i : INTEGER);"
20 "BEGIN"
21 " i := 1234;"
22 "END ChParam;"
23 ""
24 "BEGIN;"
25 " NEW(p);"
26 " p[2].k := 1;"
27 " NEW(q);"
28 " "
29 " Out.Open;"
30 " ChParam(nx);"
31 " Out.Int(nx, 0);"
32 " Out.Ln;"
33 " Out.Real(real / 3.0, 0);"
34 " Out.Ln;"
35 "END Test."
36 ;
39 "MODULE Out;"
40 "(* Interface to outer program ;) *)"
41 "VAR"
42 " Open- : PROCEDURE;"
43 // " Char- : PROCEDURE(ch : CHAR);"
44 // " String- : PROCEDURE(str : ARRAY OF CHAR)"
45 // " Int- : PROCEDURE(i, n : LONGINT);"
46 " Int- : PROCEDURE(i, n : INTEGER);"
47 " Real- : PROCEDURE(x : REAL; n : INTEGER);"
48 // " LongReal- : PROCEDURE(x : LONGREAL; n : INTEGER);"
49 " Ln- : PROCEDURE;"
50 "END Out."
51 ;
58 {
60 {
62 }
64 {
66 }
67 else
68 {
70 }
71 }
76 {
77 }
82 {
87 {
89 }
91 }
96 {
101 {
103 }
105 }
110 {
112 }
115 {
124 }
127 {
130 }
132 int
134 {
148 }