Пример #1
0
        private void analisaLeia()
        {
            updateToken();

            if (!hasEndedTokens && isSimbol(ABRE_PARENTESES))
            {
                updateToken();

                if (!hasEndedTokens && isSimbol(IDENTIFICADOR))
                {
                    if (Semantico.pesquisaDeclVarTabela(actualToken.lexem))
                    {
                        CodeGenerator.gera(EMPTY_STRING, RD, EMPTY_STRING, EMPTY_STRING);
                        CodeGenerator.gera(EMPTY_STRING, STR, Semantico.pesquisaTabela(actualToken.lexem, 0).rotulo.ToString(), EMPTY_STRING);
                        updateToken();

                        if (!hasEndedTokens && isSimbol(FECHA_PARENTESES))
                        {
                            updateToken();
                        }
                        else
                        {
                            throwError(new CompiladorException(ERRO_SINTATICO), ERRO_PARENTESIS);
                        }
                    }
                    else
                    {
                        throwError(new CompiladorException(ERRO_SEMANTICO), DECL_VAR_ERROR);
                    }
                }
                else
                {
                    throwError(new CompiladorException(ERRO_SINTATICO), ERRO_NOME);
                }
            }
            else
            {
                throwError(new CompiladorException(ERRO_SINTATICO), ERRO_PARENTESIS);
            }
        }