blob: 97205705d8c51908150d7de5e807cb2a76f9b16b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
EX05: An example in which Pascal program text is rearranged to form an ADT.
This example demonstrates the use of additive macros.
@!******************************
@O@<ex05.out@>==@{@-
program adt(input,output);
@<Types@>
@<Variables@>
@<Procedures@>
begin startproc; end.
@}
@!******************************
@$@<Types@>+=@{@-
type buffer_type =
record
length : integer;
buf : array[1..100] of char;
end;
@}
@$@<Variables@>+=@{@-
bigbuf : buffer_type;
@}
@$@<Procedures@>+=@{@-
procedure buf_init (var b : buffer_type ) {Body of buf_init}
procedure buf_add (var b : buffer_type; ch : char) {Body of buf_add}
procedure buf_get (var b : buffer_type; var ch : char) {Body of buf_get}
@}
@!******************************
@$@<Types@>+=@{@-
type complex_type = record r,i : real; end;
@}
@$@<Procedures@>+=@{@-
procedure cm_set (var c: complex_type; a,b: real) {Body of cm_set}
procedure cm_add (a,b: complex_type; var c: complex_type) {Body of cm_add}
{Other procedures and functions}
@}
@!******************************
{...more pieces of program...}
@!******************************
|