source
prog
defn
TYP
1:1-1:3
typ
ID
1:5-1:7
idt
EQUALS
1:9-1:9
=
type
INT
1:11-1:13
int
defn
TYP
2:1-2:3
typ
ID
2:5-2:6
T1
EQUALS
2:8-2:8
=
type
INT
2:10-2:12
int
defn
TYP
3:1-3:3
typ
ID
3:5-3:6
T2
EQUALS
3:8-3:8
=
type
ID
3:10-3:11
T1
defn
TYP
4:1-4:3
typ
ID
4:5-4:6
T3
EQUALS
4:8-4:8
=
type
ID
4:10-4:11
T2
defn
TYP
5:1-5:3
typ
ID
5:5-5:6
id
EQUALS
5:8-5:8
=
type
ID
5:10-5:12
idt
defn
VAR
7:1-7:3
var
ID
7:5-7:7
idv
COLON
7:9-7:9
:
type
LSQUARE
7:11-7:11
[
NUM
7:12-7:13
10
RSQUARE
7:14-7:14
]
type
ID
7:15-7:17
idt
defn
FUN
9:1-9:3
fun
ID
9:5-9:7
idf
LBRACKET
9:9-9:9
(
ID
9:11-9:13
id1
COLON
9:15-9:15
:
type
ID
9:17-9:18
T1
COMMA
9:20-9:20
,
ID
9:22-9:24
id2
COLON
9:26-9:26
:
type
ID
9:28-9:29
T2
COMMA
9:31-9:31
,
ID
9:33-9:35
id3
COLON
9:37-9:37
:
type
ID
9:39-9:40
T3
RBRACKET
9:42-9:42
)
COLON
9:44-9:44
:
type
ID
9:46-9:48
idt
defn
FUN
11:1-11:3
fun
ID
11:5-11:8
idff
LBRACKET
11:10-11:10
(
ID
11:12-11:14
abc
COLON
11:16-11:16
:
type
ID
11:18-11:19
id
RBRACKET
11:20-11:20
)
COLON
11:22-11:22
:
type
ID
11:24-11:26
idt
EQUALS
11:28-11:28
=
expr
NUM
11:30-11:30
1
COMMA
11:31-11:31
,
expr
NUM
11:33-11:33
2
COMMA
11:34-11:34
,
expr
NUM
11:36-11:36
3
COMMA
11:37-11:37
,
expr
WHILE
11:39-11:43
while
expr
NUM
11:45-11:45
2
DO
11:47-11:48
do
expr
NUM
11:50-11:50
1
COMMA
11:51-11:51
,
expr
NUM
11:53-11:53
2
COMMA
11:54-11:54
,
expr
NUM
11:56-11:56
3
END
11:58-11:60
end
EOF