anchor.diff:  
   listavar: var (',' var)*; // lista de variaveis
   
  -var: Nome | expprefixo '[' exp ']' | expprefixo '.' Nome; // Declaração de variavel locais, globais e campos de tabelas
  +var:
  +	Nome
  +	| expprefixo '[' exp ']'
  +	| expprefixo '.' Nome; // Declaração de variavel locais, globais e campos de tabelas
   
   listadenomes: Nome (',' Nome)*; //lista de nomes
   
  -listaexp: (exp ',')* exp;  //lista de expressões
  +listaexp: (exp ',')* exp; //lista de expressões
   
   exp: //expressões básicas
   	'nil'
  
positive.code: 
  expprefixo: var | chamadadefuncao | '(' exp ')';
  
  chamadadefuncao: expprefixo args | expprefixo ':' Nome args;  
  
  args: '(' (listaexp)? ')' | construtortabela | Cadeia; //argumentos para funções, tabelas e cadeias
  
  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;
  
  
negative.code: 	| 'true'
  	| Cadeia
  	| '...'
  	| Num
  	| Decimal
  	| funcao
  	| expprefixo
  	| construtortabela
  