예제 #1
0
    // $ANTLR start "table_name"
    // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:28:1: table_name returns [NameWithSchema result] : qualified_name ;
    public PostgreSQLParser.table_name_return table_name() // throws RecognitionException [1]
    {
        PostgreSQLParser.table_name_return retval = new PostgreSQLParser.table_name_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        PostgreSQLParser.qualified_name_return qualified_name14 = default(PostgreSQLParser.qualified_name_return);



        try
        {
            // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:29:2: ( qualified_name )
            // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:29:4: qualified_name
            {
                root_0 = (object)adaptor.GetNilNode();

                PushFollow(FOLLOW_qualified_name_in_table_name150);
                qualified_name14 = qualified_name();
                state.followingStackPointer--;

                adaptor.AddChild(root_0, qualified_name14.Tree);
                retval.result = ((qualified_name14 != null) ? qualified_name14.result : default(NameWithSchema));
            }

            retval.Stop = input.LT(-1);

            retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input, re);
            // Conversion of the second argument necessary, but harmless
            retval.Tree = (object)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
        }
        finally
        {
        }
        return(retval);
    }
예제 #2
0
    // $ANTLR start "qualified_name"
    // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:30:1: qualified_name returns [NameWithSchema result] : ( (schema= id DOT name= id ) | (name= id ) );
    public PostgreSQLParser.qualified_name_return qualified_name() // throws RecognitionException [1]
    {
        PostgreSQLParser.qualified_name_return retval = new PostgreSQLParser.qualified_name_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken DOT15 = null;

        PostgreSQLParser.id_return schema = default(PostgreSQLParser.id_return);

        PostgreSQLParser.id_return name = default(PostgreSQLParser.id_return);


        object DOT15_tree = null;

        try
        {
            // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:31:2: ( (schema= id DOT name= id ) | (name= id ) )
            int alt6  = 2;
            int LA6_0 = input.LA(1);

            if (((LA6_0 >= T_IDENT && LA6_0 <= T_QUOTED_IDENT)))
            {
                int LA6_1 = input.LA(2);

                if (((LA6_1 >= USING && LA6_1 <= LPAREN)))
                {
                    alt6 = 2;
                }
                else if ((LA6_1 == DOT))
                {
                    alt6 = 1;
                }
                else
                {
                    NoViableAltException nvae_d6s1 =
                        new NoViableAltException("", 6, 1, input);

                    throw nvae_d6s1;
                }
            }
            else
            {
                NoViableAltException nvae_d6s0 =
                    new NoViableAltException("", 6, 0, input);

                throw nvae_d6s0;
            }
            switch (alt6)
            {
            case 1:
                // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:31:4: (schema= id DOT name= id )
            {
                root_0 = (object)adaptor.GetNilNode();

                // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:31:4: (schema= id DOT name= id )
                // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:31:5: schema= id DOT name= id
                {
                    PushFollow(FOLLOW_id_in_qualified_name166);
                    schema = id();
                    state.followingStackPointer--;

                    adaptor.AddChild(root_0, schema.Tree);
                    DOT15      = (IToken)Match(input, DOT, FOLLOW_DOT_in_qualified_name168);
                    DOT15_tree = (object)adaptor.Create(DOT15);
                    adaptor.AddChild(root_0, DOT15_tree);

                    PushFollow(FOLLOW_id_in_qualified_name172);
                    name = id();
                    state.followingStackPointer--;

                    adaptor.AddChild(root_0, name.Tree);
                    retval.result = new NameWithSchema(UnquoteName(((schema != null) ? input.ToString((IToken)(schema.Start), (IToken)(schema.Stop)) : null)), UnquoteName(((name != null) ? input.ToString((IToken)(name.Start), (IToken)(name.Stop)) : null)));
                }
            }
            break;

            case 2:
                // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:32:6: (name= id )
            {
                root_0 = (object)adaptor.GetNilNode();

                // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:32:6: (name= id )
                // ..\\Plugin.postgre\\AntlrParser\\PostgreSQL.g:32:7: name= id
                {
                    PushFollow(FOLLOW_id_in_qualified_name188);
                    name = id();
                    state.followingStackPointer--;

                    adaptor.AddChild(root_0, name.Tree);
                    retval.result = new NameWithSchema(UnquoteName(((name != null) ? input.ToString((IToken)(name.Start), (IToken)(name.Stop)) : null)));
                }
            }
            break;
            }
            retval.Stop = input.LT(-1);

            retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input, re);
            // Conversion of the second argument necessary, but harmless
            retval.Tree = (object)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
        }
        finally
        {
        }
        return(retval);
    }