blob: 49418db776cda539e870880dd6faea5e2dc51200 (
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
/*
* module trying to show all features of the language
*/
module test1;
const
// integer constant
N, M : integer = 20;
O : integer = N;
C : character = 'A';
// boolean constant
INIT_STATE : boolean = true;
// string constant
S : array 10 of character = "hello";
var
// this is an integer
a : integer;
// this is also an integer
b : integer;
c : integer; // c too
d, e, f : integer;
flag : boolean;
i : integer;
j : character := C;
s : array 10 of character := S;
s1 : array 10 of character;
s2 : array 10 of character := "hello";
a1 : array 10 of integer;
procedure B;
procedure A;
begin
a1[5] := 43;
B;
end
procedure B;
begin
a1[4] := 44;
end
begin
a := 1;
b := 7;
c := N; // c should be 20
a := b; // a should be 7
a := a + 1; // a should be 8 now
d := a * c + b; // d should be 8 * 20 + 7 = 167 (A7 hex)
d := a * ( c + b ); // d should be 8 * ( 20 + 7 ) = 216 (D8 hex)
e := ( ( 7 * a + b ) + 2 * ( b + a + 3 ) ) * 4 div 2; // ((7*8+7)+2*(7+8+3))*4/2=198 (C6 hex)
f := a - b; // should be 8-7=1
flag := INIT_STATE; // should be false
flag := a = b; // flag should be false
//flag := a <> b; // flag should be true
//flag := a < b; // flag should be false
//flag := a <= b; // flag should be false
//flag := a > b; // flag should be true
//flag := a >= b; // flag should be false
if flag do
a := 9;
else
a := 8;
end;
i := 0;
while ( i < 10 ) and not flag do
i := i + 1;
end;
j := 'B';
s1[0] := ' ';
s[0] := 'X';
s[1] := s[0];
j := s[2];
i := 0;
while i < 10 do
a1[i] := i;
//s2[i] := 'A' + i;
i := i + 1;
end;
a1[3] := 42;
s2[a1[2]] := 'Z';
A;
B;
end
|