SAN474: Algol60 compiler
View
our current grammar
or the acutal
Algol60 spec.
We also have online copies of the
MU grammar
, and the
project description
.
Caseid
Num
Type
Phase
Description
1
1
fail
2a
Assign real to integer variable.
2
2
fail
1a
Double declaration of differing types.
3
3
fail
1a
Using undeclared variable.
4
4
fail
1a
Assignment to a number.
5
5
fail
2a
integer mod real
6
6
fail
2a
real mod real
7
7
fail
2a
Pass test #7 with missing semi-colon before 'end'
8
8
fail
1a
Statements after end of program
9
9
fail
1a
Missing comma in variable declare.
10
10
fail
1a
Empty parenthesis.
11
11
fail
2a
Exponentiation by a real.
12
12
fail
2a
Exponentiation by a variable.
13
13
fail
1a
Double declaration of same type.
14
14
fail
3a
Missing 'then' in 'if' line.
15
15
fail
3a
Missing 'do' in 'for' line.
16
16
fail
3a
Missing 'step' in 'for..step..until'
17
17
fail
3a
Missing 'until' in 'for..step..until'
18
18
fail
3a
Missing 'while' in 'for..while'
19
19
fail
4a
Procedure in expression context without ().
20
20
fail
4a
Multiple procedure declaration.
21
21
fail
5a
Attempt to use non-typed function in expression.
22
22
fail
5a
Testing return type coherence.
23
23
fail
5a
Passing not enough parameters.
24
24
fail
5a
Passing the wrong type of parameters.
25
25
fail
5a
Passing too many parameters.
26
1
pass
1a
Integer assignment to declared variable.
27
2
pass
1a
Nested assignment on variable declaration.
28
3
pass
1a
Assignment on declaration and nested assignment.
29
4
pass
1a
All integer numerical operations.
30
5
pass
1a
All real numerical operations.
31
6
pass
2a
Mixed mode expressions with all operations.
32
7
pass
2a
Mixed mode expressions with two variables and various constant types.
33
8
pass
1a
Assigning variables when they're in the expression.
34
9
pass
1a
Multiple variable declaration.
35
10
pass
1a
Multiple variable declaration and initialization.
36
11
pass
1a
Parenthesis precendence.
37
12
pass
1a
Single-line comments.
38
13
pass
2a
Exponentiation of integers.
39
14
pass
2a
Exponentiation of reals.
40
15
pass
2a
Exponentiation in complex expression.
41
16
pass
1a
Block commented out program.
42
17
pass
2a
Assignment of integer values to real variables.
43
18
pass
2a
Logical operations (and, or, not).
44
19
pass
3a
tests for less than or equal to
45
20
pass
3a
test for less than
46
21
pass
3a
tests for equal comparison
47
22
pass
3a
tests for not equal comparison
48
23
pass
3a
test for greater than
49
24
pass
3a
test for greater than or equal to
50
25
pass
3a
'for' with positive 'step' and 'until'.
51
26
pass
3a
'for' with 'while'.
52
27
pass
3a
'for' with just arithmetic expression.
53
28
pass
3a
'for' with negative 'step' and 'until'.
54
29
pass
3a
'if' statement
55
30
pass
3a
'if'..'else' statment
56
31
pass
3a
'if' with nested 'if'
57
32
pass
3a
'if'..'else' with nested 'if'
58
33
pass
3a
'if'..'else' with nested 'if'..'else'
59
34
pass
4a
Procedure with a 'for' loop.
60
35
pass
4a
Procedure with a variable and print.
61
36
pass
4a
Multiple procedures with a 'for' loop.
62
37
pass
4a
Variable shadowing in procedures.
63
38
pass
5a
Return value from procedure
64
39
pass
3a
Massive Exponentiation
65
40
pass
5a
Reference parameters