program: 
^ program +(IDENT) *\(input,output\); *$

ident:
([a-zA-Z_][a-zA-Z_1-9]*)

vars:
^ *var +(IDENTS *: *TIPO *;)* *$

idents:
(IDENT)(, *IDENT)*

tipo:
integer

bloco:
^ *begin *$
(EXPR)*
^ *end *$

expr:
 *IDENT *\(param\); *
 
param:
num || ident
 
op:[+-*/&|^(&&)(||)(^^)]