source 
 prog 
 defn 
 FUN 
 1:1-1:3 
 fun 
 ID 
 1:5-1:5 
 a 
 LBRACKET 
 1:6-1:6 
 ( 
 ID 
 1:7-1:7 
 b 
 COLON 
 1:8-1:8 
 : 
 type 
 INT 
 1:10-1:12 
 int 
 RBRACKET 
 1:13-1:13 
 ) 
 COLON 
 1:14-1:14 
 : 
 type 
 INT 
 1:16-1:18 
 int 
 EQUALS 
 1:20-1:20 
 = 
 expr 
 expr 
 ID 
 3:5-3:5 
 b 
 ASTERISK 
 3:7-3:7 
 * 
 expr 
 WHILE 
 3:9-3:13 
 while 
 expr 
 ID 
 3:15-3:15 
 b 
 DO 
 3:17-3:18 
 do 
 expr 
 expr 
 ID 
 3:20-3:20 
 b 
 PLUS 
 3:22-3:22 
 + 
 expr 
 NUM 
 3:24-3:24 
 1 
 END 
 3:26-3:28 
 end 
 EOF