`gram` `prog`
`prog` `stat` ; `prog'`
`prog'` `prog`
`prog'`
`stat` `assig`
`stat` `if`
`assig` "" := `e`
`if`  `e`  `prog` `if'`
`if'` 
`if'`  `prog` 
`e` `se` `e'`
`e'` `rop` `se`
`e'`  `rop` `se`
`e'`
`rop` =
`rop` <>
`rop` <
`rop` >
`rop` <=
`rop` >=
`rop` in
`se` `ae`
`se` + `ae`
`se` - `ae`
`ae` `t` `ae'`
`ae'` `aop` `ae`
`ae'`
`aop` +
`aop` -
`aop` 
`aop` xor
`t` `f` `t'`
`t'` `mop` `t`
`t'`
`mop` *
`mop` /
`mop` div
`mop` rem
`mop` 
`f` 10E46
`f` ""
`f` ( `e` )
`f`  `f`
`stat` `while`
`while`  `e`  `prog` 
`stat` `for`
`for`  `e` `times` `prog` 
`times` 
`times` 
`stat` `call`
`call` ID `arglist`
`arglist`
`arglist` ( `args` )
`args` `e` `args'`
`args'`
`args'` , `args`
`f` ''
`fun` ID `arglist`
`f` `fun`
