source 
 prog 
 defn 
 VAR 
 1:1-1:3 
 var 
 ID 
 1:5-1:5 
 a 
 COLON 
 1:6-1:6 
 : 
 type 
 INT 
 1:8-1:10 
 int 
 defn 
 VAR 
 2:1-2:3 
 var 
 ID 
 2:5-2:5 
 b 
 COLON 
 2:6-2:6 
 : 
 type 
 INT 
 2:8-2:10 
 int 
 defn 
 FUN 
 3:1-3:3 
 fun 
 ID 
 3:5-3:8 
 main 
 LBRACKET 
 3:9-3:9 
 ( 
 RBRACKET 
 3:10-3:10 
 ) 
 COLON 
 3:11-3:11 
 : 
 type 
 INT 
 3:13-3:15 
 int 
 EQUALS 
 3:17-3:17 
 = 
 expr 
 expr 
 ID 
 4:5-4:5 
 a 
 EQUALS 
 4:7-4:7 
 = 
 expr 
 NUM 
 4:9-4:9 
 0 
 COMMA 
 4:10-4:10 
 , 
 expr 
 expr 
 ID 
 5:5-5:5 
 b 
 EQUALS 
 5:7-5:7 
 = 
 expr 
 NUM 
 5:9-5:9 
 0 
 COMMA 
 5:10-5:10 
 , 
 expr 
 WHILE 
 6:5-6:9 
 while 
 expr 
 expr 
 ID 
 6:11-6:11 
 a 
 LT 
 6:13-6:13 
 < 
 expr 
 NUM 
 6:15-6:17 
 100 
 DO 
 6:19-6:20 
 do 
 expr 
 WHILE 
 7:13-7:17 
 while 
 expr 
 expr 
 ID 
 7:19-7:19 
 b 
 LT 
 7:21-7:21 
 < 
 expr 
 NUM 
 7:23-7:28 
 100000 
 DO 
 7:30-7:31 
 do 
 expr 
 expr 
 ID 
 8:17-8:17 
 b 
 EQUALS 
 8:19-8:19 
 = 
 expr 
 expr 
 ID 
 8:21-8:21 
 b 
 PLUS 
 8:23-8:23 
 + 
 expr 
 NUM 
 8:25-8:25 
 2 
 END 
 9:13-9:15 
 end 
 COMMA 
 9:16-9:16 
 , 
 expr 
 expr 
 ID 
 10:13-10:13 
 a 
 EQUALS 
 10:15-10:15 
 = 
 expr 
 expr 
 ID 
 10:17-10:17 
 a 
 PLUS 
 10:19-10:19 
 + 
 expr 
 NUM 
 10:21-10:21 
 1 
 END 
 11:5-11:7 
 end 
 EOF