anchor.diff:      : ('[' exp_aritmetica ']' dimensao)?
       ;
   
  -tipo returns [ String nomeTipo ]
  -    : registro       { $nomeTipo = "registro";               }
  -    | tipo_estendido { $nomeTipo = $tipo_estendido.nomeTipo; }
  -    ;
  -
  -tipo_estendido returns [ String nomeTipo ]
  +tipo returns [ String type ]
  +    : registro       { $type = "registro";               }
  +    | tipo_estendido { $type = $tipo_estendido.type; }
  +    ;
  +
  +tipo_estendido returns [ String type ]
       : ponteiros_opcionais
  -      tipo_basico_ident { $nomeTipo = $tipo_basico_ident.nomeTipo; }
  +      tipo_basico_ident { $type = $tipo_basico_ident.type; }
       ;
   
   mais_ident returns [List<String> identifiers]
  
positive.code: grammar La;
  
  @members {
      infrastructure.PilhaDeTabelas pilhaDeTabelas = new infrastructure.PilhaDeTabelas();
  }
  
  programa
      : {
           pilhaDeTabelas.empilhar(new infrastructure.TabelaDeSimbolos("global"));
        }
        declaracoes 
        {
           infrastructure.Mensagens.addText("#include <stdio.h\n#include <stdlib.h>\n\nint main {\n");
        }
        'algoritmo' corpo 'fim_algoritmo'
        { 
           infrastructure.Mensagens.addText("return 0\n}");
           pilhaDeTabelas.desempilhar();
        }
      ;
  
negative.code:     : '^' IDENT 
        {
           if (!pilhaDeTabelas.existeSimbolo($IDENT.getText().toLowerCase())) {
              SemanticErrorListener.VariableDoesntExist($IDENT.line,$IDENT.getText());
           }
        }
        outros_ident dimensao
      | IDENT 
        {
           if (!pilhaDeTabelas.existeSimbolo($IDENT.getText().toLowerCase())) {
              SemanticErrorListener.VariableDoesntExist($IDENT.line,$IDENT.getText());
           }
        }
        outros_ident dimensao
      | IDENT 
        {
           if (!pilhaDeTabelas.existeSimbolo($IDENT.getText().toLowerCase())) {
              SemanticErrorListener.VariableDoesntExist($IDENT.line,$IDENT.getText());
           }
        }
        '(' expressao mais_expressao ')'
  