anchor.diff:  op_adicao:
       '+' | '-';
   
  -termo:
  +termo returns[String tipoSimbolo] :
       fator outros_fatores;
   
  -outros_termos:
  +outros_termos returns[String tipoSimbolo]:
       op_adicao termo outros_termos | ;
   
  -fator:
  +fator returns[String tipoSimbolo]:
       parcela outras_parcelas;
   
   outros_fatores:
       op_multiplicacao fator outros_fatores | ;
   
  -parcela:
  +parcela returns[String tipoSimbolo]:
       op_unario parcela_unario | parcela_nao_unario;
   
  -parcela_unario returns[int tipoParcela]:
  +parcela_unario returns[int tipoParcela, String tipoSimbolo]:
       '^' IDENT outros_ident dimensao {$tipoParcela = 0;}
       | IDENT chamada_partes{$tipoParcela = 1;}
       | NUM_INT{$tipoParcela = 2;}
  
positive.code: senao_opcional:
      'senao' comandos | ;
  
  chamada_atribuicao:
      '(' argumentos_opcional ')' | outros_ident dimensao '<-' expressao;
  
  argumentos_opcional:
  
negative.code: op_relacional:
      '=' | '<>' | '>=' | '<=' | '>' | '<';
  
  expressao returns[String tipoSimbolo]:
      termo_logico outros_termos_logicos;
  
  op_nao:
      'nao' | ;
  
  termo_logico returns[String tipoSimbolo]:
      fator_logico outros_fatores_logicos;
  
  outros_termos_logicos:
  