Exemplo n.º 1
0
        private string parseSubquery()
        {
            if (TokenAtual.Equals(TipoToken.PalavraChave, "SELECT"))
            {
                int           cont           = 1;
                Queue <Token> tokensSubquery = new Queue <Token>();

                while (cont > 0)
                {
                    if (TokenAtual.Equals(TipoToken.Simbolo, "("))
                    {
                        cont += 1;
                    }
                    else if (TokenAtual.Equals(TipoToken.Simbolo, ")"))
                    {
                        cont -= 1;
                    }
                    if (cont > 0)
                    {
                        tokensSubquery.Enqueue(TokenAtual);
                        leProximoToken();
                    }
                }
                TradutorSqlToOracle tradutor = new TradutorSqlToOracle();
                return(tradutor.Traduz(tokensSubquery));
            }
            return(parseExpressaoAnd());
        }
Exemplo n.º 2
0
        private string parseUnion()
        {
            if (!fimDoSql && TokenAtual.Equals(TipoToken.PalavraChave, "UNION"))
            {
                //pulaTokenEsperado(TipoToken.PalavraChave, "UNION");
                string expressao = " UNION ";

                if (proximoTokenIgualA(TipoToken.PalavraChave, "ALL"))
                {
                    leProximoToken();
                    expressao += "ALL ";
                }

                TradutorSqlToOracle tradutor = new TradutorSqlToOracle();
                expressao += tradutor.Traduz(Tokens);
                return(expressao);
            }
            return("");
        }