anchor.diff:      : '&' IDENT
         {
            if (!pilhaDeTabelas.existeSimbolo($IDENT.getText().toLowerCase())) {
  -            infrastructure.ErrorListeners.SemanticErrorListener.VariableDoesntExist($IDENT.line,$IDENT.getText());
  +            SemanticErrorListener.VariableDoesntExist($IDENT.line,$IDENT.getText());
            }
         }
         outros_ident dimensao
  
positive.code:         // if any of these were declared already, logs a semantic error.
          if(pilhaDeTabelas.topo().existeSimbolo($IDENT.getText().toLowerCase())
             || declared.contains($IDENT.getText().toLowerCase())) {
              infrastructure.ErrorListeners.SemanticErrorListener.VariableAlreadyExists($IDENT.line, $IDENT.getText());
          } else {
              declared.add($IDENT.getText().toLowerCase());
          }
  
negative.code:     : 'leia' '(' identificador
      {
          if (!pilhaDeTabelas.existeSimbolo($identificador.name.toLowerCase())) {
              SemanticErrorListener.VariableDoesntExist($identificador.line, $identificador.name);
          }
      }
        mais_ident
      {
          for (String ident : $mais_ident.identifiers) {
              if (!pilhaDeTabelas.existeSimbolo(ident.toLowerCase())) {
                  SemanticErrorListener.VariableDoesntExist($identificador.line, ident);
              }
          }
          
          String variavel = $identificador.name;
          String tipo2 = pilhaDeTabelas.retornaTipo(variavel);
          if (tipo2.equals("inteiro"))
             Mensagens.addText("scanf(\"%d\",&"+variavel+");\n");
          else if (tipo2.equals("real"))
             Mensagens.addText("scanf(\"%f\",&"+variavel+");\n");
          else if (tipo2.equals("literal"))
             Mensagens.addText("scanf(\"%s\",&"+variavel+");\n");
          else if (tipo2.equals("logico"))
             Mensagens.addText("scanf(\"%d\",&"+variavel+");\n");
      }
        ')'
      | 'escreva' '(' expressao mais_expressao ')'
  