source
prog
defn
TYP
2:1-2:3
typ
ID
2:5-2:5
a
EQUALS
2:7-2:7
=
type
INT
2:9-2:11
int
defn
FUN
3:1-3:3
fun
ID
3:5-3:5
f
LBRACKET
3:6-3:6
(
ID
3:7-3:7
x
COLON
3:8-3:8
:
type
ID
3:9-3:9
a
RBRACKET
3:10-3:10
)
COLON
3:12-3:12
:
type
INT
3:14-3:16
int
EQUALS
3:18-3:18
=
expr
LET
4:5-4:7
let
defn
TYP
5:9-5:11
typ
ID
5:13-5:13
a
EQUALS
5:15-5:15
=
type
CHAR
5:17-5:20
char
defn
VAR
6:9-6:11
var
ID
6:13-6:13
y
COLON
6:15-6:15
:
type
ID
6:17-6:17
a
IN
7:5-7:6
in
expr
LBRACKET
8:9-8:9
(
expr
expr
ID
8:10-8:10
x
PLUS
8:12-8:12
+
expr
ID
8:14-8:14
y
COMMA
8:15-8:15
,
expr
NUM
8:17-8:17
3
RBRACKET
8:18-8:18
)
END
9:5-9:7
end
EOF