anchor.diff:  outros_fatores_logicos:
       'e' fator_logico outros_fatores_logicos | ;
   
  -fator_logico:
  +fator_logico returns[String tipoSimbolo]:
       op_nao parcela_logica;
   
  -parcela_logica:
  -    'verdadeiro' | 'falso' | exp_relacional;
  +parcela_logica returns[String tipoSimbolo, int tipoParcela]:
  +    'verdadeiro' {$tipoParcela = 0;} | 'falso' {$tipoParcela = 1;} | exp_relacional { $tipoParcela = 2;};
   
   IDENT:
       ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_')*;
  
positive.code: chamada_partes:
      '(' expressao mais_expressao ')' | outros_ident dimensao | ;
  
  exp_relacional:
      exp_aritmetica op_opcional;
  
  op_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:
  