anchor.diff:  
   args: '(' (listaexp)? ')' | construtortabela | Cadeia; //argumentos para funções, tabelas e cadeias
   
  -funcao: function corpodafuncao; //declarar uma função
  +funcao: 'function' corpodafuncao; //declarar uma função
   
   Cadeia: '\'' * ~('\'') '\''; //cadeia de caracteres envoltas por aspas simples
  +
  +corpodafuncao : '(' (listapar)? ')' bloco 'end';
  +
  +listapar : listadenomes (',' '...')? | '...';
  +
  +construtortabela : '{' (listadecampos)? '}';
  +
  +listadecampos : campo (separadordecampos campo)* (separadordecampos)?;
  +
  +campo : '[' exp ']' '=' exp | Nome '=' exp | exp;
  +
  +separadordecampos : ',' | ';';
  +
  +opbin : '+' | '-' | '*' | '/' | '^' | '%' | '..' | 
  +         '<' | '<=' | '>' | '>=' | '==' | '~=' | 
  +         'and' | 'or';
  +
  +opunaria : '-' | 'not' | '#';
  +
  +Comentario: '--' .*? '\n' -> skip;
  +
  +Decimal: Num+ '.' (Num*)?;
  +
  +Format: ('\n' | '\t' | '\r' | ' ') -> skip;
positive.code: 
  listadenomes: Nome (',' Nome)*; //lista de nomes
  
  listaexp: (exp ',')* exp;//lista de expressões
  
  exp: //expressões básicas
  	'nil'
  	| 'false'
  	| 'true'
  	| Numero
  	| Cadeia
  	| '...'
  	| funcao
  	| expprefixo
  	| construtortabela
  
negative.code:    public static String grupo="740951 743602 743586";
  }
  
  //":=> ":" {regra} => (regra)* [regra] => (regra)?
  
  programa: trecho EOF; //Regra principal
  
  