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