-
Notifications
You must be signed in to change notification settings - Fork 0
/
t4.txt
30 lines (28 loc) · 1.05 KB
/
t4.txt
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
** This testcase demonstrates the syntactic correctness of the constructs such as modules, simple and declaration statements, and expressions**
declare module compute;
<<<driver program>>>
start
declare var_1_, var_2_, var_3_:integer;
declare R1_abc: boolean;
declare r2_ABC: integer;
declare R3_abc: real;
get_value(var_1_);
var_2_:=10;
var_3_:= -(6);
[R1_abc, r2_ABC, R3_abc] := use module compute with parameters var_1_, var_2_, var_34;
** do not bother that the last variable is not declared. It will be taken care of later in the semantic analysis phase**
end
<<module compute>>
takes input[a:integer, b:integer, c:integer];
returns [res_1:boolean, res_2_a:integer, res_2__b:real];
start
declare b:boolean;
res_2_a:= -(a*b-c/5);
res_2__b:= ((res_2_a + a)*12+22.34E-2)/13;
b := a <= b AND c >= a OR a<0 AND false;
res_1:= (true AND c==b)OR(b>p AND (a<=c));
** check rules 27 a to e and redefine to preserve the parentheses needs **
print(res_1);
end
**verify the output of the lexical analyzer as well**
**check the correctness of the parse tree**