source
prog
defn
VAR
2:1-2:3
var
ID
2:5-2:5
i
COLON
2:6-2:6
:
type
INT
2:8-2:10
int
defn
VAR
3:1-3:3
var
ID
3:5-3:5
c
COLON
3:6-3:6
:
type
INT
3:8-3:10
int
defn
FUN
4:1-4:3
fun
ID
4:5-4:8
main
LBRACKET
4:9-4:9
(
RBRACKET
4:10-4:10
)
COLON
4:11-4:11
:
type
VOID
4:12-4:15
void
EQUALS
4:17-4:17
=
expr
expr
ID
5:5-5:5
i
EQUALS
5:7-5:7
=
expr
NUM
5:9-5:9
0
COMMA
5:10-5:10
,
expr
expr
ID
6:5-6:5
c
EQUALS
6:7-6:7
=
expr
NUM
6:9-6:14
345325
COMMA
6:15-6:15
,
expr
WHILE
7:5-7:9
while
expr
expr
ID
7:11-7:11
i
LT
7:13-7:13
<
expr
ID
7:15-7:15
c
DO
7:17-7:18
do
expr
IF
8:9-8:10
if
expr
expr
expr
ID
8:12-8:12
i
PERCENT
8:14-8:14
%
expr
NUM
8:16-8:16
2
EEQUALS
8:18-8:19
==
expr
NUM
8:21-8:21
0
THEN
8:23-8:26
then
expr
expr
ID
9:13-9:13
c
EQUALS
9:15-9:15
=
expr
expr
ID
9:17-9:17
c
MINUS
9:19-9:19
-
expr
NUM
9:21-9:21
1
END
10:9-10:11
end
COMMA
10:12-10:12
,
expr
expr
ID
11:9-11:9
i
EQUALS
11:11-11:11
=
expr
expr
ID
11:13-11:13
i
PLUS
11:15-11:15
+
expr
NUM
11:17-11:17
1
END
12:5-12:7
end
EOF