/** \file
 *  This C source file was generated by $ANTLR version 3.3 Nov 30, 2010 12:50:56
 *
 *     -  From the grammar source file : OraclePLSQL.g
 *     -                            On : 2011-09-03 01:17:50
 *     -                for the parser : OraclePLSQLParserParser *
 * Editing it, at least manually, is not wise. 
 *
 * C language generator and runtime by Jim Idle, jimi|hereisanat|idle|dotgoeshere|ws.
 *
 *
*/
// [The "BSD licence"]
// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
// http://www.temporal-wave.com
// http://www.linkedin.com/in/jimidle
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
//    derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

/* -----------------------------------------
 * Include the ANTLR3 generated header file.
 */
#include    "OraclePLSQLParser.h"
/* ----------------------------------------- */





/* MACROS that hide the C interface implementations from the
 * generated code, which makes it a little more understandable to the human eye.
 * I am very much against using C pre-processor macros for function calls and bits
 * of code as you cannot see what is happening when single stepping in debuggers
 * and so on. The exception (in my book at least) is for generated code, where you are
 * not maintaining it, but may wish to read and understand it. If you single step it, you know that input()
 * hides some indirect calls, but is always referring to the input stream. This is
 * probably more readable than ctx->input->istream->input(snarfle0->blarg) and allows me to rejig
 * the runtime interfaces without changing the generated code too often, without
 * confusing the reader of the generated output, who may not wish to know the gory
 * details of the interface inheritance.
 */
 
#define		CTX	ctx

/* Aids in accessing scopes for grammar programmers
 */
#undef	SCOPE_TYPE
#undef	SCOPE_STACK
#undef	SCOPE_TOP
#define	SCOPE_TYPE(scope)   pOraclePLSQLParser_##scope##_SCOPE
#define SCOPE_STACK(scope)  pOraclePLSQLParser_##scope##Stack
#define	SCOPE_TOP(scope)    ctx->pOraclePLSQLParser_##scope##Top
#define	SCOPE_SIZE(scope)		ctx->pOraclePLSQLParser_##scope##Stack_limit
#define SCOPE_INSTANCE(scope, i)	(ctx->SCOPE_STACK(scope)->get(ctx->SCOPE_STACK(scope),i))

/* Macros for accessing things in the parser
 */
 
#undef	    PARSER		    
#undef	    RECOGNIZER		    
#undef	    HAVEPARSEDRULE
#undef		MEMOIZE
#undef	    INPUT
#undef	    STRSTREAM
#undef	    HASEXCEPTION
#undef	    EXCEPTION
#undef	    MATCHT
#undef	    MATCHANYT
#undef	    FOLLOWSTACK
#undef	    FOLLOWPUSH
#undef	    FOLLOWPOP
#undef	    PRECOVER
#undef	    PREPORTERROR
#undef	    LA
#undef	    LT
#undef	    CONSTRUCTEX
#undef	    CONSUME
#undef	    MARK
#undef	    REWIND
#undef	    REWINDLAST
#undef	    PERRORRECOVERY
#undef	    HASFAILED
#undef	    FAILEDFLAG
#undef	    RECOVERFROMMISMATCHEDSET
#undef	    RECOVERFROMMISMATCHEDELEMENT
#undef		INDEX
#undef      ADAPTOR
#undef		SEEK
#undef	    RULEMEMO		    
#undef		DBG

#define	    PARSER				ctx->pParser  
#define	    RECOGNIZER				PARSER->rec
#define	    PSRSTATE				RECOGNIZER->state
#define	    HAVEPARSEDRULE(r)			RECOGNIZER->alreadyParsedRule(RECOGNIZER, r)
#define	    MEMOIZE(ri,si)			RECOGNIZER->memoize(RECOGNIZER, ri, si)
#define	    INPUT				PARSER->tstream
#define	    STRSTREAM				INPUT
#define	    ISTREAM				INPUT->istream
#define	    INDEX()				ISTREAM->index(INPUT->istream)
#define	    HASEXCEPTION()			(PSRSTATE->error == ANTLR3_TRUE)
#define	    EXCEPTION				PSRSTATE->exception
#define	    MATCHT(t, fs)			RECOGNIZER->match(RECOGNIZER, t, fs)
#define	    MATCHANYT()				RECOGNIZER->matchAny(RECOGNIZER)
#define	    FOLLOWSTACK				PSRSTATE->following
#ifdef  SKIP_FOLLOW_SETS
#define	    FOLLOWPUSH(x)
#define	    FOLLOWPOP()
#else
#define	    FOLLOWPUSH(x)			FOLLOWSTACK->push(FOLLOWSTACK, ((void *)(&(x))), NULL)
#define	    FOLLOWPOP()				FOLLOWSTACK->pop(FOLLOWSTACK)
#endif
#define	    PRECOVER()				RECOGNIZER->recover(RECOGNIZER)
#define	    PREPORTERROR()			RECOGNIZER->reportError(RECOGNIZER)
#define	    LA(n)				INPUT->istream->_LA(ISTREAM, n)
#define	    LT(n)				INPUT->_LT(INPUT, n)
#define	    CONSTRUCTEX()			RECOGNIZER->exConstruct(RECOGNIZER)
#define	    CONSUME()				ISTREAM->consume(ISTREAM)
#define	    MARK()				ISTREAM->mark(ISTREAM)
#define	    REWIND(m)				ISTREAM->rewind(ISTREAM, m)
#define	    REWINDLAST()			ISTREAM->rewindLast(ISTREAM)
#define	    SEEK(n)				ISTREAM->seek(ISTREAM, n)
#define	    PERRORRECOVERY			PSRSTATE->errorRecovery
#define	    FAILEDFLAG				PSRSTATE->failed
#define	    HASFAILED()				(FAILEDFLAG == ANTLR3_TRUE)
#define	    BACKTRACKING			PSRSTATE->backtracking
#define	    RECOVERFROMMISMATCHEDSET(s)		RECOGNIZER->recoverFromMismatchedSet(RECOGNIZER, s)
#define	    RECOVERFROMMISMATCHEDELEMENT(e)	RECOGNIZER->recoverFromMismatchedElement(RECOGNIZER, s)
#define     ADAPTOR                         ctx->adaptor
#define		RULEMEMO						PSRSTATE->ruleMemo
#define		DBG								RECOGNIZER->debugger

#define		TOKTEXT(tok, txt)				tok, (pANTLR3_UINT8)txt

/* The 4 tokens defined below may well clash with your own #defines or token types. If so
 * then for the present you must use different names for your defines as these are hard coded
 * in the code generator. It would be better not to use such names internally, and maybe
 * we can change this in a forthcoming release. I deliberately do not #undef these
 * here as this will at least give you a redefined error somewhere if they clash.
 */
#define	    UP	    ANTLR3_TOKEN_UP
#define	    DOWN    ANTLR3_TOKEN_DOWN
#define	    EOR	    ANTLR3_TOKEN_EOR
#define	    INVALID ANTLR3_TOKEN_INVALID


/* =============================================================================
 * Functions to create and destroy scopes. First come the rule scopes, followed
 * by the global declared scopes.
 */



/* ============================================================================= */

/* =============================================================================
 * Start of recognizer
 */



/** \brief Table of all token names in symbolic order, mainly used for
 *         error reporting.
 */
pANTLR3_UINT8   OraclePLSQLParserTokenNames[240+4]
     = {
        (pANTLR3_UINT8) "<invalid>",       /* String to print to indicate an invalid token */
        (pANTLR3_UINT8) "<EOR>",
        (pANTLR3_UINT8) "<DOWN>", 
        (pANTLR3_UINT8) "<UP>", 
        (pANTLR3_UINT8) "T_UNKNOWN",
        (pANTLR3_UINT8) "T_RESERVED",
        (pANTLR3_UINT8) "T_SCHEMA_NAME",
        (pANTLR3_UINT8) "T_TRIGGER_NAME",
        (pANTLR3_UINT8) "T_PACKAGE_NAME",
        (pANTLR3_UINT8) "T_FUNCTION_NAME",
        (pANTLR3_UINT8) "T_PROCEDURE_NAME",
        (pANTLR3_UINT8) "T_PARAMETER_NAME",
        (pANTLR3_UINT8) "T_BINDVAR_NAME",
        (pANTLR3_UINT8) "T_VARIABLE_NAME",
        (pANTLR3_UINT8) "T_DATATYPE_NAME",
        (pANTLR3_UINT8) "T_CURSOR_NAME",
        (pANTLR3_UINT8) "T_TABLE_NAME",
        (pANTLR3_UINT8) "T_COLUMN_NAME",
        (pANTLR3_UINT8) "T_OBJECT_NAME",
        (pANTLR3_UINT8) "T_LABEL_NAME",
        (pANTLR3_UINT8) "T_EXCEPTION_NAME",
        (pANTLR3_UINT8) "T_DBLINK_NAME",
        (pANTLR3_UINT8) "T_DECL",
        (pANTLR3_UINT8) "T_USE",
        (pANTLR3_UINT8) "T_USEL",
        (pANTLR3_UINT8) "T_TYPE_DECL",
        (pANTLR3_UINT8) "T_SUBTYPE_DECL",
        (pANTLR3_UINT8) "T_CURSOR_DECL",
        (pANTLR3_UINT8) "T_VAR_DECL",
        (pANTLR3_UINT8) "T_CONST_DECL",
        (pANTLR3_UINT8) "T_EXC_DECL",
        (pANTLR3_UINT8) "T_FUNCTION_DECL",
        (pANTLR3_UINT8) "T_PROCEDURE_DECL",
        (pANTLR3_UINT8) "T_PRAGMA_DECL",
        (pANTLR3_UINT8) "T_DECL_BLOCK",
        (pANTLR3_UINT8) "T_BLOCK_BLOCK",
        (pANTLR3_UINT8) "T_PROCEDURE_BLOCK",
        (pANTLR3_UINT8) "T_FUNCTION_BLOCK",
        (pANTLR3_UINT8) "T_DECLARE_BLOCK",
        (pANTLR3_UINT8) "T_BEGIN_BLOCK",
        (pANTLR3_UINT8) "T_EXCEPTIONS_BLOCK",
        (pANTLR3_UINT8) "T_COMMIT",
        (pANTLR3_UINT8) "T_DELETE",
        (pANTLR3_UINT8) "T_INSERT",
        (pANTLR3_UINT8) "T_LOCK_TABLE",
        (pANTLR3_UINT8) "T_MERGE",
        (pANTLR3_UINT8) "T_ROLLBACK",
        (pANTLR3_UINT8) "T_SAVEPOINT",
        (pANTLR3_UINT8) "T_SELECT",
        (pANTLR3_UINT8) "T_SET_TRANSACTION",
        (pANTLR3_UINT8) "T_UPDATE",
        (pANTLR3_UINT8) "T_EXECUTE_IMMEDIATE",
        (pANTLR3_UINT8) "T_CASE",
        (pANTLR3_UINT8) "T_OPEN",
        (pANTLR3_UINT8) "T_CLOSE",
        (pANTLR3_UINT8) "T_CONTINUE",
        (pANTLR3_UINT8) "T_PIPE",
        (pANTLR3_UINT8) "T_GOTO",
        (pANTLR3_UINT8) "T_EXIT",
        (pANTLR3_UINT8) "T_RETURN",
        (pANTLR3_UINT8) "T_DECLARE",
        (pANTLR3_UINT8) "T_RAISE",
        (pANTLR3_UINT8) "T_FETCH",
        (pANTLR3_UINT8) "T_LOOP",
        (pANTLR3_UINT8) "T_WHILE",
        (pANTLR3_UINT8) "T_NULL_STAT",
        (pANTLR3_UINT8) "T_FOR",
        (pANTLR3_UINT8) "T_FORALL",
        (pANTLR3_UINT8) "T_IF",
        (pANTLR3_UINT8) "T_ELSIF",
        (pANTLR3_UINT8) "T_ELSE",
        (pANTLR3_UINT8) "T_ENDIF",
        (pANTLR3_UINT8) "T_ASSIGN",
        (pANTLR3_UINT8) "T_CALL",
        (pANTLR3_UINT8) "T_DECLARATION",
        (pANTLR3_UINT8) "T_STATEMENT",
        (pANTLR3_UINT8) "DIVIDE",
        (pANTLR3_UINT8) "SEMI",
        (pANTLR3_UINT8) "LPAREN",
        (pANTLR3_UINT8) "COMMA",
        (pANTLR3_UINT8) "RPAREN",
        (pANTLR3_UINT8) "K_IN",
        (pANTLR3_UINT8) "K_OUT",
        (pANTLR3_UINT8) "ASSIGN",
        (pANTLR3_UINT8) "ID",
        (pANTLR3_UINT8) "INTEGER",
        (pANTLR3_UINT8) "DOT",
        (pANTLR3_UINT8) "K_USING",
        (pANTLR3_UINT8) "DOUBLEDOT",
        (pANTLR3_UINT8) "LLABEL",
        (pANTLR3_UINT8) "RLABEL",
        (pANTLR3_UINT8) "COLON",
        (pANTLR3_UINT8) "AT_SIGN",
        (pANTLR3_UINT8) "EQ",
        (pANTLR3_UINT8) "LTH",
        (pANTLR3_UINT8) "GTH",
        (pANTLR3_UINT8) "MINUS",
        (pANTLR3_UINT8) "PLUS",
        (pANTLR3_UINT8) "DOUBLEVERTBAR",
        (pANTLR3_UINT8) "ASTERISK",
        (pANTLR3_UINT8) "REAL_NUMBER",
        (pANTLR3_UINT8) "QUOTED_STRING",
        (pANTLR3_UINT8) "ARROW",
        (pANTLR3_UINT8) "QSTRING",
        (pANTLR3_UINT8) "QS_ANGLE",
        (pANTLR3_UINT8) "QS_BRACE",
        (pANTLR3_UINT8) "QS_BRACK",
        (pANTLR3_UINT8) "QS_PAREN",
        (pANTLR3_UINT8) "QS_OTHER",
        (pANTLR3_UINT8) "QUOTE",
        (pANTLR3_UINT8) "QS_OTHER_CH",
        (pANTLR3_UINT8) "BINDVAR",
        (pANTLR3_UINT8) "DOUBLEQUOTED_STRING",
        (pANTLR3_UINT8) "NUM",
        (pANTLR3_UINT8) "POINT",
        (pANTLR3_UINT8) "RBRACK",
        (pANTLR3_UINT8) "LBRACK",
        (pANTLR3_UINT8) "PERCENT",
        (pANTLR3_UINT8) "VERTBAR",
        (pANTLR3_UINT8) "NOT_EQ",
        (pANTLR3_UINT8) "LEQ",
        (pANTLR3_UINT8) "GEQ",
        (pANTLR3_UINT8) "NUMBER_VALUE",
        (pANTLR3_UINT8) "WS",
        (pANTLR3_UINT8) "SL_COMMENT",
        (pANTLR3_UINT8) "ML_COMMENT",
        (pANTLR3_UINT8) "'LOOP'",
        (pANTLR3_UINT8) "'FOUND'",
        (pANTLR3_UINT8) "'TIMESTAMP'",
        (pANTLR3_UINT8) "'ROWCOUNT'",
        (pANTLR3_UINT8) "'INTERVAL'",
        (pANTLR3_UINT8) "'EXECUTE'",
        (pANTLR3_UINT8) "'LANGUAGE'",
        (pANTLR3_UINT8) "'DELETE'",
        (pANTLR3_UINT8) "'RAISE'",
        (pANTLR3_UINT8) "'OPEN'",
        (pANTLR3_UINT8) "'CALL'",
        (pANTLR3_UINT8) "'ARRAY'",
        (pANTLR3_UINT8) "'DECLARE'",
        (pANTLR3_UINT8) "'BEGIN'",
        (pANTLR3_UINT8) "'CHAR'",
        (pANTLR3_UINT8) "'FROM'",
        (pANTLR3_UINT8) "'LONG'",
        (pANTLR3_UINT8) "'RAW'",
        (pANTLR3_UINT8) "'SET'",
        (pANTLR3_UINT8) "'TO'",
        (pANTLR3_UINT8) "'VARCHAR'",
        (pANTLR3_UINT8) "'VARCHAR2'",
        (pANTLR3_UINT8) "'WITH'",
        (pANTLR3_UINT8) "'AGGREGATE'",
        (pANTLR3_UINT8) "'AND'",
        (pANTLR3_UINT8) "'AS'",
        (pANTLR3_UINT8) "'AUTHID'",
        (pANTLR3_UINT8) "'BETWEEN'",
        (pANTLR3_UINT8) "'BODY'",
        (pANTLR3_UINT8) "'BULK'",
        (pANTLR3_UINT8) "'BY'",
        (pANTLR3_UINT8) "'CASE'",
        (pANTLR3_UINT8) "'CHARACTER'",
        (pANTLR3_UINT8) "'CREATE'",
        (pANTLR3_UINT8) "'COLLECT'",
        (pANTLR3_UINT8) "'COMMIT'",
        (pANTLR3_UINT8) "'CURRENT_USER'",
        (pANTLR3_UINT8) "'DATE'",
        (pANTLR3_UINT8) "'DEFAULT'",
        (pANTLR3_UINT8) "'DEFINER'",
        (pANTLR3_UINT8) "'ELSE'",
        (pANTLR3_UINT8) "'ELSIF'",
        (pANTLR3_UINT8) "'EXTERNAL'",
        (pANTLR3_UINT8) "'FALSE'",
        (pANTLR3_UINT8) "'FETCH'",
        (pANTLR3_UINT8) "'FOR'",
        (pANTLR3_UINT8) "'FORALL'",
        (pANTLR3_UINT8) "'GOTO'",
        (pANTLR3_UINT8) "'IF'",
        (pANTLR3_UINT8) "'INDEX'",
        (pANTLR3_UINT8) "'INSERT'",
        (pANTLR3_UINT8) "'INTO'",
        (pANTLR3_UINT8) "'IS'",
        (pANTLR3_UINT8) "'LIKE'",
        (pANTLR3_UINT8) "'LIMIT'",
        (pANTLR3_UINT8) "'LOCK'",
        (pANTLR3_UINT8) "'NCHAR'",
        (pANTLR3_UINT8) "'NOT'",
        (pANTLR3_UINT8) "'NULL'",
        (pANTLR3_UINT8) "'OR'",
        (pANTLR3_UINT8) "'PACKAGE'",
        (pANTLR3_UINT8) "'ROLLBACK'",
        (pANTLR3_UINT8) "'SAVEPOINT'",
        (pANTLR3_UINT8) "'SELECT'",
        (pANTLR3_UINT8) "'SQL'",
        (pANTLR3_UINT8) "'TABLE'",
        (pANTLR3_UINT8) "'TRANSACTION'",
        (pANTLR3_UINT8) "'TRIGGER'",
        (pANTLR3_UINT8) "'TRUE'",
        (pANTLR3_UINT8) "'THEN'",
        (pANTLR3_UINT8) "'TYPE'",
        (pANTLR3_UINT8) "'UPDATE'",
        (pANTLR3_UINT8) "'WHILE'",
        (pANTLR3_UINT8) "'INSERTING'",
        (pANTLR3_UINT8) "'UPDATING'",
        (pANTLR3_UINT8) "'DELETING'",
        (pANTLR3_UINT8) "'EXISTS'",
        (pANTLR3_UINT8) "'CAST'",
        (pANTLR3_UINT8) "'CLOB'",
        (pANTLR3_UINT8) "'CLOSE'",
        (pANTLR3_UINT8) "'CONSTANT'",
        (pANTLR3_UINT8) "'CONTINUE'",
        (pANTLR3_UINT8) "'CURSOR'",
        (pANTLR3_UINT8) "'DETERMINISTIC'",
        (pANTLR3_UINT8) "'END'",
        (pANTLR3_UINT8) "'ESCAPE'",
        (pANTLR3_UINT8) "'EXCEPTION'",
        (pANTLR3_UINT8) "'EXIT'",
        (pANTLR3_UINT8) "'FUNCTION'",
        (pANTLR3_UINT8) "'IMMEDIATE'",
        (pANTLR3_UINT8) "'MERGE'",
        (pANTLR3_UINT8) "'NATIONAL'",
        (pANTLR3_UINT8) "'NOCOPY'",
        (pANTLR3_UINT8) "'OTHERS'",
        (pANTLR3_UINT8) "'PARALLEL_ENABLE'",
        (pANTLR3_UINT8) "'PIPE'",
        (pANTLR3_UINT8) "'PIPELINED'",
        (pANTLR3_UINT8) "'PRAGMA'",
        (pANTLR3_UINT8) "'PROCEDURE'",
        (pANTLR3_UINT8) "'RECORD'",
        (pANTLR3_UINT8) "'REF'",
        (pANTLR3_UINT8) "'RESULT_CACHE'",
        (pANTLR3_UINT8) "'RETURN'",
        (pANTLR3_UINT8) "'RETURNING'",
        (pANTLR3_UINT8) "'ROW'",
        (pANTLR3_UINT8) "'ROWTYPE'",
        (pANTLR3_UINT8) "'SYSTIMESTAMP'",
        (pANTLR3_UINT8) "'SUBTYPE'",
        (pANTLR3_UINT8) "'VARRAY'",
        (pANTLR3_UINT8) "'VARYING'",
        (pANTLR3_UINT8) "'WHEN'",
        (pANTLR3_UINT8) "'!'",
        (pANTLR3_UINT8) "'^'",
        (pANTLR3_UINT8) "'~'",
        (pANTLR3_UINT8) "'NOTFOUND'",
        (pANTLR3_UINT8) "'ISOPEN'",
        (pANTLR3_UINT8) "'BULK_ROWCOUNT'",
        (pANTLR3_UINT8) "'CHARSET'"
       };

        

// Forward declare the locally static matching functions we have generated.
//
static OraclePLSQLParser_start_rule_return	start_rule    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_sqlplus_file_return	sqlplus_file    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_show_errors_return	show_errors    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_object_return	create_object    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_procedure_heading_return	procedure_heading    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_function_heading_return	function_heading    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_parameter_declarations_return	parameter_declarations    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_parameter_declaration_return	parameter_declaration    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_declare_section_return	declare_section    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_type_definition_sub_return	type_definition_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_type_definition_return	type_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_subtype_definition_sub_return	subtype_definition_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_subtype_definition_return	subtype_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_cursor_definition_sub_return	cursor_definition_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_cursor_definition_return	cursor_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_item_declaration_return	item_declaration    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_variable_declaration_return	variable_declaration    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_constant_declaration_return	constant_declaration    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_exception_declaration_return	exception_declaration    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_record_type_definition_return	record_type_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_record_field_declaration_return	record_field_declaration    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_collection_type_definition_return	collection_type_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_varray_type_definition_return	varray_type_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_nested_table_type_definition_return	nested_table_type_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_associative_index_type_return	associative_index_type    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_ref_cursor_type_definition_return	ref_cursor_type_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_datatype_name_return	datatype_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_datatype_return	datatype    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_function_declaration_or_definition_return	function_declaration_or_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_function_declaration_or_definition_sub_return	function_declaration_or_definition_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_procedure_declaration_or_definition_return	procedure_declaration_or_definition    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_procedure_declaration_or_definition_sub_return	procedure_declaration_or_definition_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_statement_return	statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_lvalue_return	lvalue    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_assign_or_call_statement_return	assign_or_call_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_call_first_return	call_first    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_call_next_return	call_next    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_delete_call_return	delete_call    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_basic_loop_statement_return	basic_loop_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_basic_loop_statement_sub_return	basic_loop_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_case_statement_return	case_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_case_statement_sub_return	case_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_close_statement_return	close_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_close_statement_sub_return	close_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_continue_statement_return	continue_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_continue_statement_sub_return	continue_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_execute_immediate_statement_return	execute_immediate_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_execute_immediate_statement_sub_return	execute_immediate_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_exit_statement_return	exit_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_exit_statement_sub_return	exit_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_fetch_statement_return	fetch_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_fetch_statement_sub_return	fetch_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_into_clause_return	into_clause    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_bulk_collect_into_clause_return	bulk_collect_into_clause    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_using_clause_return	using_clause    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_param_modifiers_return	param_modifiers    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_dynamic_returning_clause_return	dynamic_returning_clause    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_for_loop_statement_return	for_loop_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_for_loop_statement_sub_return	for_loop_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_forall_statement_return	forall_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_forall_statement_sub_return	forall_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_bounds_clause_return	bounds_clause    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_goto_statement_return	goto_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_if_statement_return	if_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_if_statement_if_return	if_statement_if    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_if_statement_elsif_return	if_statement_elsif    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_if_statement_else_return	if_statement_else    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_if_statement_end_return	if_statement_end    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_while_loop_statement_return	while_loop_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_while_loop_statement_sub_return	while_loop_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_pipe_row_statement_return	pipe_row_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_pipe_row_statement_sub_return	pipe_row_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_null_statement_return	null_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_open_statement_return	open_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_open_statement_sub_return	open_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_pragma_return	pragma    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_raise_statement_return	raise_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_raise_statement_sub_return	raise_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_return_statement_return	return_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_return_statement_sub_return	return_statement_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_declare_block_return	declare_block    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_body_return	body    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_exception_handler_return	exception_handler    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_exception_handler_sub_return	exception_handler_sub    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_plsql_block_return	plsql_block    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_label_return	label    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_qual_id_return	qual_id    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_schema_name_return	schema_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_object_attribute_name_return	object_attribute_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_cursor_name_return	cursor_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_variable_name_return	variable_name    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_variable_name_ex_return	variable_name_ex    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_parameter_name_return	parameter_name    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_column_name_return	column_name    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_procedure_name_return	procedure_name    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_exception_name_return	exception_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_package_name_return	package_name    (pOraclePLSQLParser ctx, int usageType);
static OraclePLSQLParser_identifier_return	identifier    (pOraclePLSQLParser ctx, int identifierClass, int usageType);
static OraclePLSQLParser_sql_statement_return	sql_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_commit_statement_return	commit_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_delete_statement_return	delete_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_insert_statement_return	insert_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_lock_table_statement_return	lock_table_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_rollback_statement_return	rollback_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_savepoint_statement_return	savepoint_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_select_statement_return	select_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_merge_statement_return	merge_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_set_transaction_statement_return	set_transaction_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_update_statement_return	update_statement    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_swallow_to_semi_return	swallow_to_semi    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_label_name_return	label_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_dblink_name_return	dblink_name    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_expression_return	expression    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_or_expr_return	or_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_and_expr_return	and_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_not_expr_return	not_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_compare_expr_return	compare_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_is_null_expr_return	is_null_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_like_expr_return	like_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_between_expr_return	between_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_in_expr_return	in_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_numeric_expression_return	numeric_expression    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_add_expr_return	add_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_mul_expr_return	mul_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_unary_sign_expr_return	unary_sign_expr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_atom_return	atom    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_variable_or_function_call_return	variable_or_function_call    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_timestamp_expression_return	timestamp_expression    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_cast_expression_return	cast_expression    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_extract_datetime_expression_return	extract_datetime_expression    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_attribute_return	attribute    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_call_args_return	call_args    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_boolean_atom_return	boolean_atom    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_numeric_atom_return	numeric_atom    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_numeric_literal_return	numeric_literal    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_boolean_literal_return	boolean_literal    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_string_literal_return	string_literal    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_collection_exists_return	collection_exists    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_conditional_predicate_return	conditional_predicate    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_parameter_return	parameter    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_package_return	create_package    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_package_body_return	create_package_body    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_procedure_return	create_procedure    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_function_return	create_function    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_trigger_return	create_trigger    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_create_type_return	create_type    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_invoker_rights_clause_return	invoker_rights_clause    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_call_spec_return	call_spec    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_char_return	r_char    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_from_return	r_from    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_long_return	r_long    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_raw_return	r_raw    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_set_return	r_set    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_to_return	r_to    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_varchar_return	r_varchar    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_varchar2_return	r_varchar2    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_r_with_return	r_with    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kAT_return	kAT    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kERRORS_return	kERRORS    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kEXCEPTIONS_return	kEXCEPTIONS    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kFOUND_return	kFOUND    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kINDICES_return	kINDICES    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kMOD_return	kMOD    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kNAME_return	kNAME    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kOF_return	kOF    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kREPLACE_return	kREPLACE    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kSAVE_return	kSAVE    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kSHOW_return	kSHOW    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kVALUES_return	kVALUES    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kBYTE_return	kBYTE    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kDAY_return	kDAY    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kMONTH_return	kMONTH    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kSECOND_return	kSECOND    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kYEAR_return	kYEAR    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kLOCAL_return	kLOCAL    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kZONE_return	kZONE    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_kTIME_return	kTIME    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_aggregate_return	k_aggregate    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_and_return	k_and    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_array_return	k_array    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_as_return	k_as    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_authid_return	k_authid    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_between_return	k_between    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_body_return	k_body    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_bulk_return	k_bulk    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_by_return	k_by    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_case_return	k_case    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_character_return	k_character    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_create_return	k_create    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_collect_return	k_collect    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_commit_return	k_commit    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_current_user_return	k_current_user    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_date_return	k_date    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_default_return	k_default    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_definer_return	k_definer    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_delete_return	k_delete    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_else_return	k_else    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_elsif_return	k_elsif    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_external_return	k_external    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_false_return	k_false    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_fetch_return	k_fetch    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_for_return	k_for    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_forall_return	k_forall    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_goto_return	k_goto    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_if_return	k_if    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_index_return	k_index    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_insert_return	k_insert    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_into_return	k_into    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_is_return	k_is    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_language_return	k_language    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_like_return	k_like    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_limit_return	k_limit    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_lock_return	k_lock    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_nchar_return	k_nchar    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_not_return	k_not    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_null_return	k_null    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_open_return	k_open    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_or_return	k_or    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_package_return	k_package    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_raise_return	k_raise    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_rollback_return	k_rollback    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_savepoint_return	k_savepoint    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_select_return	k_select    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_sql_return	k_sql    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_table_return	k_table    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_timestamp_return	k_timestamp    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_transaction_return	k_transaction    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_trigger_return	k_trigger    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_true_return	k_true    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_then_return	k_then    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_type_return	k_type    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_update_return	k_update    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_while_return	k_while    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_inserting_return	k_inserting    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_updating_return	k_updating    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_deleting_return	k_deleting    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_exists_return	k_exists    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_begin_return	k_begin    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_call_return	k_call    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_cast_return	k_cast    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_clob_return	k_clob    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_close_return	k_close    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_constant_return	k_constant    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_continue_return	k_continue    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_cursor_return	k_cursor    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_declare_return	k_declare    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_deterministic_return	k_deterministic    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_end_return	k_end    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_escape_return	k_escape    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_exception_return	k_exception    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_execute_return	k_execute    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_exit_return	k_exit    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_function_return	k_function    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_immediate_return	k_immediate    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_interval_return	k_interval    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_loop_return	k_loop    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_merge_return	k_merge    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_national_return	k_national    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_nocopy_return	k_nocopy    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_others_return	k_others    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_parallel_enable_return	k_parallel_enable    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_pipe_return	k_pipe    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_pipelined_return	k_pipelined    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_pragma_return	k_pragma    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_procedure_return	k_procedure    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_record_return	k_record    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_ref_return	k_ref    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_result_cache_return	k_result_cache    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_return_return	k_return    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_returning_return	k_returning    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_row_return	k_row    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_rowtype_return	k_rowtype    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_systimestamp_return	k_systimestamp    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_subtype_return	k_subtype    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_varray_return	k_varray    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_varying_return	k_varying    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_k_when_return	k_when    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_quoted_string_return	quoted_string    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_bindvar_return	bindvar    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_doublevertbar_return	doublevertbar    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_not_equal_return	not_equal    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_leq_return	leq    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_geq_return	geq    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_type_attr_return	type_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_rowtype_attr_return	rowtype_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_notfound_attr_return	notfound_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_found_attr_return	found_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_isopen_attr_return	isopen_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_rowcount_attr_return	rowcount_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_bulk_rowcount_attr_return	bulk_rowcount_attr    (pOraclePLSQLParser ctx);
static OraclePLSQLParser_charset_attr_return	charset_attr    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred9_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred13_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred17_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred21_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred25_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred26_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred75_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred77_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred118_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred121_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred126_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred131_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred157_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred158_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred159_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred160_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred161_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred162_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred163_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred164_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred165_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred166_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred168_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred169_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred170_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred171_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred172_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred173_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred174_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred175_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred186_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred187_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred188_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred189_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred194_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred198_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred200_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred205_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred208_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred225_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred226_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred228_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred238_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred240_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred249_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred253_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred270_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred319_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred320_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred325_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred326_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred351_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred354_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred355_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred365_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred369_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred370_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred441_OraclePLSQL    (pOraclePLSQLParser ctx);
static ANTLR3_BOOLEAN	synpred446_OraclePLSQL    (pOraclePLSQLParser ctx);
static void	OraclePLSQLParserFree(pOraclePLSQLParser ctx);
static void     OraclePLSQLParserReset (pOraclePLSQLParser ctx);

/* For use in tree output where we are accumulating rule labels via label += ruleRef
 * we need a function that knows how to free a return scope when the list is destroyed. 
 * We cannot just use ANTLR3_FREE because in debug tracking mode, this is a macro.
 */
static	void ANTLR3_CDECL freeScope(void * scope)
{
    ANTLR3_FREE(scope);
}

/** \brief Name of the grammar file that generated this code
 */
static const char fileName[] = "OraclePLSQL.g";

/** \brief Return the name of the grammar file that generated this code.
 */
static const char * getGrammarFileName()
{
	return fileName;
}
/** \brief Create a new OraclePLSQLParser parser and return a context for it.
 *
 * \param[in] instream Pointer to an input stream interface.
 *
 * \return Pointer to new parser context upon success.
 */
ANTLR3_API pOraclePLSQLParser
OraclePLSQLParserNew   (pANTLR3_COMMON_TOKEN_STREAM instream)
{
	// See if we can create a new parser with the standard constructor
	//
	return OraclePLSQLParserNewSSD(instream, NULL);
}

/** \brief Create a new OraclePLSQLParser parser and return a context for it.
 *
 * \param[in] instream Pointer to an input stream interface.
 *
 * \return Pointer to new parser context upon success.
 */
ANTLR3_API pOraclePLSQLParser
OraclePLSQLParserNewSSD   (pANTLR3_COMMON_TOKEN_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)
{
    pOraclePLSQLParser ctx;	    /* Context structure we will build and return   */
    
    ctx	= (pOraclePLSQLParser) ANTLR3_CALLOC(1, sizeof(OraclePLSQLParser));
    
    if	(ctx == NULL)
    {
		// Failed to allocate memory for parser context
		//
        return  NULL;
    }
    
    /* -------------------------------------------------------------------
     * Memory for basic structure is allocated, now to fill in
     * the base ANTLR3 structures. We initialize the function pointers
     * for the standard ANTLR3 parser function set, but upon return
     * from here, the programmer may set the pointers to provide custom
     * implementations of each function. 
     *
     * We don't use the macros defined in OraclePLSQLParser.h here, in order that you can get a sense
     * of what goes where.
     */

    /* Create a base parser/recognizer, using the supplied token stream
     */
    ctx->pParser	    = antlr3ParserNewStream(ANTLR3_SIZE_HINT, instream->tstream, state);
    /* Install the implementation of our OraclePLSQLParser interface
     */
    ctx->start_rule	= start_rule;
    ctx->sqlplus_file	= sqlplus_file;
    ctx->show_errors	= show_errors;
    ctx->create_object	= create_object;
    ctx->procedure_heading	= procedure_heading;
    ctx->function_heading	= function_heading;
    ctx->parameter_declarations	= parameter_declarations;
    ctx->parameter_declaration	= parameter_declaration;
    ctx->declare_section	= declare_section;
    ctx->type_definition_sub	= type_definition_sub;
    ctx->type_definition	= type_definition;
    ctx->subtype_definition_sub	= subtype_definition_sub;
    ctx->subtype_definition	= subtype_definition;
    ctx->cursor_definition_sub	= cursor_definition_sub;
    ctx->cursor_definition	= cursor_definition;
    ctx->item_declaration	= item_declaration;
    ctx->variable_declaration	= variable_declaration;
    ctx->constant_declaration	= constant_declaration;
    ctx->exception_declaration	= exception_declaration;
    ctx->record_type_definition	= record_type_definition;
    ctx->record_field_declaration	= record_field_declaration;
    ctx->collection_type_definition	= collection_type_definition;
    ctx->varray_type_definition	= varray_type_definition;
    ctx->nested_table_type_definition	= nested_table_type_definition;
    ctx->associative_index_type	= associative_index_type;
    ctx->ref_cursor_type_definition	= ref_cursor_type_definition;
    ctx->datatype_name	= datatype_name;
    ctx->datatype	= datatype;
    ctx->function_declaration_or_definition	= function_declaration_or_definition;
    ctx->function_declaration_or_definition_sub	= function_declaration_or_definition_sub;
    ctx->procedure_declaration_or_definition	= procedure_declaration_or_definition;
    ctx->procedure_declaration_or_definition_sub	= procedure_declaration_or_definition_sub;
    ctx->statement	= statement;
    ctx->lvalue	= lvalue;
    ctx->assign_or_call_statement	= assign_or_call_statement;
    ctx->call_first	= call_first;
    ctx->call_next	= call_next;
    ctx->delete_call	= delete_call;
    ctx->basic_loop_statement	= basic_loop_statement;
    ctx->basic_loop_statement_sub	= basic_loop_statement_sub;
    ctx->case_statement	= case_statement;
    ctx->case_statement_sub	= case_statement_sub;
    ctx->close_statement	= close_statement;
    ctx->close_statement_sub	= close_statement_sub;
    ctx->continue_statement	= continue_statement;
    ctx->continue_statement_sub	= continue_statement_sub;
    ctx->execute_immediate_statement	= execute_immediate_statement;
    ctx->execute_immediate_statement_sub	= execute_immediate_statement_sub;
    ctx->exit_statement	= exit_statement;
    ctx->exit_statement_sub	= exit_statement_sub;
    ctx->fetch_statement	= fetch_statement;
    ctx->fetch_statement_sub	= fetch_statement_sub;
    ctx->into_clause	= into_clause;
    ctx->bulk_collect_into_clause	= bulk_collect_into_clause;
    ctx->using_clause	= using_clause;
    ctx->param_modifiers	= param_modifiers;
    ctx->dynamic_returning_clause	= dynamic_returning_clause;
    ctx->for_loop_statement	= for_loop_statement;
    ctx->for_loop_statement_sub	= for_loop_statement_sub;
    ctx->forall_statement	= forall_statement;
    ctx->forall_statement_sub	= forall_statement_sub;
    ctx->bounds_clause	= bounds_clause;
    ctx->goto_statement	= goto_statement;
    ctx->if_statement	= if_statement;
    ctx->if_statement_if	= if_statement_if;
    ctx->if_statement_elsif	= if_statement_elsif;
    ctx->if_statement_else	= if_statement_else;
    ctx->if_statement_end	= if_statement_end;
    ctx->while_loop_statement	= while_loop_statement;
    ctx->while_loop_statement_sub	= while_loop_statement_sub;
    ctx->pipe_row_statement	= pipe_row_statement;
    ctx->pipe_row_statement_sub	= pipe_row_statement_sub;
    ctx->null_statement	= null_statement;
    ctx->open_statement	= open_statement;
    ctx->open_statement_sub	= open_statement_sub;
    ctx->pragma	= pragma;
    ctx->raise_statement	= raise_statement;
    ctx->raise_statement_sub	= raise_statement_sub;
    ctx->return_statement	= return_statement;
    ctx->return_statement_sub	= return_statement_sub;
    ctx->declare_block	= declare_block;
    ctx->body	= body;
    ctx->exception_handler	= exception_handler;
    ctx->exception_handler_sub	= exception_handler_sub;
    ctx->plsql_block	= plsql_block;
    ctx->label	= label;
    ctx->qual_id	= qual_id;
    ctx->schema_name	= schema_name;
    ctx->object_attribute_name	= object_attribute_name;
    ctx->cursor_name	= cursor_name;
    ctx->variable_name	= variable_name;
    ctx->variable_name_ex	= variable_name_ex;
    ctx->parameter_name	= parameter_name;
    ctx->column_name	= column_name;
    ctx->procedure_name	= procedure_name;
    ctx->exception_name	= exception_name;
    ctx->package_name	= package_name;
    ctx->identifier	= identifier;
    ctx->sql_statement	= sql_statement;
    ctx->commit_statement	= commit_statement;
    ctx->delete_statement	= delete_statement;
    ctx->insert_statement	= insert_statement;
    ctx->lock_table_statement	= lock_table_statement;
    ctx->rollback_statement	= rollback_statement;
    ctx->savepoint_statement	= savepoint_statement;
    ctx->select_statement	= select_statement;
    ctx->merge_statement	= merge_statement;
    ctx->set_transaction_statement	= set_transaction_statement;
    ctx->update_statement	= update_statement;
    ctx->swallow_to_semi	= swallow_to_semi;
    ctx->label_name	= label_name;
    ctx->dblink_name	= dblink_name;
    ctx->expression	= expression;
    ctx->or_expr	= or_expr;
    ctx->and_expr	= and_expr;
    ctx->not_expr	= not_expr;
    ctx->compare_expr	= compare_expr;
    ctx->is_null_expr	= is_null_expr;
    ctx->like_expr	= like_expr;
    ctx->between_expr	= between_expr;
    ctx->in_expr	= in_expr;
    ctx->numeric_expression	= numeric_expression;
    ctx->add_expr	= add_expr;
    ctx->mul_expr	= mul_expr;
    ctx->unary_sign_expr	= unary_sign_expr;
    ctx->atom	= atom;
    ctx->variable_or_function_call	= variable_or_function_call;
    ctx->timestamp_expression	= timestamp_expression;
    ctx->cast_expression	= cast_expression;
    ctx->extract_datetime_expression	= extract_datetime_expression;
    ctx->attribute	= attribute;
    ctx->call_args	= call_args;
    ctx->boolean_atom	= boolean_atom;
    ctx->numeric_atom	= numeric_atom;
    ctx->numeric_literal	= numeric_literal;
    ctx->boolean_literal	= boolean_literal;
    ctx->string_literal	= string_literal;
    ctx->collection_exists	= collection_exists;
    ctx->conditional_predicate	= conditional_predicate;
    ctx->parameter	= parameter;
    ctx->create_package	= create_package;
    ctx->create_package_body	= create_package_body;
    ctx->create_procedure	= create_procedure;
    ctx->create_function	= create_function;
    ctx->create_trigger	= create_trigger;
    ctx->create_type	= create_type;
    ctx->invoker_rights_clause	= invoker_rights_clause;
    ctx->call_spec	= call_spec;
    ctx->r_char	= r_char;
    ctx->r_from	= r_from;
    ctx->r_long	= r_long;
    ctx->r_raw	= r_raw;
    ctx->r_set	= r_set;
    ctx->r_to	= r_to;
    ctx->r_varchar	= r_varchar;
    ctx->r_varchar2	= r_varchar2;
    ctx->r_with	= r_with;
    ctx->kAT	= kAT;
    ctx->kERRORS	= kERRORS;
    ctx->kEXCEPTIONS	= kEXCEPTIONS;
    ctx->kFOUND	= kFOUND;
    ctx->kINDICES	= kINDICES;
    ctx->kMOD	= kMOD;
    ctx->kNAME	= kNAME;
    ctx->kOF	= kOF;
    ctx->kREPLACE	= kREPLACE;
    ctx->kSAVE	= kSAVE;
    ctx->kSHOW	= kSHOW;
    ctx->kVALUES	= kVALUES;
    ctx->kBYTE	= kBYTE;
    ctx->kDAY	= kDAY;
    ctx->kMONTH	= kMONTH;
    ctx->kSECOND	= kSECOND;
    ctx->kYEAR	= kYEAR;
    ctx->kLOCAL	= kLOCAL;
    ctx->kZONE	= kZONE;
    ctx->kTIME	= kTIME;
    ctx->k_aggregate	= k_aggregate;
    ctx->k_and	= k_and;
    ctx->k_array	= k_array;
    ctx->k_as	= k_as;
    ctx->k_authid	= k_authid;
    ctx->k_between	= k_between;
    ctx->k_body	= k_body;
    ctx->k_bulk	= k_bulk;
    ctx->k_by	= k_by;
    ctx->k_case	= k_case;
    ctx->k_character	= k_character;
    ctx->k_create	= k_create;
    ctx->k_collect	= k_collect;
    ctx->k_commit	= k_commit;
    ctx->k_current_user	= k_current_user;
    ctx->k_date	= k_date;
    ctx->k_default	= k_default;
    ctx->k_definer	= k_definer;
    ctx->k_delete	= k_delete;
    ctx->k_else	= k_else;
    ctx->k_elsif	= k_elsif;
    ctx->k_external	= k_external;
    ctx->k_false	= k_false;
    ctx->k_fetch	= k_fetch;
    ctx->k_for	= k_for;
    ctx->k_forall	= k_forall;
    ctx->k_goto	= k_goto;
    ctx->k_if	= k_if;
    ctx->k_index	= k_index;
    ctx->k_insert	= k_insert;
    ctx->k_into	= k_into;
    ctx->k_is	= k_is;
    ctx->k_language	= k_language;
    ctx->k_like	= k_like;
    ctx->k_limit	= k_limit;
    ctx->k_lock	= k_lock;
    ctx->k_nchar	= k_nchar;
    ctx->k_not	= k_not;
    ctx->k_null	= k_null;
    ctx->k_open	= k_open;
    ctx->k_or	= k_or;
    ctx->k_package	= k_package;
    ctx->k_raise	= k_raise;
    ctx->k_rollback	= k_rollback;
    ctx->k_savepoint	= k_savepoint;
    ctx->k_select	= k_select;
    ctx->k_sql	= k_sql;
    ctx->k_table	= k_table;
    ctx->k_timestamp	= k_timestamp;
    ctx->k_transaction	= k_transaction;
    ctx->k_trigger	= k_trigger;
    ctx->k_true	= k_true;
    ctx->k_then	= k_then;
    ctx->k_type	= k_type;
    ctx->k_update	= k_update;
    ctx->k_while	= k_while;
    ctx->k_inserting	= k_inserting;
    ctx->k_updating	= k_updating;
    ctx->k_deleting	= k_deleting;
    ctx->k_exists	= k_exists;
    ctx->k_begin	= k_begin;
    ctx->k_call	= k_call;
    ctx->k_cast	= k_cast;
    ctx->k_clob	= k_clob;
    ctx->k_close	= k_close;
    ctx->k_constant	= k_constant;
    ctx->k_continue	= k_continue;
    ctx->k_cursor	= k_cursor;
    ctx->k_declare	= k_declare;
    ctx->k_deterministic	= k_deterministic;
    ctx->k_end	= k_end;
    ctx->k_escape	= k_escape;
    ctx->k_exception	= k_exception;
    ctx->k_execute	= k_execute;
    ctx->k_exit	= k_exit;
    ctx->k_function	= k_function;
    ctx->k_immediate	= k_immediate;
    ctx->k_interval	= k_interval;
    ctx->k_loop	= k_loop;
    ctx->k_merge	= k_merge;
    ctx->k_national	= k_national;
    ctx->k_nocopy	= k_nocopy;
    ctx->k_others	= k_others;
    ctx->k_parallel_enable	= k_parallel_enable;
    ctx->k_pipe	= k_pipe;
    ctx->k_pipelined	= k_pipelined;
    ctx->k_pragma	= k_pragma;
    ctx->k_procedure	= k_procedure;
    ctx->k_record	= k_record;
    ctx->k_ref	= k_ref;
    ctx->k_result_cache	= k_result_cache;
    ctx->k_return	= k_return;
    ctx->k_returning	= k_returning;
    ctx->k_row	= k_row;
    ctx->k_rowtype	= k_rowtype;
    ctx->k_systimestamp	= k_systimestamp;
    ctx->k_subtype	= k_subtype;
    ctx->k_varray	= k_varray;
    ctx->k_varying	= k_varying;
    ctx->k_when	= k_when;
    ctx->quoted_string	= quoted_string;
    ctx->bindvar	= bindvar;
    ctx->doublevertbar	= doublevertbar;
    ctx->not_equal	= not_equal;
    ctx->leq	= leq;
    ctx->geq	= geq;
    ctx->type_attr	= type_attr;
    ctx->rowtype_attr	= rowtype_attr;
    ctx->notfound_attr	= notfound_attr;
    ctx->found_attr	= found_attr;
    ctx->isopen_attr	= isopen_attr;
    ctx->rowcount_attr	= rowcount_attr;
    ctx->bulk_rowcount_attr	= bulk_rowcount_attr;
    ctx->charset_attr	= charset_attr;
    ctx->synpred9_OraclePLSQL	= synpred9_OraclePLSQL;
    ctx->synpred13_OraclePLSQL	= synpred13_OraclePLSQL;
    ctx->synpred17_OraclePLSQL	= synpred17_OraclePLSQL;
    ctx->synpred21_OraclePLSQL	= synpred21_OraclePLSQL;
    ctx->synpred25_OraclePLSQL	= synpred25_OraclePLSQL;
    ctx->synpred26_OraclePLSQL	= synpred26_OraclePLSQL;
    ctx->synpred75_OraclePLSQL	= synpred75_OraclePLSQL;
    ctx->synpred77_OraclePLSQL	= synpred77_OraclePLSQL;
    ctx->synpred118_OraclePLSQL	= synpred118_OraclePLSQL;
    ctx->synpred121_OraclePLSQL	= synpred121_OraclePLSQL;
    ctx->synpred126_OraclePLSQL	= synpred126_OraclePLSQL;
    ctx->synpred131_OraclePLSQL	= synpred131_OraclePLSQL;
    ctx->synpred157_OraclePLSQL	= synpred157_OraclePLSQL;
    ctx->synpred158_OraclePLSQL	= synpred158_OraclePLSQL;
    ctx->synpred159_OraclePLSQL	= synpred159_OraclePLSQL;
    ctx->synpred160_OraclePLSQL	= synpred160_OraclePLSQL;
    ctx->synpred161_OraclePLSQL	= synpred161_OraclePLSQL;
    ctx->synpred162_OraclePLSQL	= synpred162_OraclePLSQL;
    ctx->synpred163_OraclePLSQL	= synpred163_OraclePLSQL;
    ctx->synpred164_OraclePLSQL	= synpred164_OraclePLSQL;
    ctx->synpred165_OraclePLSQL	= synpred165_OraclePLSQL;
    ctx->synpred166_OraclePLSQL	= synpred166_OraclePLSQL;
    ctx->synpred168_OraclePLSQL	= synpred168_OraclePLSQL;
    ctx->synpred169_OraclePLSQL	= synpred169_OraclePLSQL;
    ctx->synpred170_OraclePLSQL	= synpred170_OraclePLSQL;
    ctx->synpred171_OraclePLSQL	= synpred171_OraclePLSQL;
    ctx->synpred172_OraclePLSQL	= synpred172_OraclePLSQL;
    ctx->synpred173_OraclePLSQL	= synpred173_OraclePLSQL;
    ctx->synpred174_OraclePLSQL	= synpred174_OraclePLSQL;
    ctx->synpred175_OraclePLSQL	= synpred175_OraclePLSQL;
    ctx->synpred186_OraclePLSQL	= synpred186_OraclePLSQL;
    ctx->synpred187_OraclePLSQL	= synpred187_OraclePLSQL;
    ctx->synpred188_OraclePLSQL	= synpred188_OraclePLSQL;
    ctx->synpred189_OraclePLSQL	= synpred189_OraclePLSQL;
    ctx->synpred194_OraclePLSQL	= synpred194_OraclePLSQL;
    ctx->synpred198_OraclePLSQL	= synpred198_OraclePLSQL;
    ctx->synpred200_OraclePLSQL	= synpred200_OraclePLSQL;
    ctx->synpred205_OraclePLSQL	= synpred205_OraclePLSQL;
    ctx->synpred208_OraclePLSQL	= synpred208_OraclePLSQL;
    ctx->synpred225_OraclePLSQL	= synpred225_OraclePLSQL;
    ctx->synpred226_OraclePLSQL	= synpred226_OraclePLSQL;
    ctx->synpred228_OraclePLSQL	= synpred228_OraclePLSQL;
    ctx->synpred238_OraclePLSQL	= synpred238_OraclePLSQL;
    ctx->synpred240_OraclePLSQL	= synpred240_OraclePLSQL;
    ctx->synpred249_OraclePLSQL	= synpred249_OraclePLSQL;
    ctx->synpred253_OraclePLSQL	= synpred253_OraclePLSQL;
    ctx->synpred270_OraclePLSQL	= synpred270_OraclePLSQL;
    ctx->synpred319_OraclePLSQL	= synpred319_OraclePLSQL;
    ctx->synpred320_OraclePLSQL	= synpred320_OraclePLSQL;
    ctx->synpred325_OraclePLSQL	= synpred325_OraclePLSQL;
    ctx->synpred326_OraclePLSQL	= synpred326_OraclePLSQL;
    ctx->synpred351_OraclePLSQL	= synpred351_OraclePLSQL;
    ctx->synpred354_OraclePLSQL	= synpred354_OraclePLSQL;
    ctx->synpred355_OraclePLSQL	= synpred355_OraclePLSQL;
    ctx->synpred365_OraclePLSQL	= synpred365_OraclePLSQL;
    ctx->synpred369_OraclePLSQL	= synpred369_OraclePLSQL;
    ctx->synpred370_OraclePLSQL	= synpred370_OraclePLSQL;
    ctx->synpred441_OraclePLSQL	= synpred441_OraclePLSQL;
    ctx->synpred446_OraclePLSQL	= synpred446_OraclePLSQL;
    ctx->free			= OraclePLSQLParserFree;
    ctx->reset			= OraclePLSQLParserReset;
    ctx->getGrammarFileName	= getGrammarFileName;
    
    /* Install the scope pushing methods.
     */
    ADAPTOR	= ANTLR3_TREE_ADAPTORNew(instream->tstream->tokenSource->strFactory);
    ctx->vectors	= antlr3VectorFactoryNew(0);
    

                //RECOGNIZER->displayRecognitionError = myDisplayRecognitionParserError;
                //RECOGNIZER->recoverFromMismatchedToken = myRecoverFromMismatchedToken;
                RECOGNIZER->getMissingSymbol = myGetMissingSymbol;

    /* Create a LIST for recording rule memos.
     */
     RULEMEMO    = antlr3IntTrieNew(15);	/* 16 bit depth is enough for 32768 rules! */
	
    /* Install the token table
     */
    PSRSTATE->tokenNames   = OraclePLSQLParserTokenNames;
    
    
    /* Return the newly built parser to the caller
     */
    return  ctx;
}

static void
OraclePLSQLParserReset (pOraclePLSQLParser ctx)
{
    RECOGNIZER->reset(RECOGNIZER);
}

/** Free the parser resources
 */
 static void
 OraclePLSQLParserFree(pOraclePLSQLParser ctx)
 {
    /* Free any scope memory
     */
    
    ctx->vectors->close(ctx->vectors);
    /* We created the adaptor so we must free it
     */
    ADAPTOR->free(ADAPTOR);
	if	(RULEMEMO != NULL)
	{
		RULEMEMO->free(RULEMEMO);
		RULEMEMO = NULL;
	}	// Free this parser
	//
    ctx->pParser->free(ctx->pParser);
    
    ANTLR3_FREE(ctx);

    /* Everything is released, so we can return
     */
    return;
 }
 
/** Return token names used by this parser
 *
 * The returned pointer is used as an index into the token names table (using the token 
 * number as the index).
 * 
 * \return Pointer to first char * in the table.
 */
static pANTLR3_UINT8    *getTokenNames() 
{
        return OraclePLSQLParserTokenNames; 
}

    
/* Declare the bitsets
 */

/** Bitset defining follow set for error recovery in rule state: FOLLOW_sqlplus_file_in_start_rule1060  */
static	ANTLR3_BITWORD FOLLOW_sqlplus_file_in_start_rule1060_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_sqlplus_file_in_start_rule1060	= { FOLLOW_sqlplus_file_in_start_rule1060_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_plsql_block_in_start_rule1064  */
static	ANTLR3_BITWORD FOLLOW_plsql_block_in_start_rule1064_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_plsql_block_in_start_rule1064	= { FOLLOW_plsql_block_in_start_rule1064_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_object_in_sqlplus_file1083  */
static	ANTLR3_BITWORD FOLLOW_create_object_in_sqlplus_file1083_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000001000), ANTLR3_UINT64_LIT(0x0400000080000000), ANTLR3_UINT64_LIT(0x0000000100400012) };
static  ANTLR3_BITSET_LIST FOLLOW_create_object_in_sqlplus_file1083	= { FOLLOW_create_object_in_sqlplus_file1083_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DIVIDE_in_sqlplus_file1087  */
static	ANTLR3_BITWORD FOLLOW_DIVIDE_in_sqlplus_file1087_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DIVIDE_in_sqlplus_file1087	= { FOLLOW_DIVIDE_in_sqlplus_file1087_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_show_errors_in_sqlplus_file1089  */
static	ANTLR3_BITWORD FOLLOW_show_errors_in_sqlplus_file1089_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000001000), ANTLR3_UINT64_LIT(0x0400000080000000), ANTLR3_UINT64_LIT(0x0000000100400012) };
static  ANTLR3_BITSET_LIST FOLLOW_show_errors_in_sqlplus_file1089	= { FOLLOW_show_errors_in_sqlplus_file1089_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DIVIDE_in_sqlplus_file1094  */
static	ANTLR3_BITWORD FOLLOW_DIVIDE_in_sqlplus_file1094_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000001000), ANTLR3_UINT64_LIT(0x0400000080000000), ANTLR3_UINT64_LIT(0x0000000100400012) };
static  ANTLR3_BITSET_LIST FOLLOW_DIVIDE_in_sqlplus_file1094	= { FOLLOW_DIVIDE_in_sqlplus_file1094_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kSHOW_in_show_errors1120  */
static	ANTLR3_BITWORD FOLLOW_kSHOW_in_show_errors1120_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kSHOW_in_show_errors1120	= { FOLLOW_kSHOW_in_show_errors1120_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kERRORS_in_show_errors1122  */
static	ANTLR3_BITWORD FOLLOW_kERRORS_in_show_errors1122_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_kERRORS_in_show_errors1122	= { FOLLOW_kERRORS_in_show_errors1122_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_show_errors1124  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_show_errors1124_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_show_errors1124	= { FOLLOW_SEMI_in_show_errors1124_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_trigger_in_create_object1157  */
static	ANTLR3_BITWORD FOLLOW_create_trigger_in_create_object1157_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_trigger_in_create_object1157	= { FOLLOW_create_trigger_in_create_object1157_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_function_in_create_object1180  */
static	ANTLR3_BITWORD FOLLOW_create_function_in_create_object1180_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_function_in_create_object1180	= { FOLLOW_create_function_in_create_object1180_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_procedure_in_create_object1203  */
static	ANTLR3_BITWORD FOLLOW_create_procedure_in_create_object1203_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_procedure_in_create_object1203	= { FOLLOW_create_procedure_in_create_object1203_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_type_in_create_object1226  */
static	ANTLR3_BITWORD FOLLOW_create_type_in_create_object1226_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_type_in_create_object1226	= { FOLLOW_create_type_in_create_object1226_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_package_body_in_create_object1251  */
static	ANTLR3_BITWORD FOLLOW_create_package_body_in_create_object1251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_package_body_in_create_object1251	= { FOLLOW_create_package_body_in_create_object1251_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_package_in_create_object1259  */
static	ANTLR3_BITWORD FOLLOW_create_package_in_create_object1259_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0400000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_create_package_in_create_object1259	= { FOLLOW_create_package_in_create_object1259_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_package_body_in_create_object1261  */
static	ANTLR3_BITWORD FOLLOW_create_package_body_in_create_object1261_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_package_body_in_create_object1261	= { FOLLOW_create_package_body_in_create_object1261_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_procedure_in_procedure_heading1288  */
static	ANTLR3_BITWORD FOLLOW_k_procedure_in_procedure_heading1288_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_procedure_in_procedure_heading1288	= { FOLLOW_k_procedure_in_procedure_heading1288_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_procedure_name_in_procedure_heading1290  */
static	ANTLR3_BITWORD FOLLOW_procedure_name_in_procedure_heading1290_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_procedure_name_in_procedure_heading1290	= { FOLLOW_procedure_name_in_procedure_heading1290_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declarations_in_procedure_heading1293  */
static	ANTLR3_BITWORD FOLLOW_parameter_declarations_in_procedure_heading1293_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declarations_in_procedure_heading1293	= { FOLLOW_parameter_declarations_in_procedure_heading1293_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_function_in_function_heading1315  */
static	ANTLR3_BITWORD FOLLOW_k_function_in_function_heading1315_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_function_in_function_heading1315	= { FOLLOW_k_function_in_function_heading1315_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_function_heading1317  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_function_heading1317_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_function_heading1317	= { FOLLOW_identifier_in_function_heading1317_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declarations_in_function_heading1320  */
static	ANTLR3_BITWORD FOLLOW_parameter_declarations_in_function_heading1320_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declarations_in_function_heading1320	= { FOLLOW_parameter_declarations_in_function_heading1320_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_function_heading1323  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_function_heading1323_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_function_heading1323	= { FOLLOW_k_return_in_function_heading1323_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_function_heading1325  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_function_heading1325_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_function_heading1325	= { FOLLOW_datatype_in_function_heading1325_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_parameter_declarations1350  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_parameter_declarations1350_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_parameter_declarations1350	= { FOLLOW_LPAREN_in_parameter_declarations1350_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declaration_in_parameter_declarations1353  */
static	ANTLR3_BITWORD FOLLOW_parameter_declaration_in_parameter_declarations1353_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declaration_in_parameter_declarations1353	= { FOLLOW_parameter_declaration_in_parameter_declarations1353_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_parameter_declarations1357  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_parameter_declarations1357_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_parameter_declarations1357	= { FOLLOW_COMMA_in_parameter_declarations1357_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declaration_in_parameter_declarations1360  */
static	ANTLR3_BITWORD FOLLOW_parameter_declaration_in_parameter_declarations1360_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declaration_in_parameter_declarations1360	= { FOLLOW_parameter_declaration_in_parameter_declarations1360_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_parameter_declarations1365  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_parameter_declarations1365_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_parameter_declarations1365	= { FOLLOW_RPAREN_in_parameter_declarations1365_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_name_in_parameter_declaration1388  */
static	ANTLR3_BITWORD FOLLOW_parameter_name_in_parameter_declaration1388_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000160000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_name_in_parameter_declaration1388	= { FOLLOW_parameter_name_in_parameter_declaration1388_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_IN_in_parameter_declaration1393  */
static	ANTLR3_BITWORD FOLLOW_K_IN_in_parameter_declaration1393_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_K_IN_in_parameter_declaration1393	= { FOLLOW_K_IN_in_parameter_declaration1393_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_OUT_in_parameter_declaration1401  */
static	ANTLR3_BITWORD FOLLOW_K_OUT_in_parameter_declaration1401_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000406001000) };
static  ANTLR3_BITSET_LIST FOLLOW_K_OUT_in_parameter_declaration1401	= { FOLLOW_K_OUT_in_parameter_declaration1401_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_IN_in_parameter_declaration1405  */
static	ANTLR3_BITWORD FOLLOW_K_IN_in_parameter_declaration1405_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000040000) };
static  ANTLR3_BITSET_LIST FOLLOW_K_IN_in_parameter_declaration1405	= { FOLLOW_K_IN_in_parameter_declaration1405_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_OUT_in_parameter_declaration1407  */
static	ANTLR3_BITWORD FOLLOW_K_OUT_in_parameter_declaration1407_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000406001000) };
static  ANTLR3_BITSET_LIST FOLLOW_K_OUT_in_parameter_declaration1407	= { FOLLOW_K_OUT_in_parameter_declaration1407_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_nocopy_in_parameter_declaration1411  */
static	ANTLR3_BITWORD FOLLOW_k_nocopy_in_parameter_declaration1411_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_nocopy_in_parameter_declaration1411	= { FOLLOW_k_nocopy_in_parameter_declaration1411_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_parameter_declaration1419  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_parameter_declaration1419_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_parameter_declaration1419	= { FOLLOW_datatype_in_parameter_declaration1419_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_in_parameter_declaration1433  */
static	ANTLR3_BITWORD FOLLOW_ASSIGN_in_parameter_declaration1433_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_in_parameter_declaration1433	= { FOLLOW_ASSIGN_in_parameter_declaration1433_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_default_in_parameter_declaration1437  */
static	ANTLR3_BITWORD FOLLOW_k_default_in_parameter_declaration1437_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_default_in_parameter_declaration1437	= { FOLLOW_k_default_in_parameter_declaration1437_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_parameter_declaration1441  */
static	ANTLR3_BITWORD FOLLOW_expression_in_parameter_declaration1441_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_parameter_declaration1441	= { FOLLOW_expression_in_parameter_declaration1441_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_definition_in_declare_section1463  */
static	ANTLR3_BITWORD FOLLOW_type_definition_in_declare_section1463_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_type_definition_in_declare_section1463	= { FOLLOW_type_definition_in_declare_section1463_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_declare_section1465  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_declare_section1465_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_declare_section1465	= { FOLLOW_SEMI_in_declare_section1465_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_subtype_definition_in_declare_section1498  */
static	ANTLR3_BITWORD FOLLOW_subtype_definition_in_declare_section1498_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_subtype_definition_in_declare_section1498	= { FOLLOW_subtype_definition_in_declare_section1498_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_declare_section1500  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_declare_section1500_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_declare_section1500	= { FOLLOW_SEMI_in_declare_section1500_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cursor_definition_in_declare_section1530  */
static	ANTLR3_BITWORD FOLLOW_cursor_definition_in_declare_section1530_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_cursor_definition_in_declare_section1530	= { FOLLOW_cursor_definition_in_declare_section1530_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_declare_section1532  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_declare_section1532_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_declare_section1532	= { FOLLOW_SEMI_in_declare_section1532_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_item_declaration_in_declare_section1563  */
static	ANTLR3_BITWORD FOLLOW_item_declaration_in_declare_section1563_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_item_declaration_in_declare_section1563	= { FOLLOW_item_declaration_in_declare_section1563_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_declare_section1565  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_declare_section1565_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_declare_section1565	= { FOLLOW_SEMI_in_declare_section1565_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_function_declaration_or_definition_in_declare_section1597  */
static	ANTLR3_BITWORD FOLLOW_function_declaration_or_definition_in_declare_section1597_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_function_declaration_or_definition_in_declare_section1597	= { FOLLOW_function_declaration_or_definition_in_declare_section1597_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_declare_section1599  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_declare_section1599_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_declare_section1599	= { FOLLOW_SEMI_in_declare_section1599_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_procedure_declaration_or_definition_in_declare_section1613  */
static	ANTLR3_BITWORD FOLLOW_procedure_declaration_or_definition_in_declare_section1613_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_procedure_declaration_or_definition_in_declare_section1613	= { FOLLOW_procedure_declaration_or_definition_in_declare_section1613_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_declare_section1615  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_declare_section1615_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_declare_section1615	= { FOLLOW_SEMI_in_declare_section1615_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_pragma_in_declare_section1628  */
static	ANTLR3_BITWORD FOLLOW_pragma_in_declare_section1628_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_pragma_in_declare_section1628	= { FOLLOW_pragma_in_declare_section1628_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_type_in_type_definition_sub1688  */
static	ANTLR3_BITWORD FOLLOW_k_type_in_type_definition_sub1688_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_type_in_type_definition_sub1688	= { FOLLOW_k_type_in_type_definition_sub1688_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_type_definition_sub1690  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_type_definition_sub1690_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_type_definition_sub1690	= { FOLLOW_identifier_in_type_definition_sub1690_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_type_definition_sub1695  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_type_definition_sub1695_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000000000), ANTLR3_UINT64_LIT(0x00000C0600000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_type_definition_sub1695	= { FOLLOW_k_is_in_type_definition_sub1695_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_type_definition_sub1699  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_type_definition_sub1699_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000000000), ANTLR3_UINT64_LIT(0x00000C0600000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_type_definition_sub1699	= { FOLLOW_k_as_in_type_definition_sub1699_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_record_type_definition_in_type_definition_sub1705  */
static	ANTLR3_BITWORD FOLLOW_record_type_definition_in_type_definition_sub1705_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_record_type_definition_in_type_definition_sub1705	= { FOLLOW_record_type_definition_in_type_definition_sub1705_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_collection_type_definition_in_type_definition_sub1709  */
static	ANTLR3_BITWORD FOLLOW_collection_type_definition_in_type_definition_sub1709_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_collection_type_definition_in_type_definition_sub1709	= { FOLLOW_collection_type_definition_in_type_definition_sub1709_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ref_cursor_type_definition_in_type_definition_sub1713  */
static	ANTLR3_BITWORD FOLLOW_ref_cursor_type_definition_in_type_definition_sub1713_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ref_cursor_type_definition_in_type_definition_sub1713	= { FOLLOW_ref_cursor_type_definition_in_type_definition_sub1713_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_definition_sub_in_type_definition1723  */
static	ANTLR3_BITWORD FOLLOW_type_definition_sub_in_type_definition1723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_definition_sub_in_type_definition1723	= { FOLLOW_type_definition_sub_in_type_definition1723_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_subtype_in_subtype_definition_sub1738  */
static	ANTLR3_BITWORD FOLLOW_k_subtype_in_subtype_definition_sub1738_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_subtype_in_subtype_definition_sub1738	= { FOLLOW_k_subtype_in_subtype_definition_sub1738_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_subtype_definition_sub1740  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_subtype_definition_sub1740_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_subtype_definition_sub1740	= { FOLLOW_identifier_in_subtype_definition_sub1740_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_subtype_definition_sub1745  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_subtype_definition_sub1745_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_subtype_definition_sub1745	= { FOLLOW_k_is_in_subtype_definition_sub1745_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_subtype_definition_sub1749  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_subtype_definition_sub1749_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_subtype_definition_sub1749	= { FOLLOW_k_as_in_subtype_definition_sub1749_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_subtype_definition_sub1753  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_subtype_definition_sub1753_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0080000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_subtype_definition_sub1753	= { FOLLOW_datatype_in_subtype_definition_sub1753_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_subtype_definition_sub1757  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_subtype_definition_sub1757_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_subtype_definition_sub1757	= { FOLLOW_k_not_in_subtype_definition_sub1757_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_subtype_definition_sub1759  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_subtype_definition_sub1759_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_subtype_definition_sub1759	= { FOLLOW_k_null_in_subtype_definition_sub1759_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_subtype_definition_sub_in_subtype_definition1769  */
static	ANTLR3_BITWORD FOLLOW_subtype_definition_sub_in_subtype_definition1769_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_subtype_definition_sub_in_subtype_definition1769	= { FOLLOW_subtype_definition_sub_in_subtype_definition1769_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_cursor_in_cursor_definition_sub1784  */
static	ANTLR3_BITWORD FOLLOW_k_cursor_in_cursor_definition_sub1784_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_cursor_in_cursor_definition_sub1784	= { FOLLOW_k_cursor_in_cursor_definition_sub1784_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_cursor_definition_sub1786  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_cursor_definition_sub1786_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0004000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_cursor_definition_sub1786	= { FOLLOW_identifier_in_cursor_definition_sub1786_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declarations_in_cursor_definition_sub1789  */
static	ANTLR3_BITWORD FOLLOW_parameter_declarations_in_cursor_definition_sub1789_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0004000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declarations_in_cursor_definition_sub1789	= { FOLLOW_parameter_declarations_in_cursor_definition_sub1789_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_cursor_definition_sub1793  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_cursor_definition_sub1793_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_cursor_definition_sub1793	= { FOLLOW_k_return_in_cursor_definition_sub1793_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_cursor_definition_sub1795  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_cursor_definition_sub1795_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_cursor_definition_sub1795	= { FOLLOW_datatype_in_cursor_definition_sub1795_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_cursor_definition_sub1799  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_cursor_definition_sub1799_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x2000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_cursor_definition_sub1799	= { FOLLOW_k_is_in_cursor_definition_sub1799_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_select_statement_in_cursor_definition_sub1801  */
static	ANTLR3_BITWORD FOLLOW_select_statement_in_cursor_definition_sub1801_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_select_statement_in_cursor_definition_sub1801	= { FOLLOW_select_statement_in_cursor_definition_sub1801_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cursor_definition_sub_in_cursor_definition1809  */
static	ANTLR3_BITWORD FOLLOW_cursor_definition_sub_in_cursor_definition1809_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_cursor_definition_sub_in_cursor_definition1809	= { FOLLOW_cursor_definition_sub_in_cursor_definition1809_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_declaration_in_item_declaration1828  */
static	ANTLR3_BITWORD FOLLOW_variable_declaration_in_item_declaration1828_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_declaration_in_item_declaration1828	= { FOLLOW_variable_declaration_in_item_declaration1828_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_constant_declaration_in_item_declaration1844  */
static	ANTLR3_BITWORD FOLLOW_constant_declaration_in_item_declaration1844_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_constant_declaration_in_item_declaration1844	= { FOLLOW_constant_declaration_in_item_declaration1844_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_declaration_in_item_declaration1860  */
static	ANTLR3_BITWORD FOLLOW_exception_declaration_in_item_declaration1860_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_declaration_in_item_declaration1860	= { FOLLOW_exception_declaration_in_item_declaration1860_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_in_variable_declaration1880  */
static	ANTLR3_BITWORD FOLLOW_variable_name_in_variable_declaration1880_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_in_variable_declaration1880	= { FOLLOW_variable_name_in_variable_declaration1880_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_variable_declaration1883  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_variable_declaration1883_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0080001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_variable_declaration1883	= { FOLLOW_datatype_in_variable_declaration1883_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_variable_declaration1891  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_variable_declaration1891_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_variable_declaration1891	= { FOLLOW_k_not_in_variable_declaration1891_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_variable_declaration1893  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_variable_declaration1893_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_variable_declaration1893	= { FOLLOW_k_null_in_variable_declaration1893_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_in_variable_declaration1901  */
static	ANTLR3_BITWORD FOLLOW_ASSIGN_in_variable_declaration1901_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_in_variable_declaration1901	= { FOLLOW_ASSIGN_in_variable_declaration1901_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_default_in_variable_declaration1906  */
static	ANTLR3_BITWORD FOLLOW_k_default_in_variable_declaration1906_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_default_in_variable_declaration1906	= { FOLLOW_k_default_in_variable_declaration1906_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_variable_declaration1910  */
static	ANTLR3_BITWORD FOLLOW_expression_in_variable_declaration1910_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_variable_declaration1910	= { FOLLOW_expression_in_variable_declaration1910_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_in_constant_declaration1923  */
static	ANTLR3_BITWORD FOLLOW_variable_name_in_constant_declaration1923_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_in_constant_declaration1923	= { FOLLOW_variable_name_in_constant_declaration1923_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_constant_in_constant_declaration1926  */
static	ANTLR3_BITWORD FOLLOW_k_constant_in_constant_declaration1926_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_constant_in_constant_declaration1926	= { FOLLOW_k_constant_in_constant_declaration1926_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_constant_declaration1928  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_constant_declaration1928_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0080001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_constant_declaration1928	= { FOLLOW_datatype_in_constant_declaration1928_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_constant_declaration1932  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_constant_declaration1932_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_constant_declaration1932	= { FOLLOW_k_not_in_constant_declaration1932_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_constant_declaration1934  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_constant_declaration1934_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_constant_declaration1934	= { FOLLOW_k_null_in_constant_declaration1934_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_in_constant_declaration1943  */
static	ANTLR3_BITWORD FOLLOW_ASSIGN_in_constant_declaration1943_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_in_constant_declaration1943	= { FOLLOW_ASSIGN_in_constant_declaration1943_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_default_in_constant_declaration1948  */
static	ANTLR3_BITWORD FOLLOW_k_default_in_constant_declaration1948_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_default_in_constant_declaration1948	= { FOLLOW_k_default_in_constant_declaration1948_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_constant_declaration1953  */
static	ANTLR3_BITWORD FOLLOW_expression_in_constant_declaration1953_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_constant_declaration1953	= { FOLLOW_expression_in_constant_declaration1953_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_exception_declaration1962  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_exception_declaration1962_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_exception_declaration1962	= { FOLLOW_identifier_in_exception_declaration1962_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_exception_in_exception_declaration1965  */
static	ANTLR3_BITWORD FOLLOW_k_exception_in_exception_declaration1965_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_exception_in_exception_declaration1965	= { FOLLOW_k_exception_in_exception_declaration1965_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_record_in_record_type_definition1979  */
static	ANTLR3_BITWORD FOLLOW_k_record_in_record_type_definition1979_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_record_in_record_type_definition1979	= { FOLLOW_k_record_in_record_type_definition1979_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_record_type_definition1981  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_record_type_definition1981_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_record_type_definition1981	= { FOLLOW_LPAREN_in_record_type_definition1981_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_record_field_declaration_in_record_type_definition1983  */
static	ANTLR3_BITWORD FOLLOW_record_field_declaration_in_record_type_definition1983_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_record_field_declaration_in_record_type_definition1983	= { FOLLOW_record_field_declaration_in_record_type_definition1983_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_record_type_definition1987  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_record_type_definition1987_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_record_type_definition1987	= { FOLLOW_COMMA_in_record_type_definition1987_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_record_field_declaration_in_record_type_definition1989  */
static	ANTLR3_BITWORD FOLLOW_record_field_declaration_in_record_type_definition1989_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_record_field_declaration_in_record_type_definition1989	= { FOLLOW_record_field_declaration_in_record_type_definition1989_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_record_type_definition1994  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_record_type_definition1994_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_record_type_definition1994	= { FOLLOW_RPAREN_in_record_type_definition1994_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_record_field_declaration2008  */
static	ANTLR3_BITWORD FOLLOW_ID_in_record_field_declaration2008_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_record_field_declaration2008	= { FOLLOW_ID_in_record_field_declaration2008_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_record_field_declaration2010  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_record_field_declaration2010_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0080001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_record_field_declaration2010	= { FOLLOW_datatype_in_record_field_declaration2010_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_record_field_declaration2016  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_record_field_declaration2016_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_record_field_declaration2016	= { FOLLOW_k_not_in_record_field_declaration2016_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_record_field_declaration2018  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_record_field_declaration2018_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_record_field_declaration2018	= { FOLLOW_k_null_in_record_field_declaration2018_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_in_record_field_declaration2025  */
static	ANTLR3_BITWORD FOLLOW_ASSIGN_in_record_field_declaration2025_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_in_record_field_declaration2025	= { FOLLOW_ASSIGN_in_record_field_declaration2025_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_default_in_record_field_declaration2029  */
static	ANTLR3_BITWORD FOLLOW_k_default_in_record_field_declaration2029_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_default_in_record_field_declaration2029	= { FOLLOW_k_default_in_record_field_declaration2029_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_record_field_declaration2033  */
static	ANTLR3_BITWORD FOLLOW_expression_in_record_field_declaration2033_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_record_field_declaration2033	= { FOLLOW_expression_in_record_field_declaration2033_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_varray_type_definition_in_collection_type_definition2050  */
static	ANTLR3_BITWORD FOLLOW_varray_type_definition_in_collection_type_definition2050_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_varray_type_definition_in_collection_type_definition2050	= { FOLLOW_varray_type_definition_in_collection_type_definition2050_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nested_table_type_definition_in_collection_type_definition2055  */
static	ANTLR3_BITWORD FOLLOW_nested_table_type_definition_in_collection_type_definition2055_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_nested_table_type_definition_in_collection_type_definition2055	= { FOLLOW_nested_table_type_definition_in_collection_type_definition2055_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_varying_in_varray_type_definition2068  */
static	ANTLR3_BITWORD FOLLOW_k_varying_in_varray_type_definition2068_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_k_varying_in_varray_type_definition2068	= { FOLLOW_k_varying_in_varray_type_definition2068_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_array_in_varray_type_definition2070  */
static	ANTLR3_BITWORD FOLLOW_k_array_in_varray_type_definition2070_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_array_in_varray_type_definition2070	= { FOLLOW_k_array_in_varray_type_definition2070_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_varray_in_varray_type_definition2075  */
static	ANTLR3_BITWORD FOLLOW_k_varray_in_varray_type_definition2075_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_varray_in_varray_type_definition2075	= { FOLLOW_k_varray_in_varray_type_definition2075_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_varray_type_definition2079  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_varray_type_definition2079_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_varray_type_definition2079	= { FOLLOW_LPAREN_in_varray_type_definition2079_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_varray_type_definition2081  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_varray_type_definition2081_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_varray_type_definition2081	= { FOLLOW_numeric_literal_in_varray_type_definition2081_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_varray_type_definition2083  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_varray_type_definition2083_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_varray_type_definition2083	= { FOLLOW_RPAREN_in_varray_type_definition2083_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kOF_in_varray_type_definition2085  */
static	ANTLR3_BITWORD FOLLOW_kOF_in_varray_type_definition2085_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_kOF_in_varray_type_definition2085	= { FOLLOW_kOF_in_varray_type_definition2085_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_varray_type_definition2087  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_varray_type_definition2087_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0080000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_varray_type_definition2087	= { FOLLOW_datatype_in_varray_type_definition2087_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_varray_type_definition2091  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_varray_type_definition2091_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_varray_type_definition2091	= { FOLLOW_k_not_in_varray_type_definition2091_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_varray_type_definition2093  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_varray_type_definition2093_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_varray_type_definition2093	= { FOLLOW_k_null_in_varray_type_definition2093_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_table_in_nested_table_type_definition2107  */
static	ANTLR3_BITWORD FOLLOW_k_table_in_nested_table_type_definition2107_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_table_in_nested_table_type_definition2107	= { FOLLOW_k_table_in_nested_table_type_definition2107_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kOF_in_nested_table_type_definition2109  */
static	ANTLR3_BITWORD FOLLOW_kOF_in_nested_table_type_definition2109_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_kOF_in_nested_table_type_definition2109	= { FOLLOW_kOF_in_nested_table_type_definition2109_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_nested_table_type_definition2111  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_nested_table_type_definition2111_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0080800000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_nested_table_type_definition2111	= { FOLLOW_datatype_in_nested_table_type_definition2111_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_nested_table_type_definition2115  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_nested_table_type_definition2115_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_nested_table_type_definition2115	= { FOLLOW_k_not_in_nested_table_type_definition2115_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_nested_table_type_definition2117  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_nested_table_type_definition2117_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000800000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_nested_table_type_definition2117	= { FOLLOW_k_null_in_nested_table_type_definition2117_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_index_in_nested_table_type_definition2124  */
static	ANTLR3_BITWORD FOLLOW_k_index_in_nested_table_type_definition2124_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000010000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_index_in_nested_table_type_definition2124	= { FOLLOW_k_index_in_nested_table_type_definition2124_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_by_in_nested_table_type_definition2126  */
static	ANTLR3_BITWORD FOLLOW_k_by_in_nested_table_type_definition2126_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_by_in_nested_table_type_definition2126	= { FOLLOW_k_by_in_nested_table_type_definition2126_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_associative_index_type_in_nested_table_type_definition2128  */
static	ANTLR3_BITWORD FOLLOW_associative_index_type_in_nested_table_type_definition2128_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_associative_index_type_in_nested_table_type_definition2128	= { FOLLOW_associative_index_type_in_nested_table_type_definition2128_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_associative_index_type2142  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_associative_index_type2142_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_associative_index_type2142	= { FOLLOW_datatype_in_associative_index_type2142_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_ref_cursor_type_definition2153  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_ref_cursor_type_definition2153_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_ref_cursor_type_definition2153	= { FOLLOW_k_ref_in_ref_cursor_type_definition2153_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_cursor_in_ref_cursor_type_definition2155  */
static	ANTLR3_BITWORD FOLLOW_k_cursor_in_ref_cursor_type_definition2155_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_cursor_in_ref_cursor_type_definition2155	= { FOLLOW_k_cursor_in_ref_cursor_type_definition2155_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_ref_cursor_type_definition2159  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_ref_cursor_type_definition2159_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_ref_cursor_type_definition2159	= { FOLLOW_k_return_in_ref_cursor_type_definition2159_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_ref_cursor_type_definition2161  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_ref_cursor_type_definition2161_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_ref_cursor_type_definition2161	= { FOLLOW_datatype_in_ref_cursor_type_definition2161_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_long_in_datatype_name2187  */
static	ANTLR3_BITWORD FOLLOW_r_long_in_datatype_name2187_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_long_in_datatype_name2187	= { FOLLOW_r_long_in_datatype_name2187_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_raw_in_datatype_name2191  */
static	ANTLR3_BITWORD FOLLOW_r_raw_in_datatype_name2191_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_raw_in_datatype_name2191	= { FOLLOW_r_raw_in_datatype_name2191_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2197  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2197_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2197	= { FOLLOW_LPAREN_in_datatype_name2197_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2199  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2199_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2199	= { FOLLOW_INTEGER_in_datatype_name2199_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2201  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2201_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2201	= { FOLLOW_RPAREN_in_datatype_name2201_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_raw_in_datatype_name2209  */
static	ANTLR3_BITWORD FOLLOW_r_raw_in_datatype_name2209_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_raw_in_datatype_name2209	= { FOLLOW_r_raw_in_datatype_name2209_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2213  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2213_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2213	= { FOLLOW_LPAREN_in_datatype_name2213_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2215  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2215_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2215	= { FOLLOW_INTEGER_in_datatype_name2215_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2217  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2217_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2217	= { FOLLOW_RPAREN_in_datatype_name2217_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_interval_in_datatype_name2229  */
static	ANTLR3_BITWORD FOLLOW_k_interval_in_datatype_name2229_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_interval_in_datatype_name2229	= { FOLLOW_k_interval_in_datatype_name2229_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kDAY_in_datatype_name2231  */
static	ANTLR3_BITWORD FOLLOW_kDAY_in_datatype_name2231_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_kDAY_in_datatype_name2231	= { FOLLOW_kDAY_in_datatype_name2231_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2235  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2235_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2235	= { FOLLOW_LPAREN_in_datatype_name2235_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2237  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2237_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2237	= { FOLLOW_INTEGER_in_datatype_name2237_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2239  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2239_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2239	= { FOLLOW_RPAREN_in_datatype_name2239_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_to_in_datatype_name2244  */
static	ANTLR3_BITWORD FOLLOW_r_to_in_datatype_name2244_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_to_in_datatype_name2244	= { FOLLOW_r_to_in_datatype_name2244_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kSECOND_in_datatype_name2246  */
static	ANTLR3_BITWORD FOLLOW_kSECOND_in_datatype_name2246_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_kSECOND_in_datatype_name2246	= { FOLLOW_kSECOND_in_datatype_name2246_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2250  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2250_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2250	= { FOLLOW_LPAREN_in_datatype_name2250_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2252  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2252_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2252	= { FOLLOW_INTEGER_in_datatype_name2252_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2254  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2254_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2254	= { FOLLOW_RPAREN_in_datatype_name2254_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_interval_in_datatype_name2262  */
static	ANTLR3_BITWORD FOLLOW_k_interval_in_datatype_name2262_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_interval_in_datatype_name2262	= { FOLLOW_k_interval_in_datatype_name2262_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kYEAR_in_datatype_name2264  */
static	ANTLR3_BITWORD FOLLOW_kYEAR_in_datatype_name2264_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_kYEAR_in_datatype_name2264	= { FOLLOW_kYEAR_in_datatype_name2264_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2268  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2268_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2268	= { FOLLOW_LPAREN_in_datatype_name2268_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2270  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2270_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2270	= { FOLLOW_INTEGER_in_datatype_name2270_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2272  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2272_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2272	= { FOLLOW_RPAREN_in_datatype_name2272_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_to_in_datatype_name2277  */
static	ANTLR3_BITWORD FOLLOW_r_to_in_datatype_name2277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_to_in_datatype_name2277	= { FOLLOW_r_to_in_datatype_name2277_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kMONTH_in_datatype_name2279  */
static	ANTLR3_BITWORD FOLLOW_kMONTH_in_datatype_name2279_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_kMONTH_in_datatype_name2279	= { FOLLOW_kMONTH_in_datatype_name2279_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_timestamp_in_datatype_name2288  */
static	ANTLR3_BITWORD FOLLOW_k_timestamp_in_datatype_name2288_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x2000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_timestamp_in_datatype_name2288	= { FOLLOW_k_timestamp_in_datatype_name2288_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2294  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2294_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2294	= { FOLLOW_LPAREN_in_datatype_name2294_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2296  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2296_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2296	= { FOLLOW_INTEGER_in_datatype_name2296_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2298  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2298_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x2000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2298	= { FOLLOW_RPAREN_in_datatype_name2298_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_with_in_datatype_name2305  */
static	ANTLR3_BITWORD FOLLOW_r_with_in_datatype_name2305_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_with_in_datatype_name2305	= { FOLLOW_r_with_in_datatype_name2305_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kLOCAL_in_datatype_name2309  */
static	ANTLR3_BITWORD FOLLOW_kLOCAL_in_datatype_name2309_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kLOCAL_in_datatype_name2309	= { FOLLOW_kLOCAL_in_datatype_name2309_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kTIME_in_datatype_name2314  */
static	ANTLR3_BITWORD FOLLOW_kTIME_in_datatype_name2314_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kTIME_in_datatype_name2314	= { FOLLOW_kTIME_in_datatype_name2314_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kZONE_in_datatype_name2316  */
static	ANTLR3_BITWORD FOLLOW_kZONE_in_datatype_name2316_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_kZONE_in_datatype_name2316	= { FOLLOW_kZONE_in_datatype_name2316_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_char_in_datatype_name2336  */
static	ANTLR3_BITWORD FOLLOW_r_char_in_datatype_name2336_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000040000000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_char_in_datatype_name2336	= { FOLLOW_r_char_in_datatype_name2336_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_varying_in_datatype_name2345  */
static	ANTLR3_BITWORD FOLLOW_k_varying_in_datatype_name2345_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_varying_in_datatype_name2345	= { FOLLOW_k_varying_in_datatype_name2345_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2352  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2352_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2352	= { FOLLOW_LPAREN_in_datatype_name2352_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2354  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2354_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000110000), ANTLR3_UINT64_LIT(0x0000000000001000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2354	= { FOLLOW_INTEGER_in_datatype_name2354_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kBYTE_in_datatype_name2358  */
static	ANTLR3_BITWORD FOLLOW_kBYTE_in_datatype_name2358_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_kBYTE_in_datatype_name2358	= { FOLLOW_kBYTE_in_datatype_name2358_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_char_in_datatype_name2362  */
static	ANTLR3_BITWORD FOLLOW_r_char_in_datatype_name2362_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_char_in_datatype_name2362	= { FOLLOW_r_char_in_datatype_name2362_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2367  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2367_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2367	= { FOLLOW_RPAREN_in_datatype_name2367_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_character_in_datatype_name2374  */
static	ANTLR3_BITWORD FOLLOW_k_character_in_datatype_name2374_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_character_in_datatype_name2374	= { FOLLOW_k_character_in_datatype_name2374_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_set_in_datatype_name2376  */
static	ANTLR3_BITWORD FOLLOW_r_set_in_datatype_name2376_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_set_in_datatype_name2376	= { FOLLOW_r_set_in_datatype_name2376_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2380  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2380_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2380	= { FOLLOW_identifier_in_datatype_name2380_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2385  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2385_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2385	= { FOLLOW_identifier_in_datatype_name2385_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_charset_attr_in_datatype_name2388  */
static	ANTLR3_BITWORD FOLLOW_charset_attr_in_datatype_name2388_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_charset_attr_in_datatype_name2388	= { FOLLOW_charset_attr_in_datatype_name2388_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_varchar_in_datatype_name2398  */
static	ANTLR3_BITWORD FOLLOW_r_varchar_in_datatype_name2398_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_varchar_in_datatype_name2398	= { FOLLOW_r_varchar_in_datatype_name2398_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2419  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2419_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2419	= { FOLLOW_LPAREN_in_datatype_name2419_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2421  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2421_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000110000), ANTLR3_UINT64_LIT(0x0000000000001000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2421	= { FOLLOW_INTEGER_in_datatype_name2421_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kBYTE_in_datatype_name2425  */
static	ANTLR3_BITWORD FOLLOW_kBYTE_in_datatype_name2425_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_kBYTE_in_datatype_name2425	= { FOLLOW_kBYTE_in_datatype_name2425_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_char_in_datatype_name2429  */
static	ANTLR3_BITWORD FOLLOW_r_char_in_datatype_name2429_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_char_in_datatype_name2429	= { FOLLOW_r_char_in_datatype_name2429_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2434  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2434_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2434	= { FOLLOW_RPAREN_in_datatype_name2434_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_character_in_datatype_name2441  */
static	ANTLR3_BITWORD FOLLOW_k_character_in_datatype_name2441_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_character_in_datatype_name2441	= { FOLLOW_k_character_in_datatype_name2441_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_set_in_datatype_name2443  */
static	ANTLR3_BITWORD FOLLOW_r_set_in_datatype_name2443_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_set_in_datatype_name2443	= { FOLLOW_r_set_in_datatype_name2443_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2447  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2447_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2447	= { FOLLOW_identifier_in_datatype_name2447_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2452  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2452_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2452	= { FOLLOW_identifier_in_datatype_name2452_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_charset_attr_in_datatype_name2455  */
static	ANTLR3_BITWORD FOLLOW_charset_attr_in_datatype_name2455_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_charset_attr_in_datatype_name2455	= { FOLLOW_charset_attr_in_datatype_name2455_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_varchar2_in_datatype_name2465  */
static	ANTLR3_BITWORD FOLLOW_r_varchar2_in_datatype_name2465_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_varchar2_in_datatype_name2465	= { FOLLOW_r_varchar2_in_datatype_name2465_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2485  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2485_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2485	= { FOLLOW_LPAREN_in_datatype_name2485_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2487  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2487_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000110000), ANTLR3_UINT64_LIT(0x0000000000001000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2487	= { FOLLOW_INTEGER_in_datatype_name2487_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kBYTE_in_datatype_name2491  */
static	ANTLR3_BITWORD FOLLOW_kBYTE_in_datatype_name2491_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_kBYTE_in_datatype_name2491	= { FOLLOW_kBYTE_in_datatype_name2491_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_char_in_datatype_name2495  */
static	ANTLR3_BITWORD FOLLOW_r_char_in_datatype_name2495_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_char_in_datatype_name2495	= { FOLLOW_r_char_in_datatype_name2495_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2500  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2500_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2500	= { FOLLOW_RPAREN_in_datatype_name2500_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_character_in_datatype_name2507  */
static	ANTLR3_BITWORD FOLLOW_k_character_in_datatype_name2507_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_character_in_datatype_name2507	= { FOLLOW_k_character_in_datatype_name2507_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_set_in_datatype_name2509  */
static	ANTLR3_BITWORD FOLLOW_r_set_in_datatype_name2509_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_set_in_datatype_name2509	= { FOLLOW_r_set_in_datatype_name2509_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2513  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2513_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2513	= { FOLLOW_identifier_in_datatype_name2513_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2518  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2518_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2518	= { FOLLOW_identifier_in_datatype_name2518_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_charset_attr_in_datatype_name2521  */
static	ANTLR3_BITWORD FOLLOW_charset_attr_in_datatype_name2521_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_charset_attr_in_datatype_name2521	= { FOLLOW_charset_attr_in_datatype_name2521_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_character_in_datatype_name2531  */
static	ANTLR3_BITWORD FOLLOW_k_character_in_datatype_name2531_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_character_in_datatype_name2531	= { FOLLOW_k_character_in_datatype_name2531_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_varying_in_datatype_name2535  */
static	ANTLR3_BITWORD FOLLOW_k_varying_in_datatype_name2535_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_varying_in_datatype_name2535	= { FOLLOW_k_varying_in_datatype_name2535_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2542  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2542_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2542	= { FOLLOW_LPAREN_in_datatype_name2542_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2544  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2544_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2544	= { FOLLOW_INTEGER_in_datatype_name2544_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2546  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2546_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2546	= { FOLLOW_RPAREN_in_datatype_name2546_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_nchar_in_datatype_name2554  */
static	ANTLR3_BITWORD FOLLOW_k_nchar_in_datatype_name2554_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_nchar_in_datatype_name2554	= { FOLLOW_k_nchar_in_datatype_name2554_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_varying_in_datatype_name2562  */
static	ANTLR3_BITWORD FOLLOW_k_varying_in_datatype_name2562_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_varying_in_datatype_name2562	= { FOLLOW_k_varying_in_datatype_name2562_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2569  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2569_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2569	= { FOLLOW_LPAREN_in_datatype_name2569_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2571  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2571_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2571	= { FOLLOW_INTEGER_in_datatype_name2571_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2573  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2573_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2573	= { FOLLOW_RPAREN_in_datatype_name2573_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_national_in_datatype_name2585  */
static	ANTLR3_BITWORD FOLLOW_k_national_in_datatype_name2585_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000040001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_national_in_datatype_name2585	= { FOLLOW_k_national_in_datatype_name2585_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_character_in_datatype_name2590  */
static	ANTLR3_BITWORD FOLLOW_k_character_in_datatype_name2590_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_character_in_datatype_name2590	= { FOLLOW_k_character_in_datatype_name2590_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_char_in_datatype_name2594  */
static	ANTLR3_BITWORD FOLLOW_r_char_in_datatype_name2594_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_char_in_datatype_name2594	= { FOLLOW_r_char_in_datatype_name2594_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_varying_in_datatype_name2600  */
static	ANTLR3_BITWORD FOLLOW_k_varying_in_datatype_name2600_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_varying_in_datatype_name2600	= { FOLLOW_k_varying_in_datatype_name2600_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype_name2607  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype_name2607_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype_name2607	= { FOLLOW_LPAREN_in_datatype_name2607_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_datatype_name2609  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_datatype_name2609_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_datatype_name2609	= { FOLLOW_INTEGER_in_datatype_name2609_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype_name2611  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype_name2611_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype_name2611	= { FOLLOW_RPAREN_in_datatype_name2611_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_clob_in_datatype_name2625  */
static	ANTLR3_BITWORD FOLLOW_k_clob_in_datatype_name2625_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000040000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_clob_in_datatype_name2625	= { FOLLOW_k_clob_in_datatype_name2625_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_character_in_datatype_name2629  */
static	ANTLR3_BITWORD FOLLOW_k_character_in_datatype_name2629_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_character_in_datatype_name2629	= { FOLLOW_k_character_in_datatype_name2629_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_set_in_datatype_name2631  */
static	ANTLR3_BITWORD FOLLOW_r_set_in_datatype_name2631_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_set_in_datatype_name2631	= { FOLLOW_r_set_in_datatype_name2631_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2635  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2635_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2635	= { FOLLOW_identifier_in_datatype_name2635_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype_name2640  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype_name2640_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype_name2640	= { FOLLOW_identifier_in_datatype_name2640_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_charset_attr_in_datatype_name2643  */
static	ANTLR3_BITWORD FOLLOW_charset_attr_in_datatype_name2643_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_charset_attr_in_datatype_name2643	= { FOLLOW_charset_attr_in_datatype_name2643_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2675  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2675_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2675	= { FOLLOW_k_ref_in_datatype2675_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_datatype2681  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_datatype2681_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_datatype2681	= { FOLLOW_schema_name_in_datatype2681_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2683  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2683_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2683	= { FOLLOW_DOT_in_datatype2683_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_object_attribute_name_in_datatype2687  */
static	ANTLR3_BITWORD FOLLOW_object_attribute_name_in_datatype2687_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_object_attribute_name_in_datatype2687	= { FOLLOW_object_attribute_name_in_datatype2687_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2689  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2689_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2689	= { FOLLOW_DOT_in_datatype2689_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype2693  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype2693_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype2693	= { FOLLOW_identifier_in_datatype2693_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2696  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2696_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x000000000000007F) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2696	= { FOLLOW_DOT_in_datatype2696_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_column_name_in_datatype2698  */
static	ANTLR3_BITWORD FOLLOW_column_name_in_datatype2698_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_column_name_in_datatype2698	= { FOLLOW_column_name_in_datatype2698_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_attr_in_datatype2701  */
static	ANTLR3_BITWORD FOLLOW_type_attr_in_datatype2701_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_attr_in_datatype2701	= { FOLLOW_type_attr_in_datatype2701_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2708  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2708_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2708	= { FOLLOW_k_ref_in_datatype2708_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_datatype2714  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_datatype2714_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_datatype2714	= { FOLLOW_schema_name_in_datatype2714_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2716  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2716_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2716	= { FOLLOW_DOT_in_datatype2716_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype2720  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype2720_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype2720	= { FOLLOW_identifier_in_datatype2720_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2723  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x000000000000007F) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2723	= { FOLLOW_DOT_in_datatype2723_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_column_name_in_datatype2725  */
static	ANTLR3_BITWORD FOLLOW_column_name_in_datatype2725_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_column_name_in_datatype2725	= { FOLLOW_column_name_in_datatype2725_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_attr_in_datatype2728  */
static	ANTLR3_BITWORD FOLLOW_type_attr_in_datatype2728_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_attr_in_datatype2728	= { FOLLOW_type_attr_in_datatype2728_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2738  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2738_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2738	= { FOLLOW_k_ref_in_datatype2738_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_datatype2744  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_datatype2744_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_datatype2744	= { FOLLOW_schema_name_in_datatype2744_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2746  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2746_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2746	= { FOLLOW_DOT_in_datatype2746_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_ex_in_datatype2750  */
static	ANTLR3_BITWORD FOLLOW_variable_name_ex_in_datatype2750_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_ex_in_datatype2750	= { FOLLOW_variable_name_ex_in_datatype2750_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_attr_in_datatype2753  */
static	ANTLR3_BITWORD FOLLOW_type_attr_in_datatype2753_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_attr_in_datatype2753	= { FOLLOW_type_attr_in_datatype2753_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2763  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2763_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2763	= { FOLLOW_k_ref_in_datatype2763_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_datatype2769  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_datatype2769_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_datatype2769	= { FOLLOW_schema_name_in_datatype2769_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2771  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2771_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2771	= { FOLLOW_DOT_in_datatype2771_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype2775  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype2775_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype2775	= { FOLLOW_identifier_in_datatype2775_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_rowtype_attr_in_datatype2778  */
static	ANTLR3_BITWORD FOLLOW_rowtype_attr_in_datatype2778_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_rowtype_attr_in_datatype2778	= { FOLLOW_rowtype_attr_in_datatype2778_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2796  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2796_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x00400000400CD005), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2796	= { FOLLOW_k_ref_in_datatype2796_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_name_in_datatype2801  */
static	ANTLR3_BITWORD FOLLOW_datatype_name_in_datatype2801_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_name_in_datatype2801	= { FOLLOW_datatype_name_in_datatype2801_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2811  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2811_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000800000001) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2811	= { FOLLOW_k_ref_in_datatype2811_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_date_in_datatype2817  */
static	ANTLR3_BITWORD FOLLOW_k_date_in_datatype2817_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_date_in_datatype2817	= { FOLLOW_k_date_in_datatype2817_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_timestamp_in_datatype2821  */
static	ANTLR3_BITWORD FOLLOW_k_timestamp_in_datatype2821_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_timestamp_in_datatype2821	= { FOLLOW_k_timestamp_in_datatype2821_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype2826  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype2826_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype2826	= { FOLLOW_LPAREN_in_datatype2826_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_datatype2828  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_datatype2828_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_datatype2828	= { FOLLOW_numeric_literal_in_datatype2828_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_datatype2832  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_datatype2832_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_datatype2832	= { FOLLOW_COMMA_in_datatype2832_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_datatype2834  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_datatype2834_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_datatype2834	= { FOLLOW_numeric_literal_in_datatype2834_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype2839  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype2839_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype2839	= { FOLLOW_RPAREN_in_datatype2839_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2852  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2852_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2852	= { FOLLOW_k_ref_in_datatype2852_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_datatype2858  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_datatype2858_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_datatype2858	= { FOLLOW_schema_name_in_datatype2858_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2860  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2860_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2860	= { FOLLOW_DOT_in_datatype2860_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype2864  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype2864_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype2864	= { FOLLOW_identifier_in_datatype2864_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2867  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2867_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2867	= { FOLLOW_DOT_in_datatype2867_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype2871  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype2871_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype2871	= { FOLLOW_identifier_in_datatype2871_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_datatype2882  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_datatype2882_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_datatype2882	= { FOLLOW_k_ref_in_datatype2882_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_datatype2888  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_datatype2888_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_datatype2888	= { FOLLOW_schema_name_in_datatype2888_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_datatype2890  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_datatype2890_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_datatype2890	= { FOLLOW_DOT_in_datatype2890_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatype2894  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatype2894_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatype2894	= { FOLLOW_identifier_in_datatype2894_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_datatype2899  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_datatype2899_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_datatype2899	= { FOLLOW_LPAREN_in_datatype2899_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_datatype2901  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_datatype2901_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_datatype2901	= { FOLLOW_numeric_literal_in_datatype2901_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_datatype2905  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_datatype2905_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_datatype2905	= { FOLLOW_COMMA_in_datatype2905_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_datatype2907  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_datatype2907_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_datatype2907	= { FOLLOW_numeric_literal_in_datatype2907_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_datatype2912  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_datatype2912_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_datatype2912	= { FOLLOW_RPAREN_in_datatype2912_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_function_declaration_or_definition_sub_in_function_declaration_or_definition2928  */
static	ANTLR3_BITWORD FOLLOW_function_declaration_or_definition_sub_in_function_declaration_or_definition2928_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_function_declaration_or_definition_sub_in_function_declaration_or_definition2928	= { FOLLOW_function_declaration_or_definition_sub_in_function_declaration_or_definition2928_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_function_heading_in_function_declaration_or_definition_sub2951  */
static	ANTLR3_BITWORD FOLLOW_function_heading_in_function_declaration_or_definition_sub2951_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000), ANTLR3_UINT64_LIT(0x0000000850020000) };
static  ANTLR3_BITSET_LIST FOLLOW_function_heading_in_function_declaration_or_definition_sub2951	= { FOLLOW_function_heading_in_function_declaration_or_definition_sub2951_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_deterministic_in_function_declaration_or_definition_sub2963  */
static	ANTLR3_BITWORD FOLLOW_k_deterministic_in_function_declaration_or_definition_sub2963_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000), ANTLR3_UINT64_LIT(0x0000000850020000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_deterministic_in_function_declaration_or_definition_sub2963	= { FOLLOW_k_deterministic_in_function_declaration_or_definition_sub2963_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_pipelined_in_function_declaration_or_definition_sub2967  */
static	ANTLR3_BITWORD FOLLOW_k_pipelined_in_function_declaration_or_definition_sub2967_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000), ANTLR3_UINT64_LIT(0x0000000850020000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_pipelined_in_function_declaration_or_definition_sub2967	= { FOLLOW_k_pipelined_in_function_declaration_or_definition_sub2967_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_parallel_enable_in_function_declaration_or_definition_sub2971  */
static	ANTLR3_BITWORD FOLLOW_k_parallel_enable_in_function_declaration_or_definition_sub2971_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0004000000800000), ANTLR3_UINT64_LIT(0x0000000850020000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_parallel_enable_in_function_declaration_or_definition_sub2971	= { FOLLOW_k_parallel_enable_in_function_declaration_or_definition_sub2971_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_function_declaration_or_definition_sub2974  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_function_declaration_or_definition_sub2974_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFEFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_function_declaration_or_definition_sub2974	= { FOLLOW_LPAREN_in_function_declaration_or_definition_sub2974_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_function_declaration_or_definition_sub2976  */
static	ANTLR3_BITWORD FOLLOW_set_in_function_declaration_or_definition_sub2976_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_function_declaration_or_definition_sub2976	= { FOLLOW_set_in_function_declaration_or_definition_sub2976_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_function_declaration_or_definition_sub2982  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_function_declaration_or_definition_sub2982_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000), ANTLR3_UINT64_LIT(0x0000000850020000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_function_declaration_or_definition_sub2982	= { FOLLOW_RPAREN_in_function_declaration_or_definition_sub2982_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_result_cache_in_function_declaration_or_definition_sub2988  */
static	ANTLR3_BITWORD FOLLOW_k_result_cache_in_function_declaration_or_definition_sub2988_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000), ANTLR3_UINT64_LIT(0x0000000850020000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_result_cache_in_function_declaration_or_definition_sub2988	= { FOLLOW_k_result_cache_in_function_declaration_or_definition_sub2988_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_function_declaration_or_definition_sub3005  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_function_declaration_or_definition_sub3005_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_function_declaration_or_definition_sub3005	= { FOLLOW_k_is_in_function_declaration_or_definition_sub3005_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_function_declaration_or_definition_sub3009  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_function_declaration_or_definition_sub3009_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_function_declaration_or_definition_sub3009	= { FOLLOW_k_as_in_function_declaration_or_definition_sub3009_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_function_declaration_or_definition_sub3013  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_function_declaration_or_definition_sub3013_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_function_declaration_or_definition_sub3013	= { FOLLOW_declare_section_in_function_declaration_or_definition_sub3013_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_body_in_function_declaration_or_definition_sub3016  */
static	ANTLR3_BITWORD FOLLOW_body_in_function_declaration_or_definition_sub3016_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_body_in_function_declaration_or_definition_sub3016	= { FOLLOW_body_in_function_declaration_or_definition_sub3016_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_in_function_declaration_or_definition_sub3018  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_in_function_declaration_or_definition_sub3018_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_in_function_declaration_or_definition_sub3018	= { FOLLOW_exception_handler_in_function_declaration_or_definition_sub3018_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_function_declaration_or_definition_sub3021  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_function_declaration_or_definition_sub3021_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_function_declaration_or_definition_sub3021	= { FOLLOW_k_end_in_function_declaration_or_definition_sub3021_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_function_declaration_or_definition_sub3023  */
static	ANTLR3_BITWORD FOLLOW_ID_in_function_declaration_or_definition_sub3023_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_function_declaration_or_definition_sub3023	= { FOLLOW_ID_in_function_declaration_or_definition_sub3023_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_procedure_declaration_or_definition_sub_in_procedure_declaration_or_definition3048  */
static	ANTLR3_BITWORD FOLLOW_procedure_declaration_or_definition_sub_in_procedure_declaration_or_definition3048_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_procedure_declaration_or_definition_sub_in_procedure_declaration_or_definition3048	= { FOLLOW_procedure_declaration_or_definition_sub_in_procedure_declaration_or_definition3048_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_procedure_heading_in_procedure_declaration_or_definition_sub3071  */
static	ANTLR3_BITWORD FOLLOW_procedure_heading_in_procedure_declaration_or_definition_sub3071_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_procedure_heading_in_procedure_declaration_or_definition_sub3071	= { FOLLOW_procedure_heading_in_procedure_declaration_or_definition_sub3071_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_procedure_declaration_or_definition_sub3085  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_procedure_declaration_or_definition_sub3085_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_procedure_declaration_or_definition_sub3085	= { FOLLOW_k_is_in_procedure_declaration_or_definition_sub3085_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_procedure_declaration_or_definition_sub3089  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_procedure_declaration_or_definition_sub3089_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_procedure_declaration_or_definition_sub3089	= { FOLLOW_k_as_in_procedure_declaration_or_definition_sub3089_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_procedure_declaration_or_definition_sub3093  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_procedure_declaration_or_definition_sub3093_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_procedure_declaration_or_definition_sub3093	= { FOLLOW_declare_section_in_procedure_declaration_or_definition_sub3093_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_body_in_procedure_declaration_or_definition_sub3096  */
static	ANTLR3_BITWORD FOLLOW_body_in_procedure_declaration_or_definition_sub3096_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_body_in_procedure_declaration_or_definition_sub3096	= { FOLLOW_body_in_procedure_declaration_or_definition_sub3096_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_in_procedure_declaration_or_definition_sub3098  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_in_procedure_declaration_or_definition_sub3098_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_in_procedure_declaration_or_definition_sub3098	= { FOLLOW_exception_handler_in_procedure_declaration_or_definition_sub3098_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_procedure_declaration_or_definition_sub3101  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_procedure_declaration_or_definition_sub3101_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_procedure_declaration_or_definition_sub3101	= { FOLLOW_k_end_in_procedure_declaration_or_definition_sub3101_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_procedure_declaration_or_definition_sub3103  */
static	ANTLR3_BITWORD FOLLOW_ID_in_procedure_declaration_or_definition_sub3103_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_procedure_declaration_or_definition_sub3103	= { FOLLOW_ID_in_procedure_declaration_or_definition_sub3103_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_label_in_statement3134  */
static	ANTLR3_BITWORD FOLLOW_label_in_statement3134_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_label_in_statement3134	= { FOLLOW_label_in_statement3134_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_execute_immediate_statement_in_statement3151  */
static	ANTLR3_BITWORD FOLLOW_execute_immediate_statement_in_statement3151_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_execute_immediate_statement_in_statement3151	= { FOLLOW_execute_immediate_statement_in_statement3151_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_if_statement_in_statement3162  */
static	ANTLR3_BITWORD FOLLOW_if_statement_in_statement3162_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_if_statement_in_statement3162	= { FOLLOW_if_statement_in_statement3162_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_case_statement_in_statement3173  */
static	ANTLR3_BITWORD FOLLOW_case_statement_in_statement3173_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_case_statement_in_statement3173	= { FOLLOW_case_statement_in_statement3173_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_open_statement_in_statement3187  */
static	ANTLR3_BITWORD FOLLOW_open_statement_in_statement3187_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_open_statement_in_statement3187	= { FOLLOW_open_statement_in_statement3187_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_close_statement_in_statement3210  */
static	ANTLR3_BITWORD FOLLOW_close_statement_in_statement3210_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_close_statement_in_statement3210	= { FOLLOW_close_statement_in_statement3210_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_continue_statement_in_statement3224  */
static	ANTLR3_BITWORD FOLLOW_continue_statement_in_statement3224_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_continue_statement_in_statement3224	= { FOLLOW_continue_statement_in_statement3224_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_pipe_row_statement_in_statement3238  */
static	ANTLR3_BITWORD FOLLOW_pipe_row_statement_in_statement3238_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_pipe_row_statement_in_statement3238	= { FOLLOW_pipe_row_statement_in_statement3238_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_goto_statement_in_statement3252  */
static	ANTLR3_BITWORD FOLLOW_goto_statement_in_statement3252_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_goto_statement_in_statement3252	= { FOLLOW_goto_statement_in_statement3252_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exit_statement_in_statement3267  */
static	ANTLR3_BITWORD FOLLOW_exit_statement_in_statement3267_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_exit_statement_in_statement3267	= { FOLLOW_exit_statement_in_statement3267_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_return_statement_in_statement3281  */
static	ANTLR3_BITWORD FOLLOW_return_statement_in_statement3281_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_return_statement_in_statement3281	= { FOLLOW_return_statement_in_statement3281_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_plsql_block_in_statement3299  */
static	ANTLR3_BITWORD FOLLOW_plsql_block_in_statement3299_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_plsql_block_in_statement3299	= { FOLLOW_plsql_block_in_statement3299_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_raise_statement_in_statement3313  */
static	ANTLR3_BITWORD FOLLOW_raise_statement_in_statement3313_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_raise_statement_in_statement3313	= { FOLLOW_raise_statement_in_statement3313_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fetch_statement_in_statement3327  */
static	ANTLR3_BITWORD FOLLOW_fetch_statement_in_statement3327_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_fetch_statement_in_statement3327	= { FOLLOW_fetch_statement_in_statement3327_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_basic_loop_statement_in_statement3341  */
static	ANTLR3_BITWORD FOLLOW_basic_loop_statement_in_statement3341_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_basic_loop_statement_in_statement3341	= { FOLLOW_basic_loop_statement_in_statement3341_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_while_loop_statement_in_statement3355  */
static	ANTLR3_BITWORD FOLLOW_while_loop_statement_in_statement3355_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_while_loop_statement_in_statement3355	= { FOLLOW_while_loop_statement_in_statement3355_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_null_statement_in_statement3369  */
static	ANTLR3_BITWORD FOLLOW_null_statement_in_statement3369_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_null_statement_in_statement3369	= { FOLLOW_null_statement_in_statement3369_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_for_loop_statement_in_statement3383  */
static	ANTLR3_BITWORD FOLLOW_for_loop_statement_in_statement3383_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_for_loop_statement_in_statement3383	= { FOLLOW_for_loop_statement_in_statement3383_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_forall_statement_in_statement3397  */
static	ANTLR3_BITWORD FOLLOW_forall_statement_in_statement3397_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_forall_statement_in_statement3397	= { FOLLOW_forall_statement_in_statement3397_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_sql_statement_in_statement3452  */
static	ANTLR3_BITWORD FOLLOW_sql_statement_in_statement3452_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_sql_statement_in_statement3452	= { FOLLOW_sql_statement_in_statement3452_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_assign_or_call_statement_in_statement3474  */
static	ANTLR3_BITWORD FOLLOW_assign_or_call_statement_in_statement3474_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_assign_or_call_statement_in_statement3474	= { FOLLOW_assign_or_call_statement_in_statement3474_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_statement3486  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_statement3486_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_statement3486	= { FOLLOW_SEMI_in_statement3486_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_first_in_lvalue3511  */
static	ANTLR3_BITWORD FOLLOW_call_first_in_lvalue3511_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_first_in_lvalue3511	= { FOLLOW_call_first_in_lvalue3511_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_lvalue3516  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_lvalue3516_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_lvalue3516	= { FOLLOW_DOT_in_lvalue3516_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_next_in_lvalue3518  */
static	ANTLR3_BITWORD FOLLOW_call_next_in_lvalue3518_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_next_in_lvalue3518	= { FOLLOW_call_next_in_lvalue3518_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_assign_or_call_statement3539  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_assign_or_call_statement3539_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_assign_or_call_statement3539	= { FOLLOW_lvalue_in_assign_or_call_statement3539_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_assign_or_call_statement3541  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_assign_or_call_statement3541_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000020) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_assign_or_call_statement3541	= { FOLLOW_DOT_in_assign_or_call_statement3541_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_delete_call_in_assign_or_call_statement3543  */
static	ANTLR3_BITWORD FOLLOW_delete_call_in_assign_or_call_statement3543_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_delete_call_in_assign_or_call_statement3543	= { FOLLOW_delete_call_in_assign_or_call_statement3543_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_assign_or_call_statement3565  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_assign_or_call_statement3565_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_assign_or_call_statement3565	= { FOLLOW_lvalue_in_assign_or_call_statement3565_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_in_assign_or_call_statement3567  */
static	ANTLR3_BITWORD FOLLOW_ASSIGN_in_assign_or_call_statement3567_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_in_assign_or_call_statement3567	= { FOLLOW_ASSIGN_in_assign_or_call_statement3567_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_assign_or_call_statement3569  */
static	ANTLR3_BITWORD FOLLOW_expression_in_assign_or_call_statement3569_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_assign_or_call_statement3569	= { FOLLOW_expression_in_assign_or_call_statement3569_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_assign_or_call_statement3589  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_assign_or_call_statement3589_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_assign_or_call_statement3589	= { FOLLOW_lvalue_in_assign_or_call_statement3589_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bindvar_in_call_first3634  */
static	ANTLR3_BITWORD FOLLOW_bindvar_in_call_first3634_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000010004000) };
static  ANTLR3_BITSET_LIST FOLLOW_bindvar_in_call_first3634	= { FOLLOW_bindvar_in_call_first3634_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_in_call_first3638  */
static	ANTLR3_BITWORD FOLLOW_variable_name_in_call_first3638_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000010004000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_in_call_first3638	= { FOLLOW_variable_name_in_call_first3638_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_dblink_name_in_call_first3643  */
static	ANTLR3_BITWORD FOLLOW_dblink_name_in_call_first3643_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_dblink_name_in_call_first3643	= { FOLLOW_dblink_name_in_call_first3643_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_call_first3648  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_call_first3648_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_call_first3648	= { FOLLOW_LPAREN_in_call_first3648_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_call_first3652  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_call_first3652_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_call_first3652	= { FOLLOW_parameter_in_call_first3652_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_call_first3656  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_call_first3656_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_call_first3656	= { FOLLOW_COMMA_in_call_first3656_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_call_first3658  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_call_first3658_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_call_first3658	= { FOLLOW_parameter_in_call_first3658_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_call_first3666  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_call_first3666_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_call_first3666	= { FOLLOW_RPAREN_in_call_first3666_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_ex_in_call_next3688  */
static	ANTLR3_BITWORD FOLLOW_variable_name_ex_in_call_next3688_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000010004000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_ex_in_call_next3688	= { FOLLOW_variable_name_ex_in_call_next3688_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_dblink_name_in_call_next3692  */
static	ANTLR3_BITWORD FOLLOW_dblink_name_in_call_next3692_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_dblink_name_in_call_next3692	= { FOLLOW_dblink_name_in_call_next3692_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_call_next3697  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_call_next3697_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_call_next3697	= { FOLLOW_LPAREN_in_call_next3697_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_call_next3701  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_call_next3701_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_call_next3701	= { FOLLOW_parameter_in_call_next3701_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_call_next3705  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_call_next3705_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_call_next3705	= { FOLLOW_COMMA_in_call_next3705_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_call_next3707  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_call_next3707_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_call_next3707	= { FOLLOW_parameter_in_call_next3707_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_call_next3715  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_call_next3715_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_call_next3715	= { FOLLOW_RPAREN_in_call_next3715_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_delete_in_delete_call3735  */
static	ANTLR3_BITWORD FOLLOW_k_delete_in_delete_call3735_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_delete_in_delete_call3735	= { FOLLOW_k_delete_in_delete_call3735_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_delete_call3739  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_delete_call3739_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_delete_call3739	= { FOLLOW_LPAREN_in_delete_call3739_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_delete_call3741  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_delete_call3741_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_delete_call3741	= { FOLLOW_parameter_in_delete_call3741_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_delete_call3744  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_delete_call3744_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_delete_call3744	= { FOLLOW_RPAREN_in_delete_call3744_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_basic_loop_statement_sub_in_basic_loop_statement3760  */
static	ANTLR3_BITWORD FOLLOW_basic_loop_statement_sub_in_basic_loop_statement3760_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_basic_loop_statement_sub_in_basic_loop_statement3760	= { FOLLOW_basic_loop_statement_sub_in_basic_loop_statement3760_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_basic_loop_statement_sub3774  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_basic_loop_statement_sub3774_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_basic_loop_statement_sub3774	= { FOLLOW_k_loop_in_basic_loop_statement_sub3774_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_basic_loop_statement_sub3776  */
static	ANTLR3_BITWORD FOLLOW_statement_in_basic_loop_statement_sub3776_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A175A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_basic_loop_statement_sub3776	= { FOLLOW_statement_in_basic_loop_statement_sub3776_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_basic_loop_statement_sub3779  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_basic_loop_statement_sub3779_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x4000000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_basic_loop_statement_sub3779	= { FOLLOW_k_end_in_basic_loop_statement_sub3779_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_basic_loop_statement_sub3781  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_basic_loop_statement_sub3781_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_basic_loop_statement_sub3781	= { FOLLOW_k_loop_in_basic_loop_statement_sub3781_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_label_name_in_basic_loop_statement_sub3783  */
static	ANTLR3_BITWORD FOLLOW_label_name_in_basic_loop_statement_sub3783_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_label_name_in_basic_loop_statement_sub3783	= { FOLLOW_label_name_in_basic_loop_statement_sub3783_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_case_statement_sub_in_case_statement3793  */
static	ANTLR3_BITWORD FOLLOW_case_statement_sub_in_case_statement3793_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_case_statement_sub_in_case_statement3793	= { FOLLOW_case_statement_sub_in_case_statement3793_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_case_in_case_statement_sub3815  */
static	ANTLR3_BITWORD FOLLOW_k_case_in_case_statement_sub3815_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_case_in_case_statement_sub3815	= { FOLLOW_k_case_in_case_statement_sub3815_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_case_statement_sub3817  */
static	ANTLR3_BITWORD FOLLOW_expression_in_case_statement_sub3817_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_case_statement_sub3817	= { FOLLOW_expression_in_case_statement_sub3817_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_when_in_case_statement_sub3830  */
static	ANTLR3_BITWORD FOLLOW_k_when_in_case_statement_sub3830_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_when_in_case_statement_sub3830	= { FOLLOW_k_when_in_case_statement_sub3830_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_case_statement_sub3832  */
static	ANTLR3_BITWORD FOLLOW_expression_in_case_statement_sub3832_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_case_statement_sub3832	= { FOLLOW_expression_in_case_statement_sub3832_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_then_in_case_statement_sub3834  */
static	ANTLR3_BITWORD FOLLOW_k_then_in_case_statement_sub3834_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080330A344000), ANTLR3_UINT64_LIT(0x79A17E0AA0110CEF), ANTLR3_UINT64_LIT(0x00000311A161ABF4) };
static  ANTLR3_BITSET_LIST FOLLOW_k_then_in_case_statement_sub3834	= { FOLLOW_k_then_in_case_statement_sub3834_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_case_statement_sub3838  */
static	ANTLR3_BITWORD FOLLOW_statement_in_case_statement_sub3838_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080330A344000), ANTLR3_UINT64_LIT(0x79A17E4AA0110CEF), ANTLR3_UINT64_LIT(0x00001311A175ABF4) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_case_statement_sub3838	= { FOLLOW_statement_in_case_statement_sub3838_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_case_statement_sub3843  */
static	ANTLR3_BITWORD FOLLOW_expression_in_case_statement_sub3843_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180024820000007), ANTLR3_UINT64_LIT(0x0000110000140B84) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_case_statement_sub3843	= { FOLLOW_expression_in_case_statement_sub3843_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_else_in_case_statement_sub3859  */
static	ANTLR3_BITWORD FOLLOW_k_else_in_case_statement_sub3859_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080330A344000), ANTLR3_UINT64_LIT(0x79A17E0AA0110CEF), ANTLR3_UINT64_LIT(0x00000311A161ABF4) };
static  ANTLR3_BITSET_LIST FOLLOW_k_else_in_case_statement_sub3859	= { FOLLOW_k_else_in_case_statement_sub3859_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_case_statement_sub3863  */
static	ANTLR3_BITWORD FOLLOW_statement_in_case_statement_sub3863_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A175A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_case_statement_sub3863	= { FOLLOW_statement_in_case_statement_sub3863_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_case_statement_sub3868  */
static	ANTLR3_BITWORD FOLLOW_expression_in_case_statement_sub3868_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_case_statement_sub3868	= { FOLLOW_expression_in_case_statement_sub3868_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_case_statement_sub3882  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_case_statement_sub3882_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000020000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_case_statement_sub3882	= { FOLLOW_k_end_in_case_statement_sub3882_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_case_in_case_statement_sub3884  */
static	ANTLR3_BITWORD FOLLOW_k_case_in_case_statement_sub3884_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_case_in_case_statement_sub3884	= { FOLLOW_k_case_in_case_statement_sub3884_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_close_statement_sub_in_close_statement3898  */
static	ANTLR3_BITWORD FOLLOW_close_statement_sub_in_close_statement3898_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_close_statement_sub_in_close_statement3898	= { FOLLOW_close_statement_sub_in_close_statement3898_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_close_in_close_statement_sub3912  */
static	ANTLR3_BITWORD FOLLOW_k_close_in_close_statement_sub3912_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000800008100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_close_in_close_statement_sub3912	= { FOLLOW_k_close_in_close_statement_sub3912_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cursor_name_in_close_statement_sub3914  */
static	ANTLR3_BITWORD FOLLOW_cursor_name_in_close_statement_sub3914_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_cursor_name_in_close_statement_sub3914	= { FOLLOW_cursor_name_in_close_statement_sub3914_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_continue_statement_sub_in_continue_statement3922  */
static	ANTLR3_BITWORD FOLLOW_continue_statement_sub_in_continue_statement3922_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_continue_statement_sub_in_continue_statement3922	= { FOLLOW_continue_statement_sub_in_continue_statement3922_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_continue_in_continue_statement_sub3936  */
static	ANTLR3_BITWORD FOLLOW_k_continue_in_continue_statement_sub3936_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_continue_in_continue_statement_sub3936	= { FOLLOW_k_continue_in_continue_statement_sub3936_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_continue_statement_sub3942  */
static	ANTLR3_BITWORD FOLLOW_ID_in_continue_statement_sub3942_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_continue_statement_sub3942	= { FOLLOW_ID_in_continue_statement_sub3942_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_when_in_continue_statement_sub3949  */
static	ANTLR3_BITWORD FOLLOW_k_when_in_continue_statement_sub3949_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_when_in_continue_statement_sub3949	= { FOLLOW_k_when_in_continue_statement_sub3949_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_continue_statement_sub3951  */
static	ANTLR3_BITWORD FOLLOW_expression_in_continue_statement_sub3951_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_continue_statement_sub3951	= { FOLLOW_expression_in_continue_statement_sub3951_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_execute_immediate_statement_sub_in_execute_immediate_statement3963  */
static	ANTLR3_BITWORD FOLLOW_execute_immediate_statement_sub_in_execute_immediate_statement3963_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_execute_immediate_statement_sub_in_execute_immediate_statement3963	= { FOLLOW_execute_immediate_statement_sub_in_execute_immediate_statement3963_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_execute_in_execute_immediate_statement_sub3985  */
static	ANTLR3_BITWORD FOLLOW_k_execute_in_execute_immediate_statement_sub3985_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_execute_in_execute_immediate_statement_sub3985	= { FOLLOW_k_execute_in_execute_immediate_statement_sub3985_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_immediate_in_execute_immediate_statement_sub3987  */
static	ANTLR3_BITWORD FOLLOW_k_immediate_in_execute_immediate_statement_sub3987_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_immediate_in_execute_immediate_statement_sub3987	= { FOLLOW_k_immediate_in_execute_immediate_statement_sub3987_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_execute_immediate_statement_sub3989  */
static	ANTLR3_BITWORD FOLLOW_expression_in_execute_immediate_statement_sub3989_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000804000), ANTLR3_UINT64_LIT(0x0002000008000000), ANTLR3_UINT64_LIT(0x0000003000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_execute_immediate_statement_sub3989	= { FOLLOW_expression_in_execute_immediate_statement_sub3989_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_into_clause_in_execute_immediate_statement_sub4003  */
static	ANTLR3_BITWORD FOLLOW_into_clause_in_execute_immediate_statement_sub4003_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_into_clause_in_execute_immediate_statement_sub4003	= { FOLLOW_into_clause_in_execute_immediate_statement_sub4003_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bulk_collect_into_clause_in_execute_immediate_statement_sub4007  */
static	ANTLR3_BITWORD FOLLOW_bulk_collect_into_clause_in_execute_immediate_statement_sub4007_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_bulk_collect_into_clause_in_execute_immediate_statement_sub4007	= { FOLLOW_bulk_collect_into_clause_in_execute_immediate_statement_sub4007_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_using_clause_in_execute_immediate_statement_sub4010  */
static	ANTLR3_BITWORD FOLLOW_using_clause_in_execute_immediate_statement_sub4010_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_using_clause_in_execute_immediate_statement_sub4010	= { FOLLOW_using_clause_in_execute_immediate_statement_sub4010_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_using_clause_in_execute_immediate_statement_sub4023  */
static	ANTLR3_BITWORD FOLLOW_using_clause_in_execute_immediate_statement_sub4023_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000003000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_using_clause_in_execute_immediate_statement_sub4023	= { FOLLOW_using_clause_in_execute_immediate_statement_sub4023_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4025  */
static	ANTLR3_BITWORD FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4025_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4025	= { FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4025_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4038  */
static	ANTLR3_BITWORD FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4038_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4038	= { FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4038_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exit_statement_sub_in_exit_statement4062  */
static	ANTLR3_BITWORD FOLLOW_exit_statement_sub_in_exit_statement4062_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_exit_statement_sub_in_exit_statement4062	= { FOLLOW_exit_statement_sub_in_exit_statement4062_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_exit_in_exit_statement_sub4076  */
static	ANTLR3_BITWORD FOLLOW_k_exit_in_exit_statement_sub4076_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_exit_in_exit_statement_sub4076	= { FOLLOW_k_exit_in_exit_statement_sub4076_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_exit_statement_sub4082  */
static	ANTLR3_BITWORD FOLLOW_ID_in_exit_statement_sub4082_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_exit_statement_sub4082	= { FOLLOW_ID_in_exit_statement_sub4082_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_when_in_exit_statement_sub4089  */
static	ANTLR3_BITWORD FOLLOW_k_when_in_exit_statement_sub4089_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_when_in_exit_statement_sub4089	= { FOLLOW_k_when_in_exit_statement_sub4089_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_exit_statement_sub4091  */
static	ANTLR3_BITWORD FOLLOW_expression_in_exit_statement_sub4091_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_exit_statement_sub4091	= { FOLLOW_expression_in_exit_statement_sub4091_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fetch_statement_sub_in_fetch_statement4103  */
static	ANTLR3_BITWORD FOLLOW_fetch_statement_sub_in_fetch_statement4103_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_fetch_statement_sub_in_fetch_statement4103	= { FOLLOW_fetch_statement_sub_in_fetch_statement4103_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_fetch_in_fetch_statement_sub4117  */
static	ANTLR3_BITWORD FOLLOW_k_fetch_in_fetch_statement_sub4117_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000008100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_fetch_in_fetch_statement_sub4117	= { FOLLOW_k_fetch_in_fetch_statement_sub4117_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_qual_id_in_fetch_statement_sub4119  */
static	ANTLR3_BITWORD FOLLOW_qual_id_in_fetch_statement_sub4119_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0002000008000000) };
static  ANTLR3_BITSET_LIST FOLLOW_qual_id_in_fetch_statement_sub4119	= { FOLLOW_qual_id_in_fetch_statement_sub4119_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_into_clause_in_fetch_statement_sub4123  */
static	ANTLR3_BITWORD FOLLOW_into_clause_in_fetch_statement_sub4123_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_into_clause_in_fetch_statement_sub4123	= { FOLLOW_into_clause_in_fetch_statement_sub4123_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bulk_collect_into_clause_in_fetch_statement_sub4127  */
static	ANTLR3_BITWORD FOLLOW_bulk_collect_into_clause_in_fetch_statement_sub4127_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0010000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_bulk_collect_into_clause_in_fetch_statement_sub4127	= { FOLLOW_bulk_collect_into_clause_in_fetch_statement_sub4127_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_limit_in_fetch_statement_sub4131  */
static	ANTLR3_BITWORD FOLLOW_k_limit_in_fetch_statement_sub4131_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_limit_in_fetch_statement_sub4131	= { FOLLOW_k_limit_in_fetch_statement_sub4131_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_fetch_statement_sub4133  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_fetch_statement_sub4133_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_fetch_statement_sub4133	= { FOLLOW_numeric_expression_in_fetch_statement_sub4133_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_into_in_into_clause4159  */
static	ANTLR3_BITWORD FOLLOW_k_into_in_into_clause4159_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_k_into_in_into_clause4159	= { FOLLOW_k_into_in_into_clause4159_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_into_clause4161  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_into_clause4161_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_into_clause4161	= { FOLLOW_lvalue_in_into_clause4161_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_into_clause4165  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_into_clause4165_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_into_clause4165	= { FOLLOW_COMMA_in_into_clause4165_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_into_clause4167  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_into_clause4167_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_into_clause4167	= { FOLLOW_lvalue_in_into_clause4167_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_bulk_in_bulk_collect_into_clause4195  */
static	ANTLR3_BITWORD FOLLOW_k_bulk_in_bulk_collect_into_clause4195_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000100000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_bulk_in_bulk_collect_into_clause4195	= { FOLLOW_k_bulk_in_bulk_collect_into_clause4195_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_collect_in_bulk_collect_into_clause4197  */
static	ANTLR3_BITWORD FOLLOW_k_collect_in_bulk_collect_into_clause4197_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0002000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_collect_in_bulk_collect_into_clause4197	= { FOLLOW_k_collect_in_bulk_collect_into_clause4197_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_into_in_bulk_collect_into_clause4199  */
static	ANTLR3_BITWORD FOLLOW_k_into_in_bulk_collect_into_clause4199_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_k_into_in_bulk_collect_into_clause4199	= { FOLLOW_k_into_in_bulk_collect_into_clause4199_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_bulk_collect_into_clause4201  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_bulk_collect_into_clause4201_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_bulk_collect_into_clause4201	= { FOLLOW_lvalue_in_bulk_collect_into_clause4201_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bulk_collect_into_clause4205  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bulk_collect_into_clause4205_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bulk_collect_into_clause4205	= { FOLLOW_COMMA_in_bulk_collect_into_clause4205_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_bulk_collect_into_clause4207  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_bulk_collect_into_clause4207_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_bulk_collect_into_clause4207	= { FOLLOW_lvalue_in_bulk_collect_into_clause4207_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_USING_in_using_clause4231  */
static	ANTLR3_BITWORD FOLLOW_K_USING_in_using_clause4231_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308364000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_K_USING_in_using_clause4231	= { FOLLOW_K_USING_in_using_clause4231_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_param_modifiers_in_using_clause4233  */
static	ANTLR3_BITWORD FOLLOW_param_modifiers_in_using_clause4233_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_param_modifiers_in_using_clause4233	= { FOLLOW_param_modifiers_in_using_clause4233_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_using_clause4236  */
static	ANTLR3_BITWORD FOLLOW_expression_in_using_clause4236_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_using_clause4236	= { FOLLOW_expression_in_using_clause4236_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_using_clause4240  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_using_clause4240_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308364000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_using_clause4240	= { FOLLOW_COMMA_in_using_clause4240_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_param_modifiers_in_using_clause4242  */
static	ANTLR3_BITWORD FOLLOW_param_modifiers_in_using_clause4242_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_param_modifiers_in_using_clause4242	= { FOLLOW_param_modifiers_in_using_clause4242_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_using_clause4245  */
static	ANTLR3_BITWORD FOLLOW_expression_in_using_clause4245_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_using_clause4245	= { FOLLOW_expression_in_using_clause4245_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_IN_in_param_modifiers4262  */
static	ANTLR3_BITWORD FOLLOW_K_IN_in_param_modifiers4262_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000040000) };
static  ANTLR3_BITSET_LIST FOLLOW_K_IN_in_param_modifiers4262	= { FOLLOW_K_IN_in_param_modifiers4262_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_OUT_in_param_modifiers4264  */
static	ANTLR3_BITWORD FOLLOW_K_OUT_in_param_modifiers4264_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_K_OUT_in_param_modifiers4264	= { FOLLOW_K_OUT_in_param_modifiers4264_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_OUT_in_param_modifiers4269  */
static	ANTLR3_BITWORD FOLLOW_K_OUT_in_param_modifiers4269_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_K_OUT_in_param_modifiers4269	= { FOLLOW_K_OUT_in_param_modifiers4269_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_returning_in_dynamic_returning_clause4289  */
static	ANTLR3_BITWORD FOLLOW_k_returning_in_dynamic_returning_clause4289_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0002000008000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_returning_in_dynamic_returning_clause4289	= { FOLLOW_k_returning_in_dynamic_returning_clause4289_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_dynamic_returning_clause4293  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_dynamic_returning_clause4293_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0002000008000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_dynamic_returning_clause4293	= { FOLLOW_k_return_in_dynamic_returning_clause4293_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_into_clause_in_dynamic_returning_clause4299  */
static	ANTLR3_BITWORD FOLLOW_into_clause_in_dynamic_returning_clause4299_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_into_clause_in_dynamic_returning_clause4299	= { FOLLOW_into_clause_in_dynamic_returning_clause4299_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bulk_collect_into_clause_in_dynamic_returning_clause4303  */
static	ANTLR3_BITWORD FOLLOW_bulk_collect_into_clause_in_dynamic_returning_clause4303_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_bulk_collect_into_clause_in_dynamic_returning_clause4303	= { FOLLOW_bulk_collect_into_clause_in_dynamic_returning_clause4303_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_for_loop_statement_sub_in_for_loop_statement4318  */
static	ANTLR3_BITWORD FOLLOW_for_loop_statement_sub_in_for_loop_statement4318_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_for_loop_statement_sub_in_for_loop_statement4318	= { FOLLOW_for_loop_statement_sub_in_for_loop_statement4318_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_for_in_for_loop_statement_sub4332  */
static	ANTLR3_BITWORD FOLLOW_k_for_in_for_loop_statement_sub4332_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_for_in_for_loop_statement_sub4332	= { FOLLOW_k_for_in_for_loop_statement_sub4332_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_for_loop_statement_sub4334  */
static	ANTLR3_BITWORD FOLLOW_ID_in_for_loop_statement_sub4334_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_for_loop_statement_sub4334	= { FOLLOW_ID_in_for_loop_statement_sub4334_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_IN_in_for_loop_statement_sub4336  */
static	ANTLR3_BITWORD FOLLOW_K_IN_in_for_loop_statement_sub4336_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xBFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_K_IN_in_for_loop_statement_sub4336	= { FOLLOW_K_IN_in_for_loop_statement_sub4336_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_for_loop_statement_sub4340  */
static	ANTLR3_BITWORD FOLLOW_set_in_for_loop_statement_sub4340_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_for_loop_statement_sub4340	= { FOLLOW_set_in_for_loop_statement_sub4340_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_for_loop_statement_sub4348  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_for_loop_statement_sub4348_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_for_loop_statement_sub4348	= { FOLLOW_k_loop_in_for_loop_statement_sub4348_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_for_loop_statement_sub4350  */
static	ANTLR3_BITWORD FOLLOW_statement_in_for_loop_statement_sub4350_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A175A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_for_loop_statement_sub4350	= { FOLLOW_statement_in_for_loop_statement_sub4350_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_for_loop_statement_sub4353  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_for_loop_statement_sub4353_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x4000000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_for_loop_statement_sub4353	= { FOLLOW_k_end_in_for_loop_statement_sub4353_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_for_loop_statement_sub4355  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_for_loop_statement_sub4355_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_for_loop_statement_sub4355	= { FOLLOW_k_loop_in_for_loop_statement_sub4355_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_label_name_in_for_loop_statement_sub4357  */
static	ANTLR3_BITWORD FOLLOW_label_name_in_for_loop_statement_sub4357_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_label_name_in_for_loop_statement_sub4357	= { FOLLOW_label_name_in_for_loop_statement_sub4357_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_forall_statement_sub_in_forall_statement4367  */
static	ANTLR3_BITWORD FOLLOW_forall_statement_sub_in_forall_statement4367_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_forall_statement_sub_in_forall_statement4367	= { FOLLOW_forall_statement_sub_in_forall_statement4367_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_forall_in_forall_statement_sub4389  */
static	ANTLR3_BITWORD FOLLOW_k_forall_in_forall_statement_sub4389_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_forall_in_forall_statement_sub4389	= { FOLLOW_k_forall_in_forall_statement_sub4389_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_forall_statement_sub4391  */
static	ANTLR3_BITWORD FOLLOW_ID_in_forall_statement_sub4391_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_forall_statement_sub4391	= { FOLLOW_ID_in_forall_statement_sub4391_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_IN_in_forall_statement_sub4393  */
static	ANTLR3_BITWORD FOLLOW_K_IN_in_forall_statement_sub4393_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_K_IN_in_forall_statement_sub4393	= { FOLLOW_K_IN_in_forall_statement_sub4393_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bounds_clause_in_forall_statement_sub4395  */
static	ANTLR3_BITWORD FOLLOW_bounds_clause_in_forall_statement_sub4395_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000104000), ANTLR3_UINT64_LIT(0x3821000200110028), ANTLR3_UINT64_LIT(0x0000000001000020) };
static  ANTLR3_BITSET_LIST FOLLOW_bounds_clause_in_forall_statement_sub4395	= { FOLLOW_bounds_clause_in_forall_statement_sub4395_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kSAVE_in_forall_statement_sub4421  */
static	ANTLR3_BITWORD FOLLOW_kSAVE_in_forall_statement_sub4421_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kSAVE_in_forall_statement_sub4421	= { FOLLOW_kSAVE_in_forall_statement_sub4421_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kEXCEPTIONS_in_forall_statement_sub4423  */
static	ANTLR3_BITWORD FOLLOW_kEXCEPTIONS_in_forall_statement_sub4423_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x3821000200110020), ANTLR3_UINT64_LIT(0x0000000001000020) };
static  ANTLR3_BITSET_LIST FOLLOW_kEXCEPTIONS_in_forall_statement_sub4423	= { FOLLOW_kEXCEPTIONS_in_forall_statement_sub4423_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_sql_statement_in_forall_statement_sub4427  */
static	ANTLR3_BITWORD FOLLOW_sql_statement_in_forall_statement_sub4427_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_sql_statement_in_forall_statement_sub4427	= { FOLLOW_sql_statement_in_forall_statement_sub4427_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_sql_statement_in_forall_statement_sub4441  */
static	ANTLR3_BITWORD FOLLOW_sql_statement_in_forall_statement_sub4441_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_sql_statement_in_forall_statement_sub4441	= { FOLLOW_sql_statement_in_forall_statement_sub4441_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kSAVE_in_forall_statement_sub4445  */
static	ANTLR3_BITWORD FOLLOW_kSAVE_in_forall_statement_sub4445_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kSAVE_in_forall_statement_sub4445	= { FOLLOW_kSAVE_in_forall_statement_sub4445_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kEXCEPTIONS_in_forall_statement_sub4447  */
static	ANTLR3_BITWORD FOLLOW_kEXCEPTIONS_in_forall_statement_sub4447_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_kEXCEPTIONS_in_forall_statement_sub4447	= { FOLLOW_kEXCEPTIONS_in_forall_statement_sub4447_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_execute_immediate_statement_in_forall_statement_sub4464  */
static	ANTLR3_BITWORD FOLLOW_execute_immediate_statement_in_forall_statement_sub4464_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_execute_immediate_statement_in_forall_statement_sub4464	= { FOLLOW_execute_immediate_statement_in_forall_statement_sub4464_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_bounds_clause4493  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_bounds_clause4493_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000001000000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_bounds_clause4493	= { FOLLOW_numeric_expression_in_bounds_clause4493_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOUBLEDOT_in_bounds_clause4495  */
static	ANTLR3_BITWORD FOLLOW_DOUBLEDOT_in_bounds_clause4495_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_DOUBLEDOT_in_bounds_clause4495	= { FOLLOW_DOUBLEDOT_in_bounds_clause4495_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_bounds_clause4497  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_bounds_clause4497_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_bounds_clause4497	= { FOLLOW_numeric_expression_in_bounds_clause4497_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kINDICES_in_bounds_clause4505  */
static	ANTLR3_BITWORD FOLLOW_kINDICES_in_bounds_clause4505_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kINDICES_in_bounds_clause4505	= { FOLLOW_kINDICES_in_bounds_clause4505_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kOF_in_bounds_clause4507  */
static	ANTLR3_BITWORD FOLLOW_kOF_in_bounds_clause4507_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_kOF_in_bounds_clause4507	= { FOLLOW_kOF_in_bounds_clause4507_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atom_in_bounds_clause4509  */
static	ANTLR3_BITWORD FOLLOW_atom_in_bounds_clause4509_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000002000000) };
static  ANTLR3_BITSET_LIST FOLLOW_atom_in_bounds_clause4509	= { FOLLOW_atom_in_bounds_clause4509_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_between_in_bounds_clause4513  */
static	ANTLR3_BITWORD FOLLOW_k_between_in_bounds_clause4513_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_between_in_bounds_clause4513	= { FOLLOW_k_between_in_bounds_clause4513_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_bounds_clause4515  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_bounds_clause4515_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_bounds_clause4515	= { FOLLOW_numeric_expression_in_bounds_clause4515_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_and_in_bounds_clause4517  */
static	ANTLR3_BITWORD FOLLOW_k_and_in_bounds_clause4517_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_and_in_bounds_clause4517	= { FOLLOW_k_and_in_bounds_clause4517_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_bounds_clause4519  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_bounds_clause4519_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_bounds_clause4519	= { FOLLOW_numeric_expression_in_bounds_clause4519_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kVALUES_in_bounds_clause4530  */
static	ANTLR3_BITWORD FOLLOW_kVALUES_in_bounds_clause4530_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kVALUES_in_bounds_clause4530	= { FOLLOW_kVALUES_in_bounds_clause4530_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kOF_in_bounds_clause4532  */
static	ANTLR3_BITWORD FOLLOW_kOF_in_bounds_clause4532_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_kOF_in_bounds_clause4532	= { FOLLOW_kOF_in_bounds_clause4532_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atom_in_bounds_clause4534  */
static	ANTLR3_BITWORD FOLLOW_atom_in_bounds_clause4534_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_atom_in_bounds_clause4534	= { FOLLOW_atom_in_bounds_clause4534_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_goto_in_goto_statement4547  */
static	ANTLR3_BITWORD FOLLOW_k_goto_in_goto_statement4547_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_goto_in_goto_statement4547	= { FOLLOW_k_goto_in_goto_statement4547_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_label_name_in_goto_statement4549  */
static	ANTLR3_BITWORD FOLLOW_label_name_in_goto_statement4549_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_label_name_in_goto_statement4549	= { FOLLOW_label_name_in_goto_statement4549_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_if_statement_if_in_if_statement4604  */
static	ANTLR3_BITWORD FOLLOW_if_statement_if_in_if_statement4604_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000C000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_if_statement_if_in_if_statement4604	= { FOLLOW_if_statement_if_in_if_statement4604_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_if_statement_elsif_in_if_statement4614  */
static	ANTLR3_BITWORD FOLLOW_if_statement_elsif_in_if_statement4614_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000C000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_if_statement_elsif_in_if_statement4614	= { FOLLOW_if_statement_elsif_in_if_statement4614_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_if_statement_else_in_if_statement4625  */
static	ANTLR3_BITWORD FOLLOW_if_statement_else_in_if_statement4625_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000C000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_if_statement_else_in_if_statement4625	= { FOLLOW_if_statement_else_in_if_statement4625_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_if_statement_end_in_if_statement4630  */
static	ANTLR3_BITWORD FOLLOW_if_statement_end_in_if_statement4630_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_if_statement_end_in_if_statement4630	= { FOLLOW_if_statement_end_in_if_statement4630_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_if_in_if_statement_if4643  */
static	ANTLR3_BITWORD FOLLOW_k_if_in_if_statement_if4643_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_if_in_if_statement_if4643	= { FOLLOW_k_if_in_if_statement_if4643_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_if_statement_if4645  */
static	ANTLR3_BITWORD FOLLOW_expression_in_if_statement_if4645_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_if_statement_if4645	= { FOLLOW_expression_in_if_statement_if4645_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_then_in_if_statement_if4647  */
static	ANTLR3_BITWORD FOLLOW_k_then_in_if_statement_if4647_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_then_in_if_statement_if4647	= { FOLLOW_k_then_in_if_statement_if4647_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_if_statement_if4649  */
static	ANTLR3_BITWORD FOLLOW_statement_in_if_statement_if4649_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_if_statement_if4649	= { FOLLOW_statement_in_if_statement_if4649_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_elsif_in_if_statement_elsif4685  */
static	ANTLR3_BITWORD FOLLOW_k_elsif_in_if_statement_elsif4685_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_elsif_in_if_statement_elsif4685	= { FOLLOW_k_elsif_in_if_statement_elsif4685_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_if_statement_elsif4687  */
static	ANTLR3_BITWORD FOLLOW_expression_in_if_statement_elsif4687_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_if_statement_elsif4687	= { FOLLOW_expression_in_if_statement_elsif4687_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_then_in_if_statement_elsif4689  */
static	ANTLR3_BITWORD FOLLOW_k_then_in_if_statement_elsif4689_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_then_in_if_statement_elsif4689	= { FOLLOW_k_then_in_if_statement_elsif4689_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_if_statement_elsif4691  */
static	ANTLR3_BITWORD FOLLOW_statement_in_if_statement_elsif4691_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_if_statement_elsif4691	= { FOLLOW_statement_in_if_statement_elsif4691_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_else_in_if_statement_else4723  */
static	ANTLR3_BITWORD FOLLOW_k_else_in_if_statement_else4723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_else_in_if_statement_else4723	= { FOLLOW_k_else_in_if_statement_else4723_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_if_statement_else4725  */
static	ANTLR3_BITWORD FOLLOW_statement_in_if_statement_else4725_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_if_statement_else4725	= { FOLLOW_statement_in_if_statement_else4725_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_if_statement_end4773  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_if_statement_end4773_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000400000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_if_statement_end4773	= { FOLLOW_k_end_in_if_statement_end4773_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_if_in_if_statement_end4775  */
static	ANTLR3_BITWORD FOLLOW_k_if_in_if_statement_end4775_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_if_in_if_statement_end4775	= { FOLLOW_k_if_in_if_statement_end4775_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_while_loop_statement_sub_in_while_loop_statement4794  */
static	ANTLR3_BITWORD FOLLOW_while_loop_statement_sub_in_while_loop_statement4794_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_while_loop_statement_sub_in_while_loop_statement4794	= { FOLLOW_while_loop_statement_sub_in_while_loop_statement4794_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_while_in_while_loop_statement_sub4808  */
static	ANTLR3_BITWORD FOLLOW_k_while_in_while_loop_statement_sub4808_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_while_in_while_loop_statement_sub4808	= { FOLLOW_k_while_in_while_loop_statement_sub4808_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_while_loop_statement_sub4810  */
static	ANTLR3_BITWORD FOLLOW_expression_in_while_loop_statement_sub4810_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x4000000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_while_loop_statement_sub4810	= { FOLLOW_expression_in_while_loop_statement_sub4810_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_while_loop_statement_sub4812  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_while_loop_statement_sub4812_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_while_loop_statement_sub4812	= { FOLLOW_k_loop_in_while_loop_statement_sub4812_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_while_loop_statement_sub4814  */
static	ANTLR3_BITWORD FOLLOW_statement_in_while_loop_statement_sub4814_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A175A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_while_loop_statement_sub4814	= { FOLLOW_statement_in_while_loop_statement_sub4814_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_while_loop_statement_sub4817  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_while_loop_statement_sub4817_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x4000000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_while_loop_statement_sub4817	= { FOLLOW_k_end_in_while_loop_statement_sub4817_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_while_loop_statement_sub4819  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_while_loop_statement_sub4819_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_while_loop_statement_sub4819	= { FOLLOW_k_loop_in_while_loop_statement_sub4819_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_label_name_in_while_loop_statement_sub4821  */
static	ANTLR3_BITWORD FOLLOW_label_name_in_while_loop_statement_sub4821_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_label_name_in_while_loop_statement_sub4821	= { FOLLOW_label_name_in_while_loop_statement_sub4821_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_pipe_row_statement_sub_in_pipe_row_statement4831  */
static	ANTLR3_BITWORD FOLLOW_pipe_row_statement_sub_in_pipe_row_statement4831_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_pipe_row_statement_sub_in_pipe_row_statement4831	= { FOLLOW_pipe_row_statement_sub_in_pipe_row_statement4831_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_pipe_in_pipe_row_statement_sub4845  */
static	ANTLR3_BITWORD FOLLOW_k_pipe_in_pipe_row_statement_sub4845_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000004000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_pipe_in_pipe_row_statement_sub4845	= { FOLLOW_k_pipe_in_pipe_row_statement_sub4845_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_row_in_pipe_row_statement_sub4847  */
static	ANTLR3_BITWORD FOLLOW_k_row_in_pipe_row_statement_sub4847_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_row_in_pipe_row_statement_sub4847	= { FOLLOW_k_row_in_pipe_row_statement_sub4847_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_pipe_row_statement_sub4849  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_pipe_row_statement_sub4849_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_pipe_row_statement_sub4849	= { FOLLOW_LPAREN_in_pipe_row_statement_sub4849_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_pipe_row_statement_sub4851  */
static	ANTLR3_BITWORD FOLLOW_expression_in_pipe_row_statement_sub4851_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_pipe_row_statement_sub4851	= { FOLLOW_expression_in_pipe_row_statement_sub4851_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_pipe_row_statement_sub4853  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_pipe_row_statement_sub4853_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_pipe_row_statement_sub4853	= { FOLLOW_RPAREN_in_pipe_row_statement_sub4853_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_null_statement4862  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_null_statement4862_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_null_statement4862	= { FOLLOW_k_null_in_null_statement4862_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_open_statement_sub_in_open_statement4878  */
static	ANTLR3_BITWORD FOLLOW_open_statement_sub_in_open_statement4878_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_open_statement_sub_in_open_statement4878	= { FOLLOW_open_statement_sub_in_open_statement4878_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_open_in_open_statement_sub4892  */
static	ANTLR3_BITWORD FOLLOW_k_open_in_open_statement_sub4892_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000800008100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_open_in_open_statement_sub4892	= { FOLLOW_k_open_in_open_statement_sub4892_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cursor_name_in_open_statement_sub4894  */
static	ANTLR3_BITWORD FOLLOW_cursor_name_in_open_statement_sub4894_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000804000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_cursor_name_in_open_statement_sub4894	= { FOLLOW_cursor_name_in_open_statement_sub4894_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_args_in_open_statement_sub4896  */
static	ANTLR3_BITWORD FOLLOW_call_args_in_open_statement_sub4896_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000800000), ANTLR3_UINT64_LIT(0x0000080000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_args_in_open_statement_sub4896	= { FOLLOW_call_args_in_open_statement_sub4896_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_for_in_open_statement_sub4901  */
static	ANTLR3_BITWORD FOLLOW_k_for_in_open_statement_sub4901_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x6180020820100007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_for_in_open_statement_sub4901	= { FOLLOW_k_for_in_open_statement_sub4901_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_select_statement_in_open_statement_sub4904  */
static	ANTLR3_BITWORD FOLLOW_select_statement_in_open_statement_sub4904_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_select_statement_in_open_statement_sub4904	= { FOLLOW_select_statement_in_open_statement_sub4904_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_open_statement_sub4906  */
static	ANTLR3_BITWORD FOLLOW_expression_in_open_statement_sub4906_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_open_statement_sub4906	= { FOLLOW_expression_in_open_statement_sub4906_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_USING_in_open_statement_sub4913  */
static	ANTLR3_BITWORD FOLLOW_K_USING_in_open_statement_sub4913_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_K_USING_in_open_statement_sub4913	= { FOLLOW_K_USING_in_open_statement_sub4913_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_open_statement_sub4915  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_open_statement_sub4915_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_open_statement_sub4915	= { FOLLOW_lvalue_in_open_statement_sub4915_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_open_statement_sub4919  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_open_statement_sub4919_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_open_statement_sub4919	= { FOLLOW_COMMA_in_open_statement_sub4919_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_open_statement_sub4921  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_open_statement_sub4921_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000008000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_open_statement_sub4921	= { FOLLOW_lvalue_in_open_statement_sub4921_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_pragma_in_pragma4936  */
static	ANTLR3_BITWORD FOLLOW_k_pragma_in_pragma4936_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_pragma_in_pragma4936	= { FOLLOW_k_pragma_in_pragma4936_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_pragma4938  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_pragma4938_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_pragma4938	= { FOLLOW_swallow_to_semi_in_pragma4938_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_pragma4940  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_pragma4940_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_pragma4940	= { FOLLOW_SEMI_in_pragma4940_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_raise_statement_sub_in_raise_statement4960  */
static	ANTLR3_BITWORD FOLLOW_raise_statement_sub_in_raise_statement4960_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_raise_statement_sub_in_raise_statement4960	= { FOLLOW_raise_statement_sub_in_raise_statement4960_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_raise_in_raise_statement_sub4974  */
static	ANTLR3_BITWORD FOLLOW_k_raise_in_raise_statement_sub4974_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_k_raise_in_raise_statement_sub4974	= { FOLLOW_k_raise_in_raise_statement_sub4974_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_raise_statement_sub4979  */
static	ANTLR3_BITWORD FOLLOW_ID_in_raise_statement_sub4979_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_raise_statement_sub4979	= { FOLLOW_ID_in_raise_statement_sub4979_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_raise_statement_sub4981  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_raise_statement_sub4981_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_raise_statement_sub4981	= { FOLLOW_DOT_in_raise_statement_sub4981_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_name_in_raise_statement_sub4985  */
static	ANTLR3_BITWORD FOLLOW_exception_name_in_raise_statement_sub4985_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_name_in_raise_statement_sub4985	= { FOLLOW_exception_name_in_raise_statement_sub4985_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_return_statement_sub_in_return_statement4997  */
static	ANTLR3_BITWORD FOLLOW_return_statement_sub_in_return_statement4997_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_return_statement_sub_in_return_statement4997	= { FOLLOW_return_statement_sub_in_return_statement4997_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_return_statement_sub5011  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_return_statement_sub5011_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_return_statement_sub5011	= { FOLLOW_k_return_in_return_statement_sub5011_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_return_statement_sub5013  */
static	ANTLR3_BITWORD FOLLOW_expression_in_return_statement_sub5013_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_return_statement_sub5013	= { FOLLOW_expression_in_return_statement_sub5013_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_declare_in_declare_block5024  */
static	ANTLR3_BITWORD FOLLOW_k_declare_in_declare_block5024_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_declare_in_declare_block5024	= { FOLLOW_k_declare_in_declare_block5024_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_declare_block5026  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_declare_block5026_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_declare_block5026	= { FOLLOW_declare_section_in_declare_block5026_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_begin_in_body5051  */
static	ANTLR3_BITWORD FOLLOW_k_begin_in_body5051_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_begin_in_body5051	= { FOLLOW_k_begin_in_body5051_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_pragma_in_body5053  */
static	ANTLR3_BITWORD FOLLOW_pragma_in_body5053_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_pragma_in_body5053	= { FOLLOW_pragma_in_body5053_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_body5056  */
static	ANTLR3_BITWORD FOLLOW_statement_in_body5056_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_body5056	= { FOLLOW_statement_in_body5056_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_sub_in_exception_handler5081  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_sub_in_exception_handler5081_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_sub_in_exception_handler5081	= { FOLLOW_exception_handler_sub_in_exception_handler5081_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_exception_in_exception_handler_sub5096  */
static	ANTLR3_BITWORD FOLLOW_k_exception_in_exception_handler_sub5096_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000110000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_exception_in_exception_handler_sub5096	= { FOLLOW_k_exception_in_exception_handler_sub5096_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_when_in_exception_handler_sub5120  */
static	ANTLR3_BITWORD FOLLOW_k_when_in_exception_handler_sub5120_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000008100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000008000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_when_in_exception_handler_sub5120	= { FOLLOW_k_when_in_exception_handler_sub5120_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_qual_id_in_exception_handler_sub5124  */
static	ANTLR3_BITWORD FOLLOW_qual_id_in_exception_handler_sub5124_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
static  ANTLR3_BITSET_LIST FOLLOW_qual_id_in_exception_handler_sub5124	= { FOLLOW_qual_id_in_exception_handler_sub5124_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_exception_handler_sub5128  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_exception_handler_sub5128_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000008100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_exception_handler_sub5128	= { FOLLOW_k_or_in_exception_handler_sub5128_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_qual_id_in_exception_handler_sub5130  */
static	ANTLR3_BITWORD FOLLOW_qual_id_in_exception_handler_sub5130_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
static  ANTLR3_BITSET_LIST FOLLOW_qual_id_in_exception_handler_sub5130	= { FOLLOW_qual_id_in_exception_handler_sub5130_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_others_in_exception_handler_sub5137  */
static	ANTLR3_BITWORD FOLLOW_k_others_in_exception_handler_sub5137_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
static  ANTLR3_BITSET_LIST FOLLOW_k_others_in_exception_handler_sub5137	= { FOLLOW_k_others_in_exception_handler_sub5137_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_then_in_exception_handler_sub5153  */
static	ANTLR3_BITWORD FOLLOW_k_then_in_exception_handler_sub5153_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_k_then_in_exception_handler_sub5153	= { FOLLOW_k_then_in_exception_handler_sub5153_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_exception_handler_sub5155  */
static	ANTLR3_BITWORD FOLLOW_statement_in_exception_handler_sub5155_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080330A344000), ANTLR3_UINT64_LIT(0x79A17E0AA0110CEF), ANTLR3_UINT64_LIT(0x00001311A161ABF4) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_exception_handler_sub5155	= { FOLLOW_statement_in_exception_handler_sub5155_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_block_in_plsql_block5178  */
static	ANTLR3_BITWORD FOLLOW_declare_block_in_plsql_block5178_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_block_in_plsql_block5178	= { FOLLOW_declare_block_in_plsql_block5178_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_body_in_plsql_block5181  */
static	ANTLR3_BITWORD FOLLOW_body_in_plsql_block5181_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_body_in_plsql_block5181	= { FOLLOW_body_in_plsql_block5181_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_in_plsql_block5183  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_in_plsql_block5183_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_in_plsql_block5183	= { FOLLOW_exception_handler_in_plsql_block5183_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_plsql_block5186  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_plsql_block5186_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_plsql_block5186	= { FOLLOW_k_end_in_plsql_block5186_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_plsql_block5188  */
static	ANTLR3_BITWORD FOLLOW_ID_in_plsql_block5188_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_plsql_block5188	= { FOLLOW_ID_in_plsql_block5188_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LLABEL_in_label5229  */
static	ANTLR3_BITWORD FOLLOW_LLABEL_in_label5229_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_LLABEL_in_label5229	= { FOLLOW_LLABEL_in_label5229_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_label_name_in_label5231  */
static	ANTLR3_BITWORD FOLLOW_label_name_in_label5231_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000004000000) };
static  ANTLR3_BITSET_LIST FOLLOW_label_name_in_label5231	= { FOLLOW_label_name_in_label5231_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RLABEL_in_label5233  */
static	ANTLR3_BITWORD FOLLOW_RLABEL_in_label5233_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RLABEL_in_label5233	= { FOLLOW_RLABEL_in_label5233_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_qual_id5250  */
static	ANTLR3_BITWORD FOLLOW_COLON_in_qual_id5250_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_qual_id5250	= { FOLLOW_COLON_in_qual_id5250_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_qual_id5253  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_qual_id5253_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_qual_id5253	= { FOLLOW_identifier_in_qual_id5253_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_qual_id5258  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_qual_id5258_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_qual_id5258	= { FOLLOW_DOT_in_qual_id5258_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_qual_id5260  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_qual_id5260_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_qual_id5260	= { FOLLOW_identifier_in_qual_id5260_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_schema_name5278  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_schema_name5278_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_schema_name5278	= { FOLLOW_identifier_in_schema_name5278_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_object_attribute_name5290  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_object_attribute_name5290_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_object_attribute_name5290	= { FOLLOW_identifier_in_object_attribute_name5290_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_cursor_name5303  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_cursor_name5303_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_cursor_name5303	= { FOLLOW_schema_name_in_cursor_name5303_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_cursor_name5305  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_cursor_name5305_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_cursor_name5305	= { FOLLOW_DOT_in_cursor_name5305_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_cursor_name5309  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_cursor_name5309_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_cursor_name5309	= { FOLLOW_identifier_in_cursor_name5309_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bindvar_in_cursor_name5315  */
static	ANTLR3_BITWORD FOLLOW_bindvar_in_cursor_name5315_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_bindvar_in_cursor_name5315	= { FOLLOW_bindvar_in_cursor_name5315_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_cursor_name5320  */
static	ANTLR3_BITWORD FOLLOW_COLON_in_cursor_name5320_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_cursor_name5320	= { FOLLOW_COLON_in_cursor_name5320_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_cursor_name5322  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_cursor_name5322_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_cursor_name5322	= { FOLLOW_identifier_in_cursor_name5322_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_variable_name5341  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_variable_name5341_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_variable_name5341	= { FOLLOW_identifier_in_variable_name5341_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_127_in_variable_name5347  */
static	ANTLR3_BITWORD FOLLOW_127_in_variable_name5347_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_127_in_variable_name5347	= { FOLLOW_127_in_variable_name5347_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_128_in_variable_name5355  */
static	ANTLR3_BITWORD FOLLOW_128_in_variable_name5355_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_128_in_variable_name5355	= { FOLLOW_128_in_variable_name5355_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_OUT_in_variable_name5360  */
static	ANTLR3_BITWORD FOLLOW_K_OUT_in_variable_name5360_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_K_OUT_in_variable_name5360	= { FOLLOW_K_OUT_in_variable_name5360_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_129_in_variable_name5365  */
static	ANTLR3_BITWORD FOLLOW_129_in_variable_name5365_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_129_in_variable_name5365	= { FOLLOW_129_in_variable_name5365_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_130_in_variable_name5370  */
static	ANTLR3_BITWORD FOLLOW_130_in_variable_name5370_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_130_in_variable_name5370	= { FOLLOW_130_in_variable_name5370_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_variable_name_ex5388  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_variable_name_ex5388_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_variable_name_ex5388	= { FOLLOW_identifier_in_variable_name_ex5388_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_127_in_variable_name_ex5396  */
static	ANTLR3_BITWORD FOLLOW_127_in_variable_name_ex5396_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_127_in_variable_name_ex5396	= { FOLLOW_127_in_variable_name_ex5396_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_128_in_variable_name_ex5404  */
static	ANTLR3_BITWORD FOLLOW_128_in_variable_name_ex5404_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_128_in_variable_name_ex5404	= { FOLLOW_128_in_variable_name_ex5404_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_131_in_variable_name_ex5410  */
static	ANTLR3_BITWORD FOLLOW_131_in_variable_name_ex5410_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_131_in_variable_name_ex5410	= { FOLLOW_131_in_variable_name_ex5410_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_129_in_variable_name_ex5416  */
static	ANTLR3_BITWORD FOLLOW_129_in_variable_name_ex5416_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_129_in_variable_name_ex5416	= { FOLLOW_129_in_variable_name_ex5416_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_130_in_variable_name_ex5421  */
static	ANTLR3_BITWORD FOLLOW_130_in_variable_name_ex5421_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_130_in_variable_name_ex5421	= { FOLLOW_130_in_variable_name_ex5421_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_132_in_variable_name_ex5435  */
static	ANTLR3_BITWORD FOLLOW_132_in_variable_name_ex5435_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_132_in_variable_name_ex5435	= { FOLLOW_132_in_variable_name_ex5435_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_133_in_variable_name_ex5443  */
static	ANTLR3_BITWORD FOLLOW_133_in_variable_name_ex5443_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_133_in_variable_name_ex5443	= { FOLLOW_133_in_variable_name_ex5443_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_134_in_variable_name_ex5451  */
static	ANTLR3_BITWORD FOLLOW_134_in_variable_name_ex5451_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_134_in_variable_name_ex5451	= { FOLLOW_134_in_variable_name_ex5451_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_135_in_variable_name_ex5456  */
static	ANTLR3_BITWORD FOLLOW_135_in_variable_name_ex5456_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_135_in_variable_name_ex5456	= { FOLLOW_135_in_variable_name_ex5456_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_136_in_variable_name_ex5464  */
static	ANTLR3_BITWORD FOLLOW_136_in_variable_name_ex5464_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_136_in_variable_name_ex5464	= { FOLLOW_136_in_variable_name_ex5464_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_parameter_name5490  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_parameter_name5490_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_parameter_name5490	= { FOLLOW_identifier_in_parameter_name5490_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_127_in_parameter_name5496  */
static	ANTLR3_BITWORD FOLLOW_127_in_parameter_name5496_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_127_in_parameter_name5496	= { FOLLOW_127_in_parameter_name5496_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_128_in_parameter_name5504  */
static	ANTLR3_BITWORD FOLLOW_128_in_parameter_name5504_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_128_in_parameter_name5504	= { FOLLOW_128_in_parameter_name5504_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_129_in_parameter_name5511  */
static	ANTLR3_BITWORD FOLLOW_129_in_parameter_name5511_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_129_in_parameter_name5511	= { FOLLOW_129_in_parameter_name5511_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_130_in_parameter_name5516  */
static	ANTLR3_BITWORD FOLLOW_130_in_parameter_name5516_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_130_in_parameter_name5516	= { FOLLOW_130_in_parameter_name5516_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_column_name5534  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_column_name5534_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_column_name5534	= { FOLLOW_identifier_in_column_name5534_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_127_in_column_name5542  */
static	ANTLR3_BITWORD FOLLOW_127_in_column_name5542_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_127_in_column_name5542	= { FOLLOW_127_in_column_name5542_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_128_in_column_name5550  */
static	ANTLR3_BITWORD FOLLOW_128_in_column_name5550_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_128_in_column_name5550	= { FOLLOW_128_in_column_name5550_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_131_in_column_name5556  */
static	ANTLR3_BITWORD FOLLOW_131_in_column_name5556_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_131_in_column_name5556	= { FOLLOW_131_in_column_name5556_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_129_in_column_name5562  */
static	ANTLR3_BITWORD FOLLOW_129_in_column_name5562_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_129_in_column_name5562	= { FOLLOW_129_in_column_name5562_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_130_in_column_name5567  */
static	ANTLR3_BITWORD FOLLOW_130_in_column_name5567_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_130_in_column_name5567	= { FOLLOW_130_in_column_name5567_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_132_in_column_name5581  */
static	ANTLR3_BITWORD FOLLOW_132_in_column_name5581_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_132_in_column_name5581	= { FOLLOW_132_in_column_name5581_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_133_in_column_name5589  */
static	ANTLR3_BITWORD FOLLOW_133_in_column_name5589_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_133_in_column_name5589	= { FOLLOW_133_in_column_name5589_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_134_in_column_name5597  */
static	ANTLR3_BITWORD FOLLOW_134_in_column_name5597_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_134_in_column_name5597	= { FOLLOW_134_in_column_name5597_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_procedure_name5615  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_procedure_name5615_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_procedure_name5615	= { FOLLOW_identifier_in_procedure_name5615_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_127_in_procedure_name5623  */
static	ANTLR3_BITWORD FOLLOW_127_in_procedure_name5623_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_127_in_procedure_name5623	= { FOLLOW_127_in_procedure_name5623_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_128_in_procedure_name5631  */
static	ANTLR3_BITWORD FOLLOW_128_in_procedure_name5631_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_128_in_procedure_name5631	= { FOLLOW_128_in_procedure_name5631_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_131_in_procedure_name5637  */
static	ANTLR3_BITWORD FOLLOW_131_in_procedure_name5637_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_131_in_procedure_name5637	= { FOLLOW_131_in_procedure_name5637_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_129_in_procedure_name5643  */
static	ANTLR3_BITWORD FOLLOW_129_in_procedure_name5643_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_129_in_procedure_name5643	= { FOLLOW_129_in_procedure_name5643_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_130_in_procedure_name5648  */
static	ANTLR3_BITWORD FOLLOW_130_in_procedure_name5648_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_130_in_procedure_name5648	= { FOLLOW_130_in_procedure_name5648_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_132_in_procedure_name5662  */
static	ANTLR3_BITWORD FOLLOW_132_in_procedure_name5662_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_132_in_procedure_name5662	= { FOLLOW_132_in_procedure_name5662_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_133_in_procedure_name5670  */
static	ANTLR3_BITWORD FOLLOW_133_in_procedure_name5670_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_133_in_procedure_name5670	= { FOLLOW_133_in_procedure_name5670_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_134_in_procedure_name5678  */
static	ANTLR3_BITWORD FOLLOW_134_in_procedure_name5678_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_134_in_procedure_name5678	= { FOLLOW_134_in_procedure_name5678_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_135_in_procedure_name5683  */
static	ANTLR3_BITWORD FOLLOW_135_in_procedure_name5683_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_135_in_procedure_name5683	= { FOLLOW_135_in_procedure_name5683_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_136_in_procedure_name5691  */
static	ANTLR3_BITWORD FOLLOW_136_in_procedure_name5691_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_136_in_procedure_name5691	= { FOLLOW_136_in_procedure_name5691_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_package_name_in_exception_name5705  */
static	ANTLR3_BITWORD FOLLOW_package_name_in_exception_name5705_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_package_name_in_exception_name5705	= { FOLLOW_package_name_in_exception_name5705_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_exception_name5708  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_exception_name5708_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_exception_name5708	= { FOLLOW_DOT_in_exception_name5708_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_exception_name5712  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_exception_name5712_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_exception_name5712	= { FOLLOW_identifier_in_exception_name5712_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_package_name5725  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_package_name5725_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_package_name5725	= { FOLLOW_identifier_in_package_name5725_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_137_in_package_name5731  */
static	ANTLR3_BITWORD FOLLOW_137_in_package_name5731_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_137_in_package_name5731	= { FOLLOW_137_in_package_name5731_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_identifier5745  */
static	ANTLR3_BITWORD FOLLOW_ID_in_identifier5745_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_identifier5745	= { FOLLOW_ID_in_identifier5745_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_commit_statement_in_sql_statement5779  */
static	ANTLR3_BITWORD FOLLOW_commit_statement_in_sql_statement5779_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_commit_statement_in_sql_statement5779	= { FOLLOW_commit_statement_in_sql_statement5779_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_delete_statement_in_sql_statement5795  */
static	ANTLR3_BITWORD FOLLOW_delete_statement_in_sql_statement5795_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_delete_statement_in_sql_statement5795	= { FOLLOW_delete_statement_in_sql_statement5795_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_insert_statement_in_sql_statement5811  */
static	ANTLR3_BITWORD FOLLOW_insert_statement_in_sql_statement5811_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_insert_statement_in_sql_statement5811	= { FOLLOW_insert_statement_in_sql_statement5811_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lock_table_statement_in_sql_statement5827  */
static	ANTLR3_BITWORD FOLLOW_lock_table_statement_in_sql_statement5827_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_lock_table_statement_in_sql_statement5827	= { FOLLOW_lock_table_statement_in_sql_statement5827_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_rollback_statement_in_sql_statement5843  */
static	ANTLR3_BITWORD FOLLOW_rollback_statement_in_sql_statement5843_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_rollback_statement_in_sql_statement5843	= { FOLLOW_rollback_statement_in_sql_statement5843_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_savepoint_statement_in_sql_statement5861  */
static	ANTLR3_BITWORD FOLLOW_savepoint_statement_in_sql_statement5861_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_savepoint_statement_in_sql_statement5861	= { FOLLOW_savepoint_statement_in_sql_statement5861_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_select_statement_in_sql_statement5878  */
static	ANTLR3_BITWORD FOLLOW_select_statement_in_sql_statement5878_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_select_statement_in_sql_statement5878	= { FOLLOW_select_statement_in_sql_statement5878_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_merge_statement_in_sql_statement5898  */
static	ANTLR3_BITWORD FOLLOW_merge_statement_in_sql_statement5898_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_merge_statement_in_sql_statement5898	= { FOLLOW_merge_statement_in_sql_statement5898_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_transaction_statement_in_sql_statement5919  */
static	ANTLR3_BITWORD FOLLOW_set_transaction_statement_in_sql_statement5919_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_set_transaction_statement_in_sql_statement5919	= { FOLLOW_set_transaction_statement_in_sql_statement5919_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_update_statement_in_sql_statement5935  */
static	ANTLR3_BITWORD FOLLOW_update_statement_in_sql_statement5935_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_update_statement_in_sql_statement5935	= { FOLLOW_update_statement_in_sql_statement5935_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_commit_in_commit_statement5968  */
static	ANTLR3_BITWORD FOLLOW_k_commit_in_commit_statement5968_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF2), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_commit_in_commit_statement5968	= { FOLLOW_k_commit_in_commit_statement5968_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_commit_statement5970  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_commit_statement5970_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_commit_statement5970	= { FOLLOW_swallow_to_semi_in_commit_statement5970_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_delete_in_delete_statement5992  */
static	ANTLR3_BITWORD FOLLOW_k_delete_in_delete_statement5992_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_delete_in_delete_statement5992	= { FOLLOW_k_delete_in_delete_statement5992_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_delete_statement5994  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_delete_statement5994_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_delete_statement5994	= { FOLLOW_swallow_to_semi_in_delete_statement5994_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_insert_in_insert_statement6015  */
static	ANTLR3_BITWORD FOLLOW_k_insert_in_insert_statement6015_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_insert_in_insert_statement6015	= { FOLLOW_k_insert_in_insert_statement6015_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_insert_statement6017  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_insert_statement6017_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_insert_statement6017	= { FOLLOW_swallow_to_semi_in_insert_statement6017_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_lock_in_lock_table_statement6038  */
static	ANTLR3_BITWORD FOLLOW_k_lock_in_lock_table_statement6038_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000000000), ANTLR3_UINT64_LIT(0x00000C0000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_lock_in_lock_table_statement6038	= { FOLLOW_k_lock_in_lock_table_statement6038_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_table_in_lock_table_statement6040  */
static	ANTLR3_BITWORD FOLLOW_k_table_in_lock_table_statement6040_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_table_in_lock_table_statement6040	= { FOLLOW_k_table_in_lock_table_statement6040_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_lock_table_statement6042  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_lock_table_statement6042_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_lock_table_statement6042	= { FOLLOW_swallow_to_semi_in_lock_table_statement6042_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_rollback_in_rollback_statement6063  */
static	ANTLR3_BITWORD FOLLOW_k_rollback_in_rollback_statement6063_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF2), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_rollback_in_rollback_statement6063	= { FOLLOW_k_rollback_in_rollback_statement6063_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_rollback_statement6065  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_rollback_statement6065_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_rollback_statement6065	= { FOLLOW_swallow_to_semi_in_rollback_statement6065_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_savepoint_in_savepoint_statement6087  */
static	ANTLR3_BITWORD FOLLOW_k_savepoint_in_savepoint_statement6087_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_savepoint_in_savepoint_statement6087	= { FOLLOW_k_savepoint_in_savepoint_statement6087_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_savepoint_statement6089  */
static	ANTLR3_BITWORD FOLLOW_ID_in_savepoint_statement6089_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_savepoint_statement6089	= { FOLLOW_ID_in_savepoint_statement6089_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_select_statement6108  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_select_statement6108_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x2000000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_select_statement6108	= { FOLLOW_LPAREN_in_select_statement6108_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_select_in_select_statement6111  */
static	ANTLR3_BITWORD FOLLOW_k_select_in_select_statement6111_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_select_in_select_statement6111	= { FOLLOW_k_select_in_select_statement6111_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_select_statement6113  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_select_statement6113_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_select_statement6113	= { FOLLOW_swallow_to_semi_in_select_statement6113_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_select_statement6122  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_select_statement6122_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x2000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_select_statement6122	= { FOLLOW_LPAREN_in_select_statement6122_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_with_in_select_statement6125  */
static	ANTLR3_BITWORD FOLLOW_r_with_in_select_statement6125_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_r_with_in_select_statement6125	= { FOLLOW_r_with_in_select_statement6125_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_select_statement6127  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_select_statement6127_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_select_statement6127	= { FOLLOW_swallow_to_semi_in_select_statement6127_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_merge_in_merge_statement6148  */
static	ANTLR3_BITWORD FOLLOW_k_merge_in_merge_statement6148_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_merge_in_merge_statement6148	= { FOLLOW_k_merge_in_merge_statement6148_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_merge_statement6150  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_merge_statement6150_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_merge_statement6150	= { FOLLOW_swallow_to_semi_in_merge_statement6150_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_set_in_set_transaction_statement6171  */
static	ANTLR3_BITWORD FOLLOW_r_set_in_set_transaction_statement6171_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000001) };
static  ANTLR3_BITSET_LIST FOLLOW_r_set_in_set_transaction_statement6171	= { FOLLOW_r_set_in_set_transaction_statement6171_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_transaction_in_set_transaction_statement6173  */
static	ANTLR3_BITWORD FOLLOW_k_transaction_in_set_transaction_statement6173_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_transaction_in_set_transaction_statement6173	= { FOLLOW_k_transaction_in_set_transaction_statement6173_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_set_transaction_statement6175  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_set_transaction_statement6175_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_set_transaction_statement6175	= { FOLLOW_swallow_to_semi_in_set_transaction_statement6175_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_update_in_update_statement6196  */
static	ANTLR3_BITWORD FOLLOW_k_update_in_update_statement6196_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_update_in_update_statement6196	= { FOLLOW_k_update_in_update_statement6196_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_update_statement6198  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_update_statement6198_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_update_statement6198	= { FOLLOW_swallow_to_semi_in_update_statement6198_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_swallow_to_semi6219  */
static	ANTLR3_BITWORD FOLLOW_set_in_swallow_to_semi6219_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF2), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_swallow_to_semi6219	= { FOLLOW_set_in_swallow_to_semi6219_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_label_name6237  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_label_name6237_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_label_name6237	= { FOLLOW_identifier_in_label_name6237_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AT_SIGN_in_dblink_name6245  */
static	ANTLR3_BITWORD FOLLOW_AT_SIGN_in_dblink_name6245_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_AT_SIGN_in_dblink_name6245	= { FOLLOW_AT_SIGN_in_dblink_name6245_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_dblink_name6247  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_dblink_name6247_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_dblink_name6247	= { FOLLOW_identifier_in_dblink_name6247_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_dblink_name6251  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_dblink_name6251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_dblink_name6251	= { FOLLOW_DOT_in_dblink_name6251_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_dblink_name6253  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_dblink_name6253_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_dblink_name6253	= { FOLLOW_identifier_in_dblink_name6253_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_or_expr_in_expression6268  */
static	ANTLR3_BITWORD FOLLOW_or_expr_in_expression6268_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_or_expr_in_expression6268	= { FOLLOW_or_expr_in_expression6268_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_and_expr_in_or_expr6285  */
static	ANTLR3_BITWORD FOLLOW_and_expr_in_or_expr6285_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_and_expr_in_or_expr6285	= { FOLLOW_and_expr_in_or_expr6285_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_or_expr6289  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_or_expr6289_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_or_expr6289	= { FOLLOW_k_or_in_or_expr6289_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_and_expr_in_or_expr6291  */
static	ANTLR3_BITWORD FOLLOW_and_expr_in_or_expr6291_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_and_expr_in_or_expr6291	= { FOLLOW_and_expr_in_or_expr6291_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_not_expr_in_and_expr6311  */
static	ANTLR3_BITWORD FOLLOW_not_expr_in_and_expr6311_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_not_expr_in_and_expr6311	= { FOLLOW_not_expr_in_and_expr6311_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_and_in_and_expr6315  */
static	ANTLR3_BITWORD FOLLOW_k_and_in_and_expr6315_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_and_in_and_expr6315	= { FOLLOW_k_and_in_and_expr6315_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_not_expr_in_and_expr6317  */
static	ANTLR3_BITWORD FOLLOW_not_expr_in_and_expr6317_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_not_expr_in_and_expr6317	= { FOLLOW_not_expr_in_and_expr6317_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_not_expr6337  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_not_expr6337_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_not_expr6337	= { FOLLOW_k_not_in_not_expr6337_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_compare_expr_in_not_expr6340  */
static	ANTLR3_BITWORD FOLLOW_compare_expr_in_not_expr6340_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_compare_expr_in_not_expr6340	= { FOLLOW_compare_expr_in_not_expr6340_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_is_null_expr_in_compare_expr6357  */
static	ANTLR3_BITWORD FOLLOW_is_null_expr_in_compare_expr6357_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x03800000E0000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000E00000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_is_null_expr_in_compare_expr6357	= { FOLLOW_is_null_expr_in_compare_expr6357_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQ_in_compare_expr6363  */
static	ANTLR3_BITWORD FOLLOW_EQ_in_compare_expr6363_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_EQ_in_compare_expr6363	= { FOLLOW_EQ_in_compare_expr6363_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_not_equal_in_compare_expr6367  */
static	ANTLR3_BITWORD FOLLOW_not_equal_in_compare_expr6367_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_not_equal_in_compare_expr6367	= { FOLLOW_not_equal_in_compare_expr6367_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LTH_in_compare_expr6371  */
static	ANTLR3_BITWORD FOLLOW_LTH_in_compare_expr6371_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LTH_in_compare_expr6371	= { FOLLOW_LTH_in_compare_expr6371_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_leq_in_compare_expr6375  */
static	ANTLR3_BITWORD FOLLOW_leq_in_compare_expr6375_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_leq_in_compare_expr6375	= { FOLLOW_leq_in_compare_expr6375_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GTH_in_compare_expr6379  */
static	ANTLR3_BITWORD FOLLOW_GTH_in_compare_expr6379_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_GTH_in_compare_expr6379	= { FOLLOW_GTH_in_compare_expr6379_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_geq_in_compare_expr6383  */
static	ANTLR3_BITWORD FOLLOW_geq_in_compare_expr6383_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_geq_in_compare_expr6383	= { FOLLOW_geq_in_compare_expr6383_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_is_null_expr_in_compare_expr6387  */
static	ANTLR3_BITWORD FOLLOW_is_null_expr_in_compare_expr6387_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_is_null_expr_in_compare_expr6387	= { FOLLOW_is_null_expr_in_compare_expr6387_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_like_expr_in_is_null_expr6415  */
static	ANTLR3_BITWORD FOLLOW_like_expr_in_is_null_expr6415_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_like_expr_in_is_null_expr6415	= { FOLLOW_like_expr_in_is_null_expr6415_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_is_null_expr6419  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_is_null_expr6419_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0180000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_is_null_expr6419	= { FOLLOW_k_is_in_is_null_expr6419_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_is_null_expr6421  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_is_null_expr6421_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_is_null_expr6421	= { FOLLOW_k_not_in_is_null_expr6421_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_is_null_expr6424  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_is_null_expr6424_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_is_null_expr6424	= { FOLLOW_k_null_in_is_null_expr6424_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_between_expr_in_like_expr6443  */
static	ANTLR3_BITWORD FOLLOW_between_expr_in_like_expr6443_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0088000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_between_expr_in_like_expr6443	= { FOLLOW_between_expr_in_like_expr6443_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_like_expr6447  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_like_expr6447_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0088000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_like_expr6447	= { FOLLOW_k_not_in_like_expr6447_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_like_in_like_expr6450  */
static	ANTLR3_BITWORD FOLLOW_k_like_in_like_expr6450_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_like_in_like_expr6450	= { FOLLOW_k_like_in_like_expr6450_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_between_expr_in_like_expr6452  */
static	ANTLR3_BITWORD FOLLOW_between_expr_in_like_expr6452_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
static  ANTLR3_BITSET_LIST FOLLOW_between_expr_in_like_expr6452	= { FOLLOW_between_expr_in_like_expr6452_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_escape_in_like_expr6456  */
static	ANTLR3_BITWORD FOLLOW_k_escape_in_like_expr6456_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000A000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_escape_in_like_expr6456	= { FOLLOW_k_escape_in_like_expr6456_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_quoted_string_in_like_expr6458  */
static	ANTLR3_BITWORD FOLLOW_quoted_string_in_like_expr6458_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_quoted_string_in_like_expr6458	= { FOLLOW_quoted_string_in_like_expr6458_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_in_expr_in_between_expr6489  */
static	ANTLR3_BITWORD FOLLOW_in_expr_in_between_expr6489_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0080000002000000) };
static  ANTLR3_BITSET_LIST FOLLOW_in_expr_in_between_expr6489	= { FOLLOW_in_expr_in_between_expr6489_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_between_expr6493  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_between_expr6493_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000002000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_between_expr6493	= { FOLLOW_k_not_in_between_expr6493_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_between_in_between_expr6496  */
static	ANTLR3_BITWORD FOLLOW_k_between_in_between_expr6496_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_between_in_between_expr6496	= { FOLLOW_k_between_in_between_expr6496_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_in_expr_in_between_expr6498  */
static	ANTLR3_BITWORD FOLLOW_in_expr_in_between_expr6498_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_in_expr_in_between_expr6498	= { FOLLOW_in_expr_in_between_expr6498_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_and_in_between_expr6500  */
static	ANTLR3_BITWORD FOLLOW_k_and_in_between_expr6500_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_and_in_between_expr6500	= { FOLLOW_k_and_in_between_expr6500_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_in_expr_in_between_expr6502  */
static	ANTLR3_BITWORD FOLLOW_in_expr_in_between_expr6502_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_in_expr_in_between_expr6502	= { FOLLOW_in_expr_in_between_expr6502_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_add_expr_in_in_expr6522  */
static	ANTLR3_BITWORD FOLLOW_add_expr_in_in_expr6522_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000020000), ANTLR3_UINT64_LIT(0x0080000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_add_expr_in_in_expr6522	= { FOLLOW_add_expr_in_in_expr6522_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_not_in_in_expr6526  */
static	ANTLR3_BITWORD FOLLOW_k_not_in_in_expr6526_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_not_in_in_expr6526	= { FOLLOW_k_not_in_in_expr6526_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_IN_in_in_expr6529  */
static	ANTLR3_BITWORD FOLLOW_K_IN_in_in_expr6529_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_K_IN_in_in_expr6529	= { FOLLOW_K_IN_in_in_expr6529_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_in_expr6531  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_in_expr6531_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_in_expr6531	= { FOLLOW_LPAREN_in_in_expr6531_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_add_expr_in_in_expr6533  */
static	ANTLR3_BITWORD FOLLOW_add_expr_in_in_expr6533_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_add_expr_in_in_expr6533	= { FOLLOW_add_expr_in_in_expr6533_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_in_expr6537  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_in_expr6537_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_in_expr6537	= { FOLLOW_COMMA_in_in_expr6537_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_add_expr_in_in_expr6539  */
static	ANTLR3_BITWORD FOLLOW_add_expr_in_in_expr6539_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_add_expr_in_in_expr6539	= { FOLLOW_add_expr_in_in_expr6539_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_in_expr6544  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_in_expr6544_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_in_expr6544	= { FOLLOW_RPAREN_in_in_expr6544_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_add_expr_in_numeric_expression6564  */
static	ANTLR3_BITWORD FOLLOW_add_expr_in_numeric_expression6564_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_add_expr_in_numeric_expression6564	= { FOLLOW_add_expr_in_numeric_expression6564_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_mul_expr_in_add_expr6581  */
static	ANTLR3_BITWORD FOLLOW_mul_expr_in_add_expr6581_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000700000000) };
static  ANTLR3_BITSET_LIST FOLLOW_mul_expr_in_add_expr6581	= { FOLLOW_mul_expr_in_add_expr6581_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_add_expr6585  */
static	ANTLR3_BITWORD FOLLOW_set_in_add_expr6585_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_add_expr6585	= { FOLLOW_set_in_add_expr6585_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_mul_expr_in_add_expr6599  */
static	ANTLR3_BITWORD FOLLOW_mul_expr_in_add_expr6599_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000700000000) };
static  ANTLR3_BITSET_LIST FOLLOW_mul_expr_in_add_expr6599	= { FOLLOW_mul_expr_in_add_expr6599_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_unary_sign_expr_in_mul_expr6619  */
static	ANTLR3_BITWORD FOLLOW_unary_sign_expr_in_mul_expr6619_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000800101000) };
static  ANTLR3_BITSET_LIST FOLLOW_unary_sign_expr_in_mul_expr6619	= { FOLLOW_unary_sign_expr_in_mul_expr6619_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASTERISK_in_mul_expr6625  */
static	ANTLR3_BITWORD FOLLOW_ASTERISK_in_mul_expr6625_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASTERISK_in_mul_expr6625	= { FOLLOW_ASTERISK_in_mul_expr6625_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DIVIDE_in_mul_expr6629  */
static	ANTLR3_BITWORD FOLLOW_DIVIDE_in_mul_expr6629_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_DIVIDE_in_mul_expr6629	= { FOLLOW_DIVIDE_in_mul_expr6629_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kMOD_in_mul_expr6633  */
static	ANTLR3_BITWORD FOLLOW_kMOD_in_mul_expr6633_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_kMOD_in_mul_expr6633	= { FOLLOW_kMOD_in_mul_expr6633_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_unary_sign_expr_in_mul_expr6637  */
static	ANTLR3_BITWORD FOLLOW_unary_sign_expr_in_mul_expr6637_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000800101000) };
static  ANTLR3_BITSET_LIST FOLLOW_unary_sign_expr_in_mul_expr6637	= { FOLLOW_unary_sign_expr_in_mul_expr6637_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_unary_sign_expr6657  */
static	ANTLR3_BITWORD FOLLOW_set_in_unary_sign_expr6657_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_unary_sign_expr6657	= { FOLLOW_set_in_unary_sign_expr6657_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atom_in_unary_sign_expr6668  */
static	ANTLR3_BITWORD FOLLOW_atom_in_unary_sign_expr6668_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_atom_in_unary_sign_expr6668	= { FOLLOW_atom_in_unary_sign_expr6668_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_case_statement_in_atom6695  */
static	ANTLR3_BITWORD FOLLOW_case_statement_in_atom6695_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_case_statement_in_atom6695	= { FOLLOW_case_statement_in_atom6695_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cast_expression_in_atom6706  */
static	ANTLR3_BITWORD FOLLOW_cast_expression_in_atom6706_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_cast_expression_in_atom6706	= { FOLLOW_cast_expression_in_atom6706_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_extract_datetime_expression_in_atom6711  */
static	ANTLR3_BITWORD FOLLOW_extract_datetime_expression_in_atom6711_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_extract_datetime_expression_in_atom6711	= { FOLLOW_extract_datetime_expression_in_atom6711_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_or_function_call_in_atom6716  */
static	ANTLR3_BITWORD FOLLOW_variable_or_function_call_in_atom6716_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_or_function_call_in_atom6716	= { FOLLOW_variable_or_function_call_in_atom6716_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_attribute_in_atom6718  */
static	ANTLR3_BITWORD FOLLOW_attribute_in_atom6718_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_attribute_in_atom6718	= { FOLLOW_attribute_in_atom6718_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_sql_in_atom6727  */
static	ANTLR3_BITWORD FOLLOW_k_sql_in_atom6727_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_sql_in_atom6727	= { FOLLOW_k_sql_in_atom6727_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_attribute_in_atom6729  */
static	ANTLR3_BITWORD FOLLOW_attribute_in_atom6729_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_attribute_in_atom6729	= { FOLLOW_attribute_in_atom6729_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_string_literal_in_atom6737  */
static	ANTLR3_BITWORD FOLLOW_string_literal_in_atom6737_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_string_literal_in_atom6737	= { FOLLOW_string_literal_in_atom6737_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_atom_in_atom6745  */
static	ANTLR3_BITWORD FOLLOW_numeric_atom_in_atom6745_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_atom_in_atom6745	= { FOLLOW_numeric_atom_in_atom6745_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boolean_atom_in_atom6753  */
static	ANTLR3_BITWORD FOLLOW_boolean_atom_in_atom6753_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_boolean_atom_in_atom6753	= { FOLLOW_boolean_atom_in_atom6753_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_atom6761  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_atom6761_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_atom6761	= { FOLLOW_k_null_in_atom6761_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_timestamp_expression_in_atom6766  */
static	ANTLR3_BITWORD FOLLOW_timestamp_expression_in_atom6766_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_timestamp_expression_in_atom6766	= { FOLLOW_timestamp_expression_in_atom6766_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_atom6774  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_atom6774_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_atom6774	= { FOLLOW_LPAREN_in_atom6774_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_atom6776  */
static	ANTLR3_BITWORD FOLLOW_expression_in_atom6776_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_atom6776	= { FOLLOW_expression_in_atom6776_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_atom6778  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_atom6778_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_atom6778	= { FOLLOW_RPAREN_in_atom6778_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_first_in_variable_or_function_call6799  */
static	ANTLR3_BITWORD FOLLOW_call_first_in_variable_or_function_call6799_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_first_in_variable_or_function_call6799	= { FOLLOW_call_first_in_variable_or_function_call6799_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_variable_or_function_call6804  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_variable_or_function_call6804_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_variable_or_function_call6804	= { FOLLOW_DOT_in_variable_or_function_call6804_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_next_in_variable_or_function_call6806  */
static	ANTLR3_BITWORD FOLLOW_call_next_in_variable_or_function_call6806_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_next_in_variable_or_function_call6806	= { FOLLOW_call_next_in_variable_or_function_call6806_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_variable_or_function_call6814  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_variable_or_function_call6814_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000020) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_variable_or_function_call6814	= { FOLLOW_DOT_in_variable_or_function_call6814_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_delete_call_in_variable_or_function_call6816  */
static	ANTLR3_BITWORD FOLLOW_delete_call_in_variable_or_function_call6816_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_delete_call_in_variable_or_function_call6816	= { FOLLOW_delete_call_in_variable_or_function_call6816_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_date_in_timestamp_expression6834  */
static	ANTLR3_BITWORD FOLLOW_k_date_in_timestamp_expression6834_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000A000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_date_in_timestamp_expression6834	= { FOLLOW_k_date_in_timestamp_expression6834_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_timestamp_in_timestamp_expression6838  */
static	ANTLR3_BITWORD FOLLOW_k_timestamp_in_timestamp_expression6838_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000A000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_timestamp_in_timestamp_expression6838	= { FOLLOW_k_timestamp_in_timestamp_expression6838_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_quoted_string_in_timestamp_expression6841  */
static	ANTLR3_BITWORD FOLLOW_quoted_string_in_timestamp_expression6841_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_quoted_string_in_timestamp_expression6841	= { FOLLOW_quoted_string_in_timestamp_expression6841_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_systimestamp_in_timestamp_expression6846  */
static	ANTLR3_BITWORD FOLLOW_k_systimestamp_in_timestamp_expression6846_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_systimestamp_in_timestamp_expression6846	= { FOLLOW_k_systimestamp_in_timestamp_expression6846_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kAT_in_timestamp_expression6849  */
static	ANTLR3_BITWORD FOLLOW_kAT_in_timestamp_expression6849_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kAT_in_timestamp_expression6849	= { FOLLOW_kAT_in_timestamp_expression6849_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kTIME_in_timestamp_expression6851  */
static	ANTLR3_BITWORD FOLLOW_kTIME_in_timestamp_expression6851_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kTIME_in_timestamp_expression6851	= { FOLLOW_kTIME_in_timestamp_expression6851_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kZONE_in_timestamp_expression6853  */
static	ANTLR3_BITWORD FOLLOW_kZONE_in_timestamp_expression6853_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000A000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kZONE_in_timestamp_expression6853	= { FOLLOW_kZONE_in_timestamp_expression6853_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_quoted_string_in_timestamp_expression6855  */
static	ANTLR3_BITWORD FOLLOW_quoted_string_in_timestamp_expression6855_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_quoted_string_in_timestamp_expression6855	= { FOLLOW_quoted_string_in_timestamp_expression6855_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_cast_in_cast_expression6874  */
static	ANTLR3_BITWORD FOLLOW_k_cast_in_cast_expression6874_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_cast_in_cast_expression6874	= { FOLLOW_k_cast_in_cast_expression6874_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_cast_expression6876  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_cast_expression6876_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_cast_expression6876	= { FOLLOW_LPAREN_in_cast_expression6876_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_cast_expression6879  */
static	ANTLR3_BITWORD FOLLOW_expression_in_cast_expression6879_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_cast_expression6879	= { FOLLOW_expression_in_cast_expression6879_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_cast_expression6884  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_cast_expression6884_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_cast_expression6884	= { FOLLOW_k_as_in_cast_expression6884_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_cast_expression6887  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_cast_expression6887_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_cast_expression6887	= { FOLLOW_datatype_in_cast_expression6887_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_cast_expression6891  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_cast_expression6891_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_cast_expression6891	= { FOLLOW_identifier_in_cast_expression6891_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_cast_expression6896  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_cast_expression6896_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_cast_expression6896	= { FOLLOW_RPAREN_in_cast_expression6896_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_extract_datetime_expression6913  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_extract_datetime_expression6913_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_extract_datetime_expression6913	= { FOLLOW_identifier_in_extract_datetime_expression6913_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_extract_datetime_expression6924  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_extract_datetime_expression6924_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_extract_datetime_expression6924	= { FOLLOW_LPAREN_in_extract_datetime_expression6924_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_extract_datetime_expression6936  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_extract_datetime_expression6936_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_extract_datetime_expression6936	= { FOLLOW_identifier_in_extract_datetime_expression6936_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_from_in_extract_datetime_expression7047  */
static	ANTLR3_BITWORD FOLLOW_r_from_in_extract_datetime_expression7047_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_r_from_in_extract_datetime_expression7047	= { FOLLOW_r_from_in_extract_datetime_expression7047_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_extract_datetime_expression7057  */
static	ANTLR3_BITWORD FOLLOW_expression_in_extract_datetime_expression7057_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000110000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_extract_datetime_expression7057	= { FOLLOW_expression_in_extract_datetime_expression7057_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_extract_datetime_expression7078  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_extract_datetime_expression7078_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_extract_datetime_expression7078	= { FOLLOW_identifier_in_extract_datetime_expression7078_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_to_in_extract_datetime_expression7081  */
static	ANTLR3_BITWORD FOLLOW_r_to_in_extract_datetime_expression7081_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_to_in_extract_datetime_expression7081	= { FOLLOW_r_to_in_extract_datetime_expression7081_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_extract_datetime_expression7083  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_extract_datetime_expression7083_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_extract_datetime_expression7083	= { FOLLOW_identifier_in_extract_datetime_expression7083_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_extract_datetime_expression7096  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_extract_datetime_expression7096_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_extract_datetime_expression7096	= { FOLLOW_RPAREN_in_extract_datetime_expression7096_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_attr_in_attribute7113  */
static	ANTLR3_BITWORD FOLLOW_type_attr_in_attribute7113_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_attr_in_attribute7113	= { FOLLOW_type_attr_in_attribute7113_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_rowtype_attr_in_attribute7121  */
static	ANTLR3_BITWORD FOLLOW_rowtype_attr_in_attribute7121_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_rowtype_attr_in_attribute7121	= { FOLLOW_rowtype_attr_in_attribute7121_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_notfound_attr_in_attribute7129  */
static	ANTLR3_BITWORD FOLLOW_notfound_attr_in_attribute7129_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_notfound_attr_in_attribute7129	= { FOLLOW_notfound_attr_in_attribute7129_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_found_attr_in_attribute7137  */
static	ANTLR3_BITWORD FOLLOW_found_attr_in_attribute7137_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_found_attr_in_attribute7137	= { FOLLOW_found_attr_in_attribute7137_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_isopen_attr_in_attribute7145  */
static	ANTLR3_BITWORD FOLLOW_isopen_attr_in_attribute7145_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_isopen_attr_in_attribute7145	= { FOLLOW_isopen_attr_in_attribute7145_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_rowcount_attr_in_attribute7153  */
static	ANTLR3_BITWORD FOLLOW_rowcount_attr_in_attribute7153_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_rowcount_attr_in_attribute7153	= { FOLLOW_rowcount_attr_in_attribute7153_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bulk_rowcount_attr_in_attribute7161  */
static	ANTLR3_BITWORD FOLLOW_bulk_rowcount_attr_in_attribute7161_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_bulk_rowcount_attr_in_attribute7161	= { FOLLOW_bulk_rowcount_attr_in_attribute7161_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_attribute7163  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_attribute7163_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_attribute7163	= { FOLLOW_LPAREN_in_attribute7163_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_attribute7165  */
static	ANTLR3_BITWORD FOLLOW_expression_in_attribute7165_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_attribute7165	= { FOLLOW_expression_in_attribute7165_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_attribute7167  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_attribute7167_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_attribute7167	= { FOLLOW_RPAREN_in_attribute7167_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_charset_attr_in_attribute7175  */
static	ANTLR3_BITWORD FOLLOW_charset_attr_in_attribute7175_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_charset_attr_in_attribute7175	= { FOLLOW_charset_attr_in_attribute7175_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_call_args7206  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_call_args7206_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_call_args7206	= { FOLLOW_LPAREN_in_call_args7206_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_call_args7210  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_call_args7210_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_call_args7210	= { FOLLOW_parameter_in_call_args7210_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_call_args7214  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_call_args7214_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_call_args7214	= { FOLLOW_COMMA_in_call_args7214_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_call_args7216  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_call_args7216_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_call_args7216	= { FOLLOW_parameter_in_call_args7216_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_call_args7224  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_call_args7224_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_call_args7224	= { FOLLOW_RPAREN_in_call_args7224_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boolean_literal_in_boolean_atom7241  */
static	ANTLR3_BITWORD FOLLOW_boolean_literal_in_boolean_atom7241_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_boolean_literal_in_boolean_atom7241	= { FOLLOW_boolean_literal_in_boolean_atom7241_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_collection_exists_in_boolean_atom7249  */
static	ANTLR3_BITWORD FOLLOW_collection_exists_in_boolean_atom7249_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_collection_exists_in_boolean_atom7249	= { FOLLOW_collection_exists_in_boolean_atom7249_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_conditional_predicate_in_boolean_atom7257  */
static	ANTLR3_BITWORD FOLLOW_conditional_predicate_in_boolean_atom7257_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_conditional_predicate_in_boolean_atom7257	= { FOLLOW_conditional_predicate_in_boolean_atom7257_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_numeric_atom7274  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_numeric_atom7274_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_numeric_atom7274	= { FOLLOW_numeric_literal_in_numeric_atom7274_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_numeric_literal0  */
static	ANTLR3_BITWORD FOLLOW_set_in_numeric_literal0_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_numeric_literal0	= { FOLLOW_set_in_numeric_literal0_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_true_in_boolean_literal7316  */
static	ANTLR3_BITWORD FOLLOW_k_true_in_boolean_literal7316_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_true_in_boolean_literal7316	= { FOLLOW_k_true_in_boolean_literal7316_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_false_in_boolean_literal7324  */
static	ANTLR3_BITWORD FOLLOW_k_false_in_boolean_literal7324_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_false_in_boolean_literal7324	= { FOLLOW_k_false_in_boolean_literal7324_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_QUOTED_STRING_in_string_literal7341  */
static	ANTLR3_BITWORD FOLLOW_QUOTED_STRING_in_string_literal7341_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_QUOTED_STRING_in_string_literal7341	= { FOLLOW_QUOTED_STRING_in_string_literal7341_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_in_collection_exists7358  */
static	ANTLR3_BITWORD FOLLOW_variable_name_in_collection_exists7358_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_in_collection_exists7358	= { FOLLOW_variable_name_in_collection_exists7358_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_collection_exists7361  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_collection_exists7361_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000400) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_collection_exists7361	= { FOLLOW_DOT_in_collection_exists7361_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_exists_in_collection_exists7363  */
static	ANTLR3_BITWORD FOLLOW_k_exists_in_collection_exists7363_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_exists_in_collection_exists7363	= { FOLLOW_k_exists_in_collection_exists7363_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_collection_exists7365  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_collection_exists7365_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_collection_exists7365	= { FOLLOW_LPAREN_in_collection_exists7365_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_collection_exists7367  */
static	ANTLR3_BITWORD FOLLOW_expression_in_collection_exists7367_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_collection_exists7367	= { FOLLOW_expression_in_collection_exists7367_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_collection_exists7369  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_collection_exists7369_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_collection_exists7369	= { FOLLOW_RPAREN_in_collection_exists7369_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_inserting_in_conditional_predicate7386  */
static	ANTLR3_BITWORD FOLLOW_k_inserting_in_conditional_predicate7386_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_inserting_in_conditional_predicate7386	= { FOLLOW_k_inserting_in_conditional_predicate7386_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_updating_in_conditional_predicate7394  */
static	ANTLR3_BITWORD FOLLOW_k_updating_in_conditional_predicate7394_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_updating_in_conditional_predicate7394	= { FOLLOW_k_updating_in_conditional_predicate7394_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_conditional_predicate7398  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_conditional_predicate7398_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_conditional_predicate7398	= { FOLLOW_LPAREN_in_conditional_predicate7398_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_QUOTED_STRING_in_conditional_predicate7400  */
static	ANTLR3_BITWORD FOLLOW_QUOTED_STRING_in_conditional_predicate7400_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_QUOTED_STRING_in_conditional_predicate7400	= { FOLLOW_QUOTED_STRING_in_conditional_predicate7400_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_conditional_predicate7402  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_conditional_predicate7402_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_conditional_predicate7402	= { FOLLOW_RPAREN_in_conditional_predicate7402_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_deleting_in_conditional_predicate7413  */
static	ANTLR3_BITWORD FOLLOW_k_deleting_in_conditional_predicate7413_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_deleting_in_conditional_predicate7413	= { FOLLOW_k_deleting_in_conditional_predicate7413_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_parameter7432  */
static	ANTLR3_BITWORD FOLLOW_ID_in_parameter7432_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000004000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_parameter7432	= { FOLLOW_ID_in_parameter7432_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ARROW_in_parameter7434  */
static	ANTLR3_BITWORD FOLLOW_ARROW_in_parameter7434_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ARROW_in_parameter7434	= { FOLLOW_ARROW_in_parameter7434_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_parameter7439  */
static	ANTLR3_BITWORD FOLLOW_expression_in_parameter7439_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_parameter7439	= { FOLLOW_expression_in_parameter7439_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_create_package7459  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_create_package7459_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0600000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_create_package7459	= { FOLLOW_k_create_in_create_package7459_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_create_package7463  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_create_package7463_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_create_package7463	= { FOLLOW_k_or_in_create_package7463_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_create_package7465  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_create_package7465_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0400000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_create_package7465	= { FOLLOW_kREPLACE_in_create_package7465_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_package_in_create_package7474  */
static	ANTLR3_BITWORD FOLLOW_k_package_in_create_package7474_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000200), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_package_in_create_package7474	= { FOLLOW_k_package_in_create_package7474_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_create_package7478  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_create_package7478_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_create_package7478	= { FOLLOW_schema_name_in_create_package7478_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_create_package7480  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_create_package7480_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_create_package7480	= { FOLLOW_DOT_in_create_package7480_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_package_name_in_create_package7485  */
static	ANTLR3_BITWORD FOLLOW_package_name_in_create_package7485_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000001800000) };
static  ANTLR3_BITSET_LIST FOLLOW_package_name_in_create_package7485	= { FOLLOW_package_name_in_create_package7485_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_invoker_rights_clause_in_create_package7498  */
static	ANTLR3_BITWORD FOLLOW_invoker_rights_clause_in_create_package7498_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_invoker_rights_clause_in_create_package7498	= { FOLLOW_invoker_rights_clause_in_create_package7498_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_create_package7513  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_create_package7513_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180550010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_create_package7513	= { FOLLOW_k_is_in_create_package7513_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_create_package7517  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_create_package7517_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000007), ANTLR3_UINT64_LIT(0x0000020180550010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_create_package7517	= { FOLLOW_k_as_in_create_package7517_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_create_package7521  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_create_package7521_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_create_package7521	= { FOLLOW_declare_section_in_create_package7521_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_create_package7524  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_create_package7524_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000102000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_create_package7524	= { FOLLOW_k_end_in_create_package7524_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_package_name_in_create_package7526  */
static	ANTLR3_BITWORD FOLLOW_package_name_in_create_package7526_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_package_name_in_create_package7526	= { FOLLOW_package_name_in_create_package7526_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_create_package7530  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_create_package7530_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_create_package7530	= { FOLLOW_SEMI_in_create_package7530_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_create_package_body7552  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_create_package_body7552_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0600000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_create_package_body7552	= { FOLLOW_k_create_in_create_package_body7552_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_create_package_body7556  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_create_package_body7556_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_create_package_body7556	= { FOLLOW_k_or_in_create_package_body7556_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_create_package_body7558  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_create_package_body7558_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0400000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_create_package_body7558	= { FOLLOW_kREPLACE_in_create_package_body7558_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_package_in_create_package_body7573  */
static	ANTLR3_BITWORD FOLLOW_k_package_in_create_package_body7573_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000004000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_package_in_create_package_body7573	= { FOLLOW_k_package_in_create_package_body7573_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_body_in_create_package_body7575  */
static	ANTLR3_BITWORD FOLLOW_k_body_in_create_package_body7575_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000200), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_body_in_create_package_body7575	= { FOLLOW_k_body_in_create_package_body7575_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_create_package_body7579  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_create_package_body7579_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_create_package_body7579	= { FOLLOW_schema_name_in_create_package_body7579_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_create_package_body7581  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_create_package_body7581_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_create_package_body7581	= { FOLLOW_DOT_in_create_package_body7581_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_package_name_in_create_package_body7586  */
static	ANTLR3_BITWORD FOLLOW_package_name_in_create_package_body7586_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_package_name_in_create_package_body7586	= { FOLLOW_package_name_in_create_package_body7586_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_create_package_body7599  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_create_package_body7599_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180550010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_create_package_body7599	= { FOLLOW_k_is_in_create_package_body7599_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_create_package_body7603  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_create_package_body7603_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180550010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_create_package_body7603	= { FOLLOW_k_as_in_create_package_body7603_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_create_package_body7607  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_create_package_body7607_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180550010) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_create_package_body7607	= { FOLLOW_declare_section_in_create_package_body7607_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_body_in_create_package_body7620  */
static	ANTLR3_BITWORD FOLLOW_body_in_create_package_body7620_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_body_in_create_package_body7620	= { FOLLOW_body_in_create_package_body7620_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_in_create_package_body7622  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_in_create_package_body7622_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_in_create_package_body7622	= { FOLLOW_exception_handler_in_create_package_body7622_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_create_package_body7625  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_create_package_body7625_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000102000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_create_package_body7625	= { FOLLOW_k_end_in_create_package_body7625_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_create_package_body7627  */
static	ANTLR3_BITWORD FOLLOW_ID_in_create_package_body7627_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_create_package_body7627	= { FOLLOW_ID_in_create_package_body7627_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_create_package_body7632  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_create_package_body7632_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000102000), ANTLR3_UINT64_LIT(0x0000000000000200) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_create_package_body7632	= { FOLLOW_k_end_in_create_package_body7632_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_package_name_in_create_package_body7634  */
static	ANTLR3_BITWORD FOLLOW_package_name_in_create_package_body7634_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_package_name_in_create_package_body7634	= { FOLLOW_package_name_in_create_package_body7634_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_create_package_body7648  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_create_package_body7648_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_create_package_body7648	= { FOLLOW_SEMI_in_create_package_body7648_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_create_procedure7670  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_create_procedure7670_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000100000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_create_procedure7670	= { FOLLOW_k_create_in_create_procedure7670_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_create_procedure7674  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_create_procedure7674_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_create_procedure7674	= { FOLLOW_k_or_in_create_procedure7674_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_create_procedure7676  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_create_procedure7676_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000100000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_create_procedure7676	= { FOLLOW_kREPLACE_in_create_procedure7676_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_procedure_in_create_procedure7691  */
static	ANTLR3_BITWORD FOLLOW_k_procedure_in_create_procedure7691_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_procedure_in_create_procedure7691	= { FOLLOW_k_procedure_in_create_procedure7691_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_create_procedure7695  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_create_procedure7695_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_create_procedure7695	= { FOLLOW_schema_name_in_create_procedure7695_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_create_procedure7697  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_create_procedure7697_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_create_procedure7697	= { FOLLOW_DOT_in_create_procedure7697_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_procedure_name_in_create_procedure7702  */
static	ANTLR3_BITWORD FOLLOW_procedure_name_in_create_procedure7702_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0004000001800000) };
static  ANTLR3_BITSET_LIST FOLLOW_procedure_name_in_create_procedure7702	= { FOLLOW_procedure_name_in_create_procedure7702_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_create_procedure7715  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_create_procedure7715_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_create_procedure7715	= { FOLLOW_LPAREN_in_create_procedure7715_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declaration_in_create_procedure7717  */
static	ANTLR3_BITWORD FOLLOW_parameter_declaration_in_create_procedure7717_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declaration_in_create_procedure7717	= { FOLLOW_parameter_declaration_in_create_procedure7717_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_create_procedure7721  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_create_procedure7721_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_create_procedure7721	= { FOLLOW_COMMA_in_create_procedure7721_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declaration_in_create_procedure7723  */
static	ANTLR3_BITWORD FOLLOW_parameter_declaration_in_create_procedure7723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declaration_in_create_procedure7723	= { FOLLOW_parameter_declaration_in_create_procedure7723_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_create_procedure7728  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_create_procedure7728_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000001800000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_create_procedure7728	= { FOLLOW_RPAREN_in_create_procedure7728_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_invoker_rights_clause_in_create_procedure7741  */
static	ANTLR3_BITWORD FOLLOW_invoker_rights_clause_in_create_procedure7741_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_invoker_rights_clause_in_create_procedure7741	= { FOLLOW_invoker_rights_clause_in_create_procedure7741_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_create_procedure7754  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_create_procedure7754_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000010080000817), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_create_procedure7754	= { FOLLOW_k_is_in_create_procedure7754_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_create_procedure7758  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_create_procedure7758_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000010080000817), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_create_procedure7758	= { FOLLOW_k_as_in_create_procedure7758_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_create_procedure7772  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_create_procedure7772_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_create_procedure7772	= { FOLLOW_declare_section_in_create_procedure7772_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_body_in_create_procedure7775  */
static	ANTLR3_BITWORD FOLLOW_body_in_create_procedure7775_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_body_in_create_procedure7775	= { FOLLOW_body_in_create_procedure7775_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_in_create_procedure7777  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_in_create_procedure7777_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_in_create_procedure7777	= { FOLLOW_exception_handler_in_create_procedure7777_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_create_procedure7780  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_create_procedure7780_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000102000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_create_procedure7780	= { FOLLOW_k_end_in_create_procedure7780_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_create_procedure7782  */
static	ANTLR3_BITWORD FOLLOW_ID_in_create_procedure7782_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_create_procedure7782	= { FOLLOW_ID_in_create_procedure7782_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_spec_in_create_procedure7795  */
static	ANTLR3_BITWORD FOLLOW_call_spec_in_create_procedure7795_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_spec_in_create_procedure7795	= { FOLLOW_call_spec_in_create_procedure7795_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_external_in_create_procedure7807  */
static	ANTLR3_BITWORD FOLLOW_k_external_in_create_procedure7807_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_external_in_create_procedure7807	= { FOLLOW_k_external_in_create_procedure7807_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_create_procedure7819  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_create_procedure7819_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_create_procedure7819	= { FOLLOW_SEMI_in_create_procedure7819_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_create_function7841  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_create_function7841_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_create_function7841	= { FOLLOW_k_create_in_create_function7841_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_create_function7845  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_create_function7845_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_create_function7845	= { FOLLOW_k_or_in_create_function7845_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_create_function7847  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_create_function7847_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_create_function7847	= { FOLLOW_kREPLACE_in_create_function7847_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_function_in_create_function7871  */
static	ANTLR3_BITWORD FOLLOW_k_function_in_create_function7871_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_function_in_create_function7871	= { FOLLOW_k_function_in_create_function7871_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_create_function7875  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_create_function7875_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_create_function7875	= { FOLLOW_schema_name_in_create_function7875_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_create_function7877  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_create_function7877_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_create_function7877	= { FOLLOW_DOT_in_create_function7877_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_create_function7884  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_create_function7884_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_create_function7884	= { FOLLOW_identifier_in_create_function7884_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_create_function7897  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_create_function7897_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_create_function7897	= { FOLLOW_LPAREN_in_create_function7897_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declaration_in_create_function7899  */
static	ANTLR3_BITWORD FOLLOW_parameter_declaration_in_create_function7899_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declaration_in_create_function7899	= { FOLLOW_parameter_declaration_in_create_function7899_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_create_function7903  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_create_function7903_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x0000000000000007) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_create_function7903	= { FOLLOW_COMMA_in_create_function7903_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_declaration_in_create_function7905  */
static	ANTLR3_BITWORD FOLLOW_parameter_declaration_in_create_function7905_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_declaration_in_create_function7905	= { FOLLOW_parameter_declaration_in_create_function7905_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_create_function7910  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_create_function7910_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_create_function7910	= { FOLLOW_RPAREN_in_create_function7910_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_create_function7923  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_create_function7923_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00400008400CD1FF), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_create_function7923	= { FOLLOW_k_return_in_create_function7923_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_create_function7925  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_create_function7925_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008940000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_create_function7925	= { FOLLOW_datatype_in_create_function7925_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_deterministic_in_create_function7937  */
static	ANTLR3_BITWORD FOLLOW_k_deterministic_in_create_function7937_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008940000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_deterministic_in_create_function7937	= { FOLLOW_k_deterministic_in_create_function7937_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_pipelined_in_create_function7941  */
static	ANTLR3_BITWORD FOLLOW_k_pipelined_in_create_function7941_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008940000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_pipelined_in_create_function7941	= { FOLLOW_k_pipelined_in_create_function7941_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_parallel_enable_in_create_function7945  */
static	ANTLR3_BITWORD FOLLOW_k_parallel_enable_in_create_function7945_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008944000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_parallel_enable_in_create_function7945	= { FOLLOW_k_parallel_enable_in_create_function7945_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_create_function7948  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_create_function7948_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFEFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_create_function7948	= { FOLLOW_LPAREN_in_create_function7948_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_create_function7950  */
static	ANTLR3_BITWORD FOLLOW_set_in_create_function7950_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_create_function7950	= { FOLLOW_set_in_create_function7950_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_create_function7956  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_create_function7956_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008940000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_create_function7956	= { FOLLOW_RPAREN_in_create_function7956_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_result_cache_in_create_function7962  */
static	ANTLR3_BITWORD FOLLOW_k_result_cache_in_create_function7962_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008940000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_result_cache_in_create_function7962	= { FOLLOW_k_result_cache_in_create_function7962_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_invoker_rights_clause_in_create_function7966  */
static	ANTLR3_BITWORD FOLLOW_invoker_rights_clause_in_create_function7966_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008940000), ANTLR3_UINT64_LIT(0x0004010081A00817), ANTLR3_UINT64_LIT(0x00000209D0430010) };
static  ANTLR3_BITSET_LIST FOLLOW_invoker_rights_clause_in_create_function7966	= { FOLLOW_invoker_rights_clause_in_create_function7966_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_is_in_create_function7983  */
static	ANTLR3_BITWORD FOLLOW_k_is_in_create_function7983_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_is_in_create_function7983	= { FOLLOW_k_is_in_create_function7983_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_as_in_create_function7987  */
static	ANTLR3_BITWORD FOLLOW_k_as_in_create_function7987_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_as_in_create_function7987	= { FOLLOW_k_as_in_create_function7987_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declare_section_in_create_function7991  */
static	ANTLR3_BITWORD FOLLOW_declare_section_in_create_function7991_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000800008140000), ANTLR3_UINT64_LIT(0x0000000080000807), ANTLR3_UINT64_LIT(0x0000020180410010) };
static  ANTLR3_BITSET_LIST FOLLOW_declare_section_in_create_function7991	= { FOLLOW_declare_section_in_create_function7991_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_body_in_create_function7994  */
static	ANTLR3_BITWORD FOLLOW_body_in_create_function7994_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_body_in_create_function7994	= { FOLLOW_body_in_create_function7994_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_exception_handler_in_create_function7996  */
static	ANTLR3_BITWORD FOLLOW_exception_handler_in_create_function7996_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000140000) };
static  ANTLR3_BITSET_LIST FOLLOW_exception_handler_in_create_function7996	= { FOLLOW_exception_handler_in_create_function7996_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_end_in_create_function7999  */
static	ANTLR3_BITWORD FOLLOW_k_end_in_create_function7999_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000102000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_end_in_create_function7999	= { FOLLOW_k_end_in_create_function7999_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_create_function8001  */
static	ANTLR3_BITWORD FOLLOW_ID_in_create_function8001_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_create_function8001	= { FOLLOW_ID_in_create_function8001_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_spec_in_create_function8014  */
static	ANTLR3_BITWORD FOLLOW_call_spec_in_create_function8014_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_call_spec_in_create_function8014	= { FOLLOW_call_spec_in_create_function8014_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_external_in_create_function8026  */
static	ANTLR3_BITWORD FOLLOW_k_external_in_create_function8026_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_external_in_create_function8026	= { FOLLOW_k_external_in_create_function8026_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_aggregate_in_create_function8038  */
static	ANTLR3_BITWORD FOLLOW_k_aggregate_in_create_function8038_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_aggregate_in_create_function8038	= { FOLLOW_k_aggregate_in_create_function8038_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_using_clause_in_create_function8041  */
static	ANTLR3_BITWORD FOLLOW_using_clause_in_create_function8041_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_using_clause_in_create_function8041	= { FOLLOW_using_clause_in_create_function8041_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_create_function8053  */
static	ANTLR3_BITWORD FOLLOW_set_in_create_function8053_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_create_function8053	= { FOLLOW_set_in_create_function8053_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_create_trigger8080  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_create_trigger8080_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_create_trigger8080	= { FOLLOW_k_create_in_create_trigger8080_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_create_trigger8084  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_create_trigger8084_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_create_trigger8084	= { FOLLOW_k_or_in_create_trigger8084_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_create_trigger8086  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_create_trigger8086_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_create_trigger8086	= { FOLLOW_kREPLACE_in_create_trigger8086_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_trigger_in_create_trigger8093  */
static	ANTLR3_BITWORD FOLLOW_k_trigger_in_create_trigger8093_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_trigger_in_create_trigger8093	= { FOLLOW_k_trigger_in_create_trigger8093_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_create_trigger8097  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_create_trigger8097_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_create_trigger8097	= { FOLLOW_schema_name_in_create_trigger8097_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_create_trigger8099  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_create_trigger8099_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_create_trigger8099	= { FOLLOW_DOT_in_create_trigger8099_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_create_trigger8106  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_create_trigger8106_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_create_trigger8106	= { FOLLOW_identifier_in_create_trigger8106_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_create_trigger8121  */
static	ANTLR3_BITWORD FOLLOW_set_in_create_trigger8121_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_create_trigger8121	= { FOLLOW_set_in_create_trigger8121_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_plsql_block_in_create_trigger8145  */
static	ANTLR3_BITWORD FOLLOW_plsql_block_in_create_trigger8145_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_plsql_block_in_create_trigger8145	= { FOLLOW_plsql_block_in_create_trigger8145_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMI_in_create_trigger8155  */
static	ANTLR3_BITWORD FOLLOW_SEMI_in_create_trigger8155_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_SEMI_in_create_trigger8155	= { FOLLOW_SEMI_in_create_trigger8155_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_create_type8185  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_create_type8185_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_create_type8185	= { FOLLOW_k_create_in_create_type8185_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_create_type8189  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_create_type8189_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_create_type8189	= { FOLLOW_k_or_in_create_type8189_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_create_type8191  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_create_type8191_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_create_type8191	= { FOLLOW_kREPLACE_in_create_type8191_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_type_in_create_type8215  */
static	ANTLR3_BITWORD FOLLOW_k_type_in_create_type8215_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_type_in_create_type8215	= { FOLLOW_k_type_in_create_type8215_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_create_type8217  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_create_type8217_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_create_type8217	= { FOLLOW_identifier_in_create_type8217_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_create_type8237  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_create_type8237_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000002000) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_create_type8237	= { FOLLOW_swallow_to_semi_in_create_type8237_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_create_type8247  */
static	ANTLR3_BITWORD FOLLOW_set_in_create_type8247_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_create_type8247	= { FOLLOW_set_in_create_type8247_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_authid_in_invoker_rights_clause8273  */
static	ANTLR3_BITWORD FOLLOW_k_authid_in_invoker_rights_clause8273_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_authid_in_invoker_rights_clause8273	= { FOLLOW_k_authid_in_invoker_rights_clause8273_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_current_user_in_invoker_rights_clause8277  */
static	ANTLR3_BITWORD FOLLOW_k_current_user_in_invoker_rights_clause8277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_current_user_in_invoker_rights_clause8277	= { FOLLOW_k_current_user_in_invoker_rights_clause8277_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_definer_in_invoker_rights_clause8281  */
static	ANTLR3_BITWORD FOLLOW_k_definer_in_invoker_rights_clause8281_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_definer_in_invoker_rights_clause8281	= { FOLLOW_k_definer_in_invoker_rights_clause8281_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_language_in_call_spec8300  */
static	ANTLR3_BITWORD FOLLOW_k_language_in_call_spec8300_bits[]	= { ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFF0), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFDFFF), ANTLR3_UINT64_LIT(0xFFFFFFFFFFFFFFFF), ANTLR3_UINT64_LIT(0x000FFFFFFFFFFFFF) };
static  ANTLR3_BITSET_LIST FOLLOW_k_language_in_call_spec8300	= { FOLLOW_k_language_in_call_spec8300_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_call_spec8302  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_call_spec8302_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_call_spec8302	= { FOLLOW_swallow_to_semi_in_call_spec8302_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_140_in_r_char8323  */
static	ANTLR3_BITWORD FOLLOW_140_in_r_char8323_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_140_in_r_char8323	= { FOLLOW_140_in_r_char8323_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_141_in_r_from8341  */
static	ANTLR3_BITWORD FOLLOW_141_in_r_from8341_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_141_in_r_from8341	= { FOLLOW_141_in_r_from8341_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_142_in_r_long8359  */
static	ANTLR3_BITWORD FOLLOW_142_in_r_long8359_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_142_in_r_long8359	= { FOLLOW_142_in_r_long8359_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_143_in_r_raw8378  */
static	ANTLR3_BITWORD FOLLOW_143_in_r_raw8378_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_143_in_r_raw8378	= { FOLLOW_143_in_r_raw8378_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_144_in_r_set8397  */
static	ANTLR3_BITWORD FOLLOW_144_in_r_set8397_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_144_in_r_set8397	= { FOLLOW_144_in_r_set8397_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_145_in_r_to8417  */
static	ANTLR3_BITWORD FOLLOW_145_in_r_to8417_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_145_in_r_to8417	= { FOLLOW_145_in_r_to8417_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_146_in_r_varchar8432  */
static	ANTLR3_BITWORD FOLLOW_146_in_r_varchar8432_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_146_in_r_varchar8432	= { FOLLOW_146_in_r_varchar8432_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_147_in_r_varchar28446  */
static	ANTLR3_BITWORD FOLLOW_147_in_r_varchar28446_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_147_in_r_varchar28446	= { FOLLOW_147_in_r_varchar28446_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_148_in_r_with8464  */
static	ANTLR3_BITWORD FOLLOW_148_in_r_with8464_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_148_in_r_with8464	= { FOLLOW_148_in_r_with8464_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kAT8509  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kAT8509_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kAT8509	= { FOLLOW_identifier_in_kAT8509_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kERRORS8523  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kERRORS8523_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kERRORS8523	= { FOLLOW_identifier_in_kERRORS8523_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kEXCEPTIONS8533  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kEXCEPTIONS8533_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kEXCEPTIONS8533	= { FOLLOW_identifier_in_kEXCEPTIONS8533_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kFOUND8548  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kFOUND8548_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kFOUND8548	= { FOLLOW_identifier_in_kFOUND8548_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kINDICES8561  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kINDICES8561_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kINDICES8561	= { FOLLOW_identifier_in_kINDICES8561_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kMOD8578  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kMOD8578_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kMOD8578	= { FOLLOW_identifier_in_kMOD8578_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kNAME8594  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kNAME8594_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kNAME8594	= { FOLLOW_identifier_in_kNAME8594_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kOF8612  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kOF8612_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kOF8612	= { FOLLOW_identifier_in_kOF8612_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kREPLACE8625  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kREPLACE8625_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kREPLACE8625	= { FOLLOW_identifier_in_kREPLACE8625_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kSAVE8641  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kSAVE8641_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kSAVE8641	= { FOLLOW_identifier_in_kSAVE8641_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kSHOW8657  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kSHOW8657_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kSHOW8657	= { FOLLOW_identifier_in_kSHOW8657_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kVALUES8672  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kVALUES8672_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kVALUES8672	= { FOLLOW_identifier_in_kVALUES8672_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kBYTE8688  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kBYTE8688_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kBYTE8688	= { FOLLOW_identifier_in_kBYTE8688_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kDAY8705  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kDAY8705_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kDAY8705	= { FOLLOW_identifier_in_kDAY8705_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kMONTH8720  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kMONTH8720_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kMONTH8720	= { FOLLOW_identifier_in_kMONTH8720_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kSECOND8734  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kSECOND8734_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kSECOND8734	= { FOLLOW_identifier_in_kSECOND8734_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kYEAR8750  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kYEAR8750_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kYEAR8750	= { FOLLOW_identifier_in_kYEAR8750_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kLOCAL8765  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kLOCAL8765_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kLOCAL8765	= { FOLLOW_identifier_in_kLOCAL8765_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kZONE8781  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kZONE8781_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kZONE8781	= { FOLLOW_identifier_in_kZONE8781_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_kTIME8797  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_kTIME8797_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_kTIME8797	= { FOLLOW_identifier_in_kTIME8797_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_149_in_k_aggregate8811  */
static	ANTLR3_BITWORD FOLLOW_149_in_k_aggregate8811_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_149_in_k_aggregate8811	= { FOLLOW_149_in_k_aggregate8811_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_150_in_k_and8832  */
static	ANTLR3_BITWORD FOLLOW_150_in_k_and8832_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_150_in_k_and8832	= { FOLLOW_150_in_k_and8832_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_137_in_k_array8851  */
static	ANTLR3_BITWORD FOLLOW_137_in_k_array8851_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_137_in_k_array8851	= { FOLLOW_137_in_k_array8851_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_151_in_k_as8873  */
static	ANTLR3_BITWORD FOLLOW_151_in_k_as8873_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_151_in_k_as8873	= { FOLLOW_151_in_k_as8873_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_152_in_k_authid8891  */
static	ANTLR3_BITWORD FOLLOW_152_in_k_authid8891_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_152_in_k_authid8891	= { FOLLOW_152_in_k_authid8891_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_153_in_k_between8908  */
static	ANTLR3_BITWORD FOLLOW_153_in_k_between8908_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_153_in_k_between8908	= { FOLLOW_153_in_k_between8908_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_154_in_k_body8928  */
static	ANTLR3_BITWORD FOLLOW_154_in_k_body8928_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_154_in_k_body8928	= { FOLLOW_154_in_k_body8928_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_155_in_k_bulk8948  */
static	ANTLR3_BITWORD FOLLOW_155_in_k_bulk8948_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_155_in_k_bulk8948	= { FOLLOW_155_in_k_bulk8948_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_156_in_k_by8971  */
static	ANTLR3_BITWORD FOLLOW_156_in_k_by8971_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_156_in_k_by8971	= { FOLLOW_156_in_k_by8971_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_157_in_k_case8991  */
static	ANTLR3_BITWORD FOLLOW_157_in_k_case8991_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_157_in_k_case8991	= { FOLLOW_157_in_k_case8991_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_158_in_k_character9006  */
static	ANTLR3_BITWORD FOLLOW_158_in_k_character9006_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_158_in_k_character9006	= { FOLLOW_158_in_k_character9006_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_159_in_k_create9024  */
static	ANTLR3_BITWORD FOLLOW_159_in_k_create9024_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_159_in_k_create9024	= { FOLLOW_159_in_k_create9024_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_160_in_k_collect9041  */
static	ANTLR3_BITWORD FOLLOW_160_in_k_collect9041_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_160_in_k_collect9041	= { FOLLOW_160_in_k_collect9041_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_161_in_k_commit9059  */
static	ANTLR3_BITWORD FOLLOW_161_in_k_commit9059_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_161_in_k_commit9059	= { FOLLOW_161_in_k_commit9059_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_162_in_k_current_user9071  */
static	ANTLR3_BITWORD FOLLOW_162_in_k_current_user9071_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_162_in_k_current_user9071	= { FOLLOW_162_in_k_current_user9071_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_163_in_k_date9091  */
static	ANTLR3_BITWORD FOLLOW_163_in_k_date9091_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_163_in_k_date9091	= { FOLLOW_163_in_k_date9091_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_164_in_k_default9108  */
static	ANTLR3_BITWORD FOLLOW_164_in_k_default9108_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_164_in_k_default9108	= { FOLLOW_164_in_k_default9108_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_165_in_k_definer9125  */
static	ANTLR3_BITWORD FOLLOW_165_in_k_definer9125_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_165_in_k_definer9125	= { FOLLOW_165_in_k_definer9125_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_133_in_k_delete9142  */
static	ANTLR3_BITWORD FOLLOW_133_in_k_delete9142_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_133_in_k_delete9142	= { FOLLOW_133_in_k_delete9142_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_166_in_k_else9162  */
static	ANTLR3_BITWORD FOLLOW_166_in_k_else9162_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_166_in_k_else9162	= { FOLLOW_166_in_k_else9162_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_167_in_k_elsif9181  */
static	ANTLR3_BITWORD FOLLOW_167_in_k_elsif9181_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_167_in_k_elsif9181	= { FOLLOW_167_in_k_elsif9181_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_168_in_k_external9197  */
static	ANTLR3_BITWORD FOLLOW_168_in_k_external9197_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_168_in_k_external9197	= { FOLLOW_168_in_k_external9197_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_169_in_k_false9216  */
static	ANTLR3_BITWORD FOLLOW_169_in_k_false9216_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_169_in_k_false9216	= { FOLLOW_169_in_k_false9216_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_170_in_k_fetch9235  */
static	ANTLR3_BITWORD FOLLOW_170_in_k_fetch9235_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_170_in_k_fetch9235	= { FOLLOW_170_in_k_fetch9235_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_171_in_k_for9256  */
static	ANTLR3_BITWORD FOLLOW_171_in_k_for9256_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_171_in_k_for9256	= { FOLLOW_171_in_k_for9256_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_172_in_k_forall9274  */
static	ANTLR3_BITWORD FOLLOW_172_in_k_forall9274_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_172_in_k_forall9274	= { FOLLOW_172_in_k_forall9274_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_173_in_k_goto9294  */
static	ANTLR3_BITWORD FOLLOW_173_in_k_goto9294_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_173_in_k_goto9294	= { FOLLOW_173_in_k_goto9294_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_174_in_k_if9316  */
static	ANTLR3_BITWORD FOLLOW_174_in_k_if9316_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_174_in_k_if9316	= { FOLLOW_174_in_k_if9316_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_175_in_k_index9354  */
static	ANTLR3_BITWORD FOLLOW_175_in_k_index9354_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_175_in_k_index9354	= { FOLLOW_175_in_k_index9354_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_176_in_k_insert9372  */
static	ANTLR3_BITWORD FOLLOW_176_in_k_insert9372_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_176_in_k_insert9372	= { FOLLOW_176_in_k_insert9372_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_177_in_k_into9392  */
static	ANTLR3_BITWORD FOLLOW_177_in_k_into9392_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_177_in_k_into9392	= { FOLLOW_177_in_k_into9392_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_178_in_k_is9414  */
static	ANTLR3_BITWORD FOLLOW_178_in_k_is9414_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_178_in_k_is9414	= { FOLLOW_178_in_k_is9414_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_132_in_k_language9430  */
static	ANTLR3_BITWORD FOLLOW_132_in_k_language9430_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_132_in_k_language9430	= { FOLLOW_132_in_k_language9430_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_179_in_k_like9450  */
static	ANTLR3_BITWORD FOLLOW_179_in_k_like9450_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_179_in_k_like9450	= { FOLLOW_179_in_k_like9450_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_180_in_k_limit9469  */
static	ANTLR3_BITWORD FOLLOW_180_in_k_limit9469_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_180_in_k_limit9469	= { FOLLOW_180_in_k_limit9469_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_181_in_k_lock9489  */
static	ANTLR3_BITWORD FOLLOW_181_in_k_lock9489_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_181_in_k_lock9489	= { FOLLOW_181_in_k_lock9489_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_182_in_k_nchar9508  */
static	ANTLR3_BITWORD FOLLOW_182_in_k_nchar9508_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_182_in_k_nchar9508	= { FOLLOW_182_in_k_nchar9508_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_183_in_k_not9529  */
static	ANTLR3_BITWORD FOLLOW_183_in_k_not9529_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_183_in_k_not9529	= { FOLLOW_183_in_k_not9529_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_184_in_k_null9550  */
static	ANTLR3_BITWORD FOLLOW_184_in_k_null9550_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_184_in_k_null9550	= { FOLLOW_184_in_k_null9550_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_135_in_k_open9570  */
static	ANTLR3_BITWORD FOLLOW_135_in_k_open9570_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_135_in_k_open9570	= { FOLLOW_135_in_k_open9570_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_185_in_k_or9592  */
static	ANTLR3_BITWORD FOLLOW_185_in_k_or9592_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_185_in_k_or9592	= { FOLLOW_185_in_k_or9592_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_186_in_k_package9609  */
static	ANTLR3_BITWORD FOLLOW_186_in_k_package9609_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_186_in_k_package9609	= { FOLLOW_186_in_k_package9609_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_134_in_k_raise9628  */
static	ANTLR3_BITWORD FOLLOW_134_in_k_raise9628_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_134_in_k_raise9628	= { FOLLOW_134_in_k_raise9628_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_187_in_k_rollback9644  */
static	ANTLR3_BITWORD FOLLOW_187_in_k_rollback9644_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_187_in_k_rollback9644	= { FOLLOW_187_in_k_rollback9644_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_188_in_k_savepoint9659  */
static	ANTLR3_BITWORD FOLLOW_188_in_k_savepoint9659_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_188_in_k_savepoint9659	= { FOLLOW_188_in_k_savepoint9659_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_189_in_k_select9677  */
static	ANTLR3_BITWORD FOLLOW_189_in_k_select9677_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_189_in_k_select9677	= { FOLLOW_189_in_k_select9677_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_190_in_k_sql9699  */
static	ANTLR3_BITWORD FOLLOW_190_in_k_sql9699_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_190_in_k_sql9699	= { FOLLOW_190_in_k_sql9699_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_191_in_k_table9718  */
static	ANTLR3_BITWORD FOLLOW_191_in_k_table9718_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_191_in_k_table9718	= { FOLLOW_191_in_k_table9718_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_128_in_k_timestamp9734  */
static	ANTLR3_BITWORD FOLLOW_128_in_k_timestamp9734_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_128_in_k_timestamp9734	= { FOLLOW_128_in_k_timestamp9734_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_192_in_k_transaction9747  */
static	ANTLR3_BITWORD FOLLOW_192_in_k_transaction9747_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_192_in_k_transaction9747	= { FOLLOW_192_in_k_transaction9747_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_193_in_k_trigger9764  */
static	ANTLR3_BITWORD FOLLOW_193_in_k_trigger9764_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_193_in_k_trigger9764	= { FOLLOW_193_in_k_trigger9764_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_194_in_k_true9784  */
static	ANTLR3_BITWORD FOLLOW_194_in_k_true9784_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_194_in_k_true9784	= { FOLLOW_194_in_k_true9784_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_195_in_k_then9804  */
static	ANTLR3_BITWORD FOLLOW_195_in_k_then9804_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_195_in_k_then9804	= { FOLLOW_195_in_k_then9804_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_196_in_k_type9824  */
static	ANTLR3_BITWORD FOLLOW_196_in_k_type9824_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_196_in_k_type9824	= { FOLLOW_196_in_k_type9824_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_197_in_k_update9843  */
static	ANTLR3_BITWORD FOLLOW_197_in_k_update9843_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_197_in_k_update9843	= { FOLLOW_197_in_k_update9843_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_198_in_k_while9862  */
static	ANTLR3_BITWORD FOLLOW_198_in_k_while9862_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_198_in_k_while9862	= { FOLLOW_198_in_k_while9862_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_199_in_k_inserting9877  */
static	ANTLR3_BITWORD FOLLOW_199_in_k_inserting9877_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_199_in_k_inserting9877	= { FOLLOW_199_in_k_inserting9877_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_200_in_k_updating9893  */
static	ANTLR3_BITWORD FOLLOW_200_in_k_updating9893_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_200_in_k_updating9893	= { FOLLOW_200_in_k_updating9893_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_201_in_k_deleting9909  */
static	ANTLR3_BITWORD FOLLOW_201_in_k_deleting9909_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_201_in_k_deleting9909	= { FOLLOW_201_in_k_deleting9909_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_202_in_k_exists9928  */
static	ANTLR3_BITWORD FOLLOW_202_in_k_exists9928_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_202_in_k_exists9928	= { FOLLOW_202_in_k_exists9928_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_139_in_k_begin9947  */
static	ANTLR3_BITWORD FOLLOW_139_in_k_begin9947_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_139_in_k_begin9947	= { FOLLOW_139_in_k_begin9947_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_136_in_k_call9967  */
static	ANTLR3_BITWORD FOLLOW_136_in_k_call9967_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_136_in_k_call9967	= { FOLLOW_136_in_k_call9967_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_203_in_k_cast9987  */
static	ANTLR3_BITWORD FOLLOW_203_in_k_cast9987_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_203_in_k_cast9987	= { FOLLOW_203_in_k_cast9987_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_204_in_k_clob10007  */
static	ANTLR3_BITWORD FOLLOW_204_in_k_clob10007_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_204_in_k_clob10007	= { FOLLOW_204_in_k_clob10007_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_205_in_k_close10026  */
static	ANTLR3_BITWORD FOLLOW_205_in_k_close10026_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_205_in_k_close10026	= { FOLLOW_205_in_k_close10026_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_206_in_k_constant10042  */
static	ANTLR3_BITWORD FOLLOW_206_in_k_constant10042_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_206_in_k_constant10042	= { FOLLOW_206_in_k_constant10042_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_207_in_k_continue10058  */
static	ANTLR3_BITWORD FOLLOW_207_in_k_continue10058_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_207_in_k_continue10058	= { FOLLOW_207_in_k_continue10058_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_208_in_k_cursor10076  */
static	ANTLR3_BITWORD FOLLOW_208_in_k_cursor10076_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_208_in_k_cursor10076	= { FOLLOW_208_in_k_cursor10076_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_138_in_k_declare10094  */
static	ANTLR3_BITWORD FOLLOW_138_in_k_declare10094_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_138_in_k_declare10094	= { FOLLOW_138_in_k_declare10094_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_209_in_k_deterministic10106  */
static	ANTLR3_BITWORD FOLLOW_209_in_k_deterministic10106_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_209_in_k_deterministic10106	= { FOLLOW_209_in_k_deterministic10106_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_210_in_k_end10128  */
static	ANTLR3_BITWORD FOLLOW_210_in_k_end10128_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_210_in_k_end10128	= { FOLLOW_210_in_k_end10128_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_211_in_k_escape10146  */
static	ANTLR3_BITWORD FOLLOW_211_in_k_escape10146_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_211_in_k_escape10146	= { FOLLOW_211_in_k_escape10146_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_212_in_k_exception10161  */
static	ANTLR3_BITWORD FOLLOW_212_in_k_exception10161_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_212_in_k_exception10161	= { FOLLOW_212_in_k_exception10161_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_131_in_k_execute10178  */
static	ANTLR3_BITWORD FOLLOW_131_in_k_execute10178_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_131_in_k_execute10178	= { FOLLOW_131_in_k_execute10178_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_213_in_k_exit10198  */
static	ANTLR3_BITWORD FOLLOW_213_in_k_exit10198_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_213_in_k_exit10198	= { FOLLOW_213_in_k_exit10198_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_214_in_k_function10215  */
static	ANTLR3_BITWORD FOLLOW_214_in_k_function10215_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_214_in_k_function10215	= { FOLLOW_214_in_k_function10215_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_215_in_k_immediate10230  */
static	ANTLR3_BITWORD FOLLOW_215_in_k_immediate10230_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_215_in_k_immediate10230	= { FOLLOW_215_in_k_immediate10230_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_130_in_k_interval10246  */
static	ANTLR3_BITWORD FOLLOW_130_in_k_interval10246_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_130_in_k_interval10246	= { FOLLOW_130_in_k_interval10246_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_126_in_k_loop10264  */
static	ANTLR3_BITWORD FOLLOW_126_in_k_loop10264_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_126_in_k_loop10264	= { FOLLOW_126_in_k_loop10264_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_216_in_k_merge10283  */
static	ANTLR3_BITWORD FOLLOW_216_in_k_merge10283_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_216_in_k_merge10283	= { FOLLOW_216_in_k_merge10283_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_217_in_k_national10299  */
static	ANTLR3_BITWORD FOLLOW_217_in_k_national10299_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_217_in_k_national10299	= { FOLLOW_217_in_k_national10299_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_218_in_k_nocopy10317  */
static	ANTLR3_BITWORD FOLLOW_218_in_k_nocopy10317_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_218_in_k_nocopy10317	= { FOLLOW_218_in_k_nocopy10317_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_219_in_k_others10335  */
static	ANTLR3_BITWORD FOLLOW_219_in_k_others10335_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_219_in_k_others10335	= { FOLLOW_219_in_k_others10335_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_220_in_k_parallel_enable10365  */
static	ANTLR3_BITWORD FOLLOW_220_in_k_parallel_enable10365_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_220_in_k_parallel_enable10365	= { FOLLOW_220_in_k_parallel_enable10365_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_221_in_k_pipe10385  */
static	ANTLR3_BITWORD FOLLOW_221_in_k_pipe10385_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_221_in_k_pipe10385	= { FOLLOW_221_in_k_pipe10385_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_222_in_k_pipelined10400  */
static	ANTLR3_BITWORD FOLLOW_222_in_k_pipelined10400_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_222_in_k_pipelined10400	= { FOLLOW_222_in_k_pipelined10400_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_223_in_k_pragma10418  */
static	ANTLR3_BITWORD FOLLOW_223_in_k_pragma10418_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_223_in_k_pragma10418	= { FOLLOW_223_in_k_pragma10418_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_224_in_k_procedure10433  */
static	ANTLR3_BITWORD FOLLOW_224_in_k_procedure10433_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_224_in_k_procedure10433	= { FOLLOW_224_in_k_procedure10433_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_225_in_k_record10451  */
static	ANTLR3_BITWORD FOLLOW_225_in_k_record10451_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_225_in_k_record10451	= { FOLLOW_225_in_k_record10451_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_226_in_k_ref10472  */
static	ANTLR3_BITWORD FOLLOW_226_in_k_ref10472_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_226_in_k_ref10472	= { FOLLOW_226_in_k_ref10472_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_227_in_k_result_cache10484  */
static	ANTLR3_BITWORD FOLLOW_227_in_k_result_cache10484_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_227_in_k_result_cache10484	= { FOLLOW_227_in_k_result_cache10484_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_228_in_k_return10502  */
static	ANTLR3_BITWORD FOLLOW_228_in_k_return10502_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_228_in_k_return10502	= { FOLLOW_228_in_k_return10502_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_229_in_k_returning10517  */
static	ANTLR3_BITWORD FOLLOW_229_in_k_returning10517_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_229_in_k_returning10517	= { FOLLOW_229_in_k_returning10517_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_230_in_k_row10538  */
static	ANTLR3_BITWORD FOLLOW_230_in_k_row10538_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_230_in_k_row10538	= { FOLLOW_230_in_k_row10538_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_231_in_k_rowtype10555  */
static	ANTLR3_BITWORD FOLLOW_231_in_k_rowtype10555_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_231_in_k_rowtype10555	= { FOLLOW_231_in_k_rowtype10555_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_232_in_k_systimestamp10567  */
static	ANTLR3_BITWORD FOLLOW_232_in_k_systimestamp10567_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_232_in_k_systimestamp10567	= { FOLLOW_232_in_k_systimestamp10567_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_233_in_k_subtype10584  */
static	ANTLR3_BITWORD FOLLOW_233_in_k_subtype10584_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_233_in_k_subtype10584	= { FOLLOW_233_in_k_subtype10584_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_234_in_k_varray10618  */
static	ANTLR3_BITWORD FOLLOW_234_in_k_varray10618_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_234_in_k_varray10618	= { FOLLOW_234_in_k_varray10618_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_235_in_k_varying10635  */
static	ANTLR3_BITWORD FOLLOW_235_in_k_varying10635_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_235_in_k_varying10635	= { FOLLOW_235_in_k_varying10635_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_236_in_k_when10655  */
static	ANTLR3_BITWORD FOLLOW_236_in_k_when10655_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_236_in_k_when10655	= { FOLLOW_236_in_k_when10655_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_quoted_string0  */
static	ANTLR3_BITWORD FOLLOW_set_in_quoted_string0_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_quoted_string0	= { FOLLOW_set_in_quoted_string0_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BINDVAR_in_bindvar11013  */
static	ANTLR3_BITWORD FOLLOW_BINDVAR_in_bindvar11013_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_BINDVAR_in_bindvar11013	= { FOLLOW_BINDVAR_in_bindvar11013_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_bindvar11023  */
static	ANTLR3_BITWORD FOLLOW_COLON_in_bindvar11023_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_bindvar11023	= { FOLLOW_COLON_in_bindvar11023_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_bindvar11027  */
static	ANTLR3_BITWORD FOLLOW_ID_in_bindvar11027_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_bindvar11027	= { FOLLOW_ID_in_bindvar11027_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOUBLEVERTBAR_in_doublevertbar11408  */
static	ANTLR3_BITWORD FOLLOW_DOUBLEVERTBAR_in_doublevertbar11408_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_DOUBLEVERTBAR_in_doublevertbar11408	= { FOLLOW_DOUBLEVERTBAR_in_doublevertbar11408_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_VERTBAR_in_doublevertbar11416  */
static	ANTLR3_BITWORD FOLLOW_VERTBAR_in_doublevertbar11416_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0040000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_VERTBAR_in_doublevertbar11416	= { FOLLOW_VERTBAR_in_doublevertbar11416_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_VERTBAR_in_doublevertbar11418  */
static	ANTLR3_BITWORD FOLLOW_VERTBAR_in_doublevertbar11418_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_VERTBAR_in_doublevertbar11418	= { FOLLOW_VERTBAR_in_doublevertbar11418_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_EQ_in_not_equal11441  */
static	ANTLR3_BITWORD FOLLOW_NOT_EQ_in_not_equal11441_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_NOT_EQ_in_not_equal11441	= { FOLLOW_NOT_EQ_in_not_equal11441_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LTH_in_not_equal11449  */
static	ANTLR3_BITWORD FOLLOW_LTH_in_not_equal11449_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_LTH_in_not_equal11449	= { FOLLOW_LTH_in_not_equal11449_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GTH_in_not_equal11451  */
static	ANTLR3_BITWORD FOLLOW_GTH_in_not_equal11451_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_GTH_in_not_equal11451	= { FOLLOW_GTH_in_not_equal11451_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_237_in_not_equal11459  */
static	ANTLR3_BITWORD FOLLOW_237_in_not_equal11459_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000020000000) };
static  ANTLR3_BITSET_LIST FOLLOW_237_in_not_equal11459	= { FOLLOW_237_in_not_equal11459_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQ_in_not_equal11461  */
static	ANTLR3_BITWORD FOLLOW_EQ_in_not_equal11461_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_EQ_in_not_equal11461	= { FOLLOW_EQ_in_not_equal11461_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_238_in_not_equal11469  */
static	ANTLR3_BITWORD FOLLOW_238_in_not_equal11469_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000020000000) };
static  ANTLR3_BITSET_LIST FOLLOW_238_in_not_equal11469	= { FOLLOW_238_in_not_equal11469_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQ_in_not_equal11471  */
static	ANTLR3_BITWORD FOLLOW_EQ_in_not_equal11471_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_EQ_in_not_equal11471	= { FOLLOW_EQ_in_not_equal11471_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_239_in_not_equal11479  */
static	ANTLR3_BITWORD FOLLOW_239_in_not_equal11479_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000020000000) };
static  ANTLR3_BITSET_LIST FOLLOW_239_in_not_equal11479	= { FOLLOW_239_in_not_equal11479_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQ_in_not_equal11481  */
static	ANTLR3_BITWORD FOLLOW_EQ_in_not_equal11481_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_EQ_in_not_equal11481	= { FOLLOW_EQ_in_not_equal11481_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LEQ_in_leq11534  */
static	ANTLR3_BITWORD FOLLOW_LEQ_in_leq11534_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_LEQ_in_leq11534	= { FOLLOW_LEQ_in_leq11534_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LTH_in_leq11542  */
static	ANTLR3_BITWORD FOLLOW_LTH_in_leq11542_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000020000000) };
static  ANTLR3_BITSET_LIST FOLLOW_LTH_in_leq11542	= { FOLLOW_LTH_in_leq11542_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQ_in_leq11544  */
static	ANTLR3_BITWORD FOLLOW_EQ_in_leq11544_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_EQ_in_leq11544	= { FOLLOW_EQ_in_leq11544_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GEQ_in_geq11577  */
static	ANTLR3_BITWORD FOLLOW_GEQ_in_geq11577_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_GEQ_in_geq11577	= { FOLLOW_GEQ_in_geq11577_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GTH_in_geq11585  */
static	ANTLR3_BITWORD FOLLOW_GTH_in_geq11585_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000020000000) };
static  ANTLR3_BITSET_LIST FOLLOW_GTH_in_geq11585	= { FOLLOW_GTH_in_geq11585_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQ_in_geq11587  */
static	ANTLR3_BITWORD FOLLOW_EQ_in_geq11587_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_EQ_in_geq11587	= { FOLLOW_EQ_in_geq11587_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_type_attr11837  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_type_attr11837_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_type_attr11837	= { FOLLOW_PERCENT_in_type_attr11837_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_type_in_type_attr11839  */
static	ANTLR3_BITWORD FOLLOW_k_type_in_type_attr11839_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_type_in_type_attr11839	= { FOLLOW_k_type_in_type_attr11839_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_rowtype_attr11849  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_rowtype_attr11849_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000008000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_rowtype_attr11849	= { FOLLOW_PERCENT_in_rowtype_attr11849_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_rowtype_in_rowtype_attr11851  */
static	ANTLR3_BITWORD FOLLOW_k_rowtype_in_rowtype_attr11851_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_rowtype_in_rowtype_attr11851	= { FOLLOW_k_rowtype_in_rowtype_attr11851_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_notfound_attr11861  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_notfound_attr11861_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_notfound_attr11861	= { FOLLOW_PERCENT_in_notfound_attr11861_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_240_in_notfound_attr11863  */
static	ANTLR3_BITWORD FOLLOW_240_in_notfound_attr11863_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_240_in_notfound_attr11863	= { FOLLOW_240_in_notfound_attr11863_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_found_attr11873  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_found_attr11873_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_found_attr11873	= { FOLLOW_PERCENT_in_found_attr11873_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_127_in_found_attr11875  */
static	ANTLR3_BITWORD FOLLOW_127_in_found_attr11875_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_127_in_found_attr11875	= { FOLLOW_127_in_found_attr11875_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_isopen_attr11885  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_isopen_attr11885_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0002000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_isopen_attr11885	= { FOLLOW_PERCENT_in_isopen_attr11885_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_241_in_isopen_attr11887  */
static	ANTLR3_BITWORD FOLLOW_241_in_isopen_attr11887_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_241_in_isopen_attr11887	= { FOLLOW_241_in_isopen_attr11887_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_rowcount_attr11897  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_rowcount_attr11897_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_rowcount_attr11897	= { FOLLOW_PERCENT_in_rowcount_attr11897_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_129_in_rowcount_attr11899  */
static	ANTLR3_BITWORD FOLLOW_129_in_rowcount_attr11899_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_129_in_rowcount_attr11899	= { FOLLOW_129_in_rowcount_attr11899_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_bulk_rowcount_attr11909  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_bulk_rowcount_attr11909_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_bulk_rowcount_attr11909	= { FOLLOW_PERCENT_in_bulk_rowcount_attr11909_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_242_in_bulk_rowcount_attr11911  */
static	ANTLR3_BITWORD FOLLOW_242_in_bulk_rowcount_attr11911_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_242_in_bulk_rowcount_attr11911	= { FOLLOW_242_in_bulk_rowcount_attr11911_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PERCENT_in_charset_attr11922  */
static	ANTLR3_BITWORD FOLLOW_PERCENT_in_charset_attr11922_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_PERCENT_in_charset_attr11922	= { FOLLOW_PERCENT_in_charset_attr11922_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_243_in_charset_attr11924  */
static	ANTLR3_BITWORD FOLLOW_243_in_charset_attr11924_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_243_in_charset_attr11924	= { FOLLOW_243_in_charset_attr11924_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_synpred9_OraclePLSQL1143  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_synpred9_OraclePLSQL1143_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_synpred9_OraclePLSQL1143	= { FOLLOW_k_create_in_synpred9_OraclePLSQL1143_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_synpred9_OraclePLSQL1146  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_synpred9_OraclePLSQL1146_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_synpred9_OraclePLSQL1146	= { FOLLOW_k_or_in_synpred9_OraclePLSQL1146_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_synpred9_OraclePLSQL1149  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_synpred9_OraclePLSQL1149_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_synpred9_OraclePLSQL1149	= { FOLLOW_kREPLACE_in_synpred9_OraclePLSQL1149_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_trigger_in_synpred9_OraclePLSQL1152  */
static	ANTLR3_BITWORD FOLLOW_k_trigger_in_synpred9_OraclePLSQL1152_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_trigger_in_synpred9_OraclePLSQL1152	= { FOLLOW_k_trigger_in_synpred9_OraclePLSQL1152_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_synpred13_OraclePLSQL1166  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_synpred13_OraclePLSQL1166_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_synpred13_OraclePLSQL1166	= { FOLLOW_k_create_in_synpred13_OraclePLSQL1166_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_synpred13_OraclePLSQL1169  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_synpred13_OraclePLSQL1169_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_synpred13_OraclePLSQL1169	= { FOLLOW_k_or_in_synpred13_OraclePLSQL1169_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_synpred13_OraclePLSQL1172  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_synpred13_OraclePLSQL1172_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_synpred13_OraclePLSQL1172	= { FOLLOW_kREPLACE_in_synpred13_OraclePLSQL1172_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_function_in_synpred13_OraclePLSQL1175  */
static	ANTLR3_BITWORD FOLLOW_k_function_in_synpred13_OraclePLSQL1175_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_function_in_synpred13_OraclePLSQL1175	= { FOLLOW_k_function_in_synpred13_OraclePLSQL1175_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_synpred17_OraclePLSQL1189  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_synpred17_OraclePLSQL1189_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000100000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_synpred17_OraclePLSQL1189	= { FOLLOW_k_create_in_synpred17_OraclePLSQL1189_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_synpred17_OraclePLSQL1192  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_synpred17_OraclePLSQL1192_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000100000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_synpred17_OraclePLSQL1192	= { FOLLOW_k_or_in_synpred17_OraclePLSQL1192_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_synpred17_OraclePLSQL1195  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_synpred17_OraclePLSQL1195_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000100000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_synpred17_OraclePLSQL1195	= { FOLLOW_kREPLACE_in_synpred17_OraclePLSQL1195_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_procedure_in_synpred17_OraclePLSQL1198  */
static	ANTLR3_BITWORD FOLLOW_k_procedure_in_synpred17_OraclePLSQL1198_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_procedure_in_synpred17_OraclePLSQL1198	= { FOLLOW_k_procedure_in_synpred17_OraclePLSQL1198_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_synpred21_OraclePLSQL1212  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_synpred21_OraclePLSQL1212_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0200000080000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_synpred21_OraclePLSQL1212	= { FOLLOW_k_create_in_synpred21_OraclePLSQL1212_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_synpred21_OraclePLSQL1215  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_synpred21_OraclePLSQL1215_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_synpred21_OraclePLSQL1215	= { FOLLOW_k_or_in_synpred21_OraclePLSQL1215_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_synpred21_OraclePLSQL1218  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_synpred21_OraclePLSQL1218_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000080000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_synpred21_OraclePLSQL1218	= { FOLLOW_kREPLACE_in_synpred21_OraclePLSQL1218_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_type_in_synpred21_OraclePLSQL1221  */
static	ANTLR3_BITWORD FOLLOW_k_type_in_synpred21_OraclePLSQL1221_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_type_in_synpred21_OraclePLSQL1221	= { FOLLOW_k_type_in_synpred21_OraclePLSQL1221_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_create_in_synpred25_OraclePLSQL1235  */
static	ANTLR3_BITWORD FOLLOW_k_create_in_synpred25_OraclePLSQL1235_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0600000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_create_in_synpred25_OraclePLSQL1235	= { FOLLOW_k_create_in_synpred25_OraclePLSQL1235_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_or_in_synpred25_OraclePLSQL1238  */
static	ANTLR3_BITWORD FOLLOW_k_or_in_synpred25_OraclePLSQL1238_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0400000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_or_in_synpred25_OraclePLSQL1238	= { FOLLOW_k_or_in_synpred25_OraclePLSQL1238_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kREPLACE_in_synpred25_OraclePLSQL1241  */
static	ANTLR3_BITWORD FOLLOW_kREPLACE_in_synpred25_OraclePLSQL1241_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0400000080000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kREPLACE_in_synpred25_OraclePLSQL1241	= { FOLLOW_kREPLACE_in_synpred25_OraclePLSQL1241_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_package_in_synpred25_OraclePLSQL1244  */
static	ANTLR3_BITWORD FOLLOW_k_package_in_synpred25_OraclePLSQL1244_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000004000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_package_in_synpred25_OraclePLSQL1244	= { FOLLOW_k_package_in_synpred25_OraclePLSQL1244_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_body_in_synpred25_OraclePLSQL1246  */
static	ANTLR3_BITWORD FOLLOW_k_body_in_synpred25_OraclePLSQL1246_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_body_in_synpred25_OraclePLSQL1246	= { FOLLOW_k_body_in_synpred25_OraclePLSQL1246_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_create_package_body_in_synpred26_OraclePLSQL1261  */
static	ANTLR3_BITWORD FOLLOW_create_package_body_in_synpred26_OraclePLSQL1261_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_create_package_body_in_synpred26_OraclePLSQL1261	= { FOLLOW_create_package_body_in_synpred26_OraclePLSQL1261_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_interval_in_synpred75_OraclePLSQL2229  */
static	ANTLR3_BITWORD FOLLOW_k_interval_in_synpred75_OraclePLSQL2229_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_interval_in_synpred75_OraclePLSQL2229	= { FOLLOW_k_interval_in_synpred75_OraclePLSQL2229_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kDAY_in_synpred75_OraclePLSQL2231  */
static	ANTLR3_BITWORD FOLLOW_kDAY_in_synpred75_OraclePLSQL2231_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_kDAY_in_synpred75_OraclePLSQL2231	= { FOLLOW_kDAY_in_synpred75_OraclePLSQL2231_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred75_OraclePLSQL2235  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred75_OraclePLSQL2235_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred75_OraclePLSQL2235	= { FOLLOW_LPAREN_in_synpred75_OraclePLSQL2235_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_synpred75_OraclePLSQL2237  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_synpred75_OraclePLSQL2237_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_synpred75_OraclePLSQL2237	= { FOLLOW_INTEGER_in_synpred75_OraclePLSQL2237_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred75_OraclePLSQL2239  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred75_OraclePLSQL2239_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred75_OraclePLSQL2239	= { FOLLOW_RPAREN_in_synpred75_OraclePLSQL2239_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_to_in_synpred75_OraclePLSQL2244  */
static	ANTLR3_BITWORD FOLLOW_r_to_in_synpred75_OraclePLSQL2244_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_to_in_synpred75_OraclePLSQL2244	= { FOLLOW_r_to_in_synpred75_OraclePLSQL2244_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kSECOND_in_synpred75_OraclePLSQL2246  */
static	ANTLR3_BITWORD FOLLOW_kSECOND_in_synpred75_OraclePLSQL2246_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_kSECOND_in_synpred75_OraclePLSQL2246	= { FOLLOW_kSECOND_in_synpred75_OraclePLSQL2246_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred75_OraclePLSQL2250  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred75_OraclePLSQL2250_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred75_OraclePLSQL2250	= { FOLLOW_LPAREN_in_synpred75_OraclePLSQL2250_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_synpred75_OraclePLSQL2252  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_synpred75_OraclePLSQL2252_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_synpred75_OraclePLSQL2252	= { FOLLOW_INTEGER_in_synpred75_OraclePLSQL2252_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred75_OraclePLSQL2254  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred75_OraclePLSQL2254_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred75_OraclePLSQL2254	= { FOLLOW_RPAREN_in_synpred75_OraclePLSQL2254_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_interval_in_synpred77_OraclePLSQL2262  */
static	ANTLR3_BITWORD FOLLOW_k_interval_in_synpred77_OraclePLSQL2262_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_interval_in_synpred77_OraclePLSQL2262	= { FOLLOW_k_interval_in_synpred77_OraclePLSQL2262_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kYEAR_in_synpred77_OraclePLSQL2264  */
static	ANTLR3_BITWORD FOLLOW_kYEAR_in_synpred77_OraclePLSQL2264_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_kYEAR_in_synpred77_OraclePLSQL2264	= { FOLLOW_kYEAR_in_synpred77_OraclePLSQL2264_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred77_OraclePLSQL2268  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred77_OraclePLSQL2268_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred77_OraclePLSQL2268	= { FOLLOW_LPAREN_in_synpred77_OraclePLSQL2268_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_in_synpred77_OraclePLSQL2270  */
static	ANTLR3_BITWORD FOLLOW_INTEGER_in_synpred77_OraclePLSQL2270_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_in_synpred77_OraclePLSQL2270	= { FOLLOW_INTEGER_in_synpred77_OraclePLSQL2270_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred77_OraclePLSQL2272  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred77_OraclePLSQL2272_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000004000), ANTLR3_UINT64_LIT(0x0000000000020000) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred77_OraclePLSQL2272	= { FOLLOW_RPAREN_in_synpred77_OraclePLSQL2272_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_to_in_synpred77_OraclePLSQL2277  */
static	ANTLR3_BITWORD FOLLOW_r_to_in_synpred77_OraclePLSQL2277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_r_to_in_synpred77_OraclePLSQL2277	= { FOLLOW_r_to_in_synpred77_OraclePLSQL2277_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kMONTH_in_synpred77_OraclePLSQL2279  */
static	ANTLR3_BITWORD FOLLOW_kMONTH_in_synpred77_OraclePLSQL2279_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_kMONTH_in_synpred77_OraclePLSQL2279	= { FOLLOW_kMONTH_in_synpred77_OraclePLSQL2279_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_synpred118_OraclePLSQL2708  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_synpred118_OraclePLSQL2708_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_synpred118_OraclePLSQL2708	= { FOLLOW_k_ref_in_synpred118_OraclePLSQL2708_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_synpred118_OraclePLSQL2714  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_synpred118_OraclePLSQL2714_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_synpred118_OraclePLSQL2714	= { FOLLOW_schema_name_in_synpred118_OraclePLSQL2714_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred118_OraclePLSQL2716  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred118_OraclePLSQL2716_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred118_OraclePLSQL2716	= { FOLLOW_DOT_in_synpred118_OraclePLSQL2716_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_synpred118_OraclePLSQL2720  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_synpred118_OraclePLSQL2720_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_synpred118_OraclePLSQL2720	= { FOLLOW_identifier_in_synpred118_OraclePLSQL2720_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred118_OraclePLSQL2723  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred118_OraclePLSQL2723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x000000000000007F) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred118_OraclePLSQL2723	= { FOLLOW_DOT_in_synpred118_OraclePLSQL2723_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_column_name_in_synpred118_OraclePLSQL2725  */
static	ANTLR3_BITWORD FOLLOW_column_name_in_synpred118_OraclePLSQL2725_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_column_name_in_synpred118_OraclePLSQL2725	= { FOLLOW_column_name_in_synpred118_OraclePLSQL2725_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_attr_in_synpred118_OraclePLSQL2728  */
static	ANTLR3_BITWORD FOLLOW_type_attr_in_synpred118_OraclePLSQL2728_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_attr_in_synpred118_OraclePLSQL2728	= { FOLLOW_type_attr_in_synpred118_OraclePLSQL2728_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_synpred121_OraclePLSQL2738  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_synpred121_OraclePLSQL2738_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_synpred121_OraclePLSQL2738	= { FOLLOW_k_ref_in_synpred121_OraclePLSQL2738_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_synpred121_OraclePLSQL2744  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_synpred121_OraclePLSQL2744_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_synpred121_OraclePLSQL2744	= { FOLLOW_schema_name_in_synpred121_OraclePLSQL2744_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred121_OraclePLSQL2746  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred121_OraclePLSQL2746_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred121_OraclePLSQL2746	= { FOLLOW_DOT_in_synpred121_OraclePLSQL2746_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_name_ex_in_synpred121_OraclePLSQL2750  */
static	ANTLR3_BITWORD FOLLOW_variable_name_ex_in_synpred121_OraclePLSQL2750_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0020000000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_variable_name_ex_in_synpred121_OraclePLSQL2750	= { FOLLOW_variable_name_ex_in_synpred121_OraclePLSQL2750_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_attr_in_synpred121_OraclePLSQL2753  */
static	ANTLR3_BITWORD FOLLOW_type_attr_in_synpred121_OraclePLSQL2753_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_type_attr_in_synpred121_OraclePLSQL2753	= { FOLLOW_type_attr_in_synpred121_OraclePLSQL2753_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_synpred126_OraclePLSQL2796  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_synpred126_OraclePLSQL2796_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x00400000400CD005), ANTLR3_UINT64_LIT(0x0000000402001000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_synpred126_OraclePLSQL2796	= { FOLLOW_k_ref_in_synpred126_OraclePLSQL2796_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_name_in_synpred126_OraclePLSQL2801  */
static	ANTLR3_BITWORD FOLLOW_datatype_name_in_synpred126_OraclePLSQL2801_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_name_in_synpred126_OraclePLSQL2801	= { FOLLOW_datatype_name_in_synpred126_OraclePLSQL2801_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_ref_in_synpred131_OraclePLSQL2811  */
static	ANTLR3_BITWORD FOLLOW_k_ref_in_synpred131_OraclePLSQL2811_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000800000001) };
static  ANTLR3_BITSET_LIST FOLLOW_k_ref_in_synpred131_OraclePLSQL2811	= { FOLLOW_k_ref_in_synpred131_OraclePLSQL2811_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_date_in_synpred131_OraclePLSQL2817  */
static	ANTLR3_BITWORD FOLLOW_k_date_in_synpred131_OraclePLSQL2817_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_date_in_synpred131_OraclePLSQL2817	= { FOLLOW_k_date_in_synpred131_OraclePLSQL2817_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_timestamp_in_synpred131_OraclePLSQL2821  */
static	ANTLR3_BITWORD FOLLOW_k_timestamp_in_synpred131_OraclePLSQL2821_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000004000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_timestamp_in_synpred131_OraclePLSQL2821	= { FOLLOW_k_timestamp_in_synpred131_OraclePLSQL2821_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred131_OraclePLSQL2826  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred131_OraclePLSQL2826_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred131_OraclePLSQL2826	= { FOLLOW_LPAREN_in_synpred131_OraclePLSQL2826_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2828  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2828_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2828	= { FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2828_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_synpred131_OraclePLSQL2832  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_synpred131_OraclePLSQL2832_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000200000) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_synpred131_OraclePLSQL2832	= { FOLLOW_COMMA_in_synpred131_OraclePLSQL2832_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2834  */
static	ANTLR3_BITWORD FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2834_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2834	= { FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2834_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred131_OraclePLSQL2839  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred131_OraclePLSQL2839_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred131_OraclePLSQL2839	= { FOLLOW_RPAREN_in_synpred131_OraclePLSQL2839_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_execute_in_synpred157_OraclePLSQL3144  */
static	ANTLR3_BITWORD FOLLOW_k_execute_in_synpred157_OraclePLSQL3144_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000800000) };
static  ANTLR3_BITSET_LIST FOLLOW_k_execute_in_synpred157_OraclePLSQL3144	= { FOLLOW_k_execute_in_synpred157_OraclePLSQL3144_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_immediate_in_synpred157_OraclePLSQL3146  */
static	ANTLR3_BITWORD FOLLOW_k_immediate_in_synpred157_OraclePLSQL3146_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_immediate_in_synpred157_OraclePLSQL3146	= { FOLLOW_k_immediate_in_synpred157_OraclePLSQL3146_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_if_in_synpred158_OraclePLSQL3157  */
static	ANTLR3_BITWORD FOLLOW_k_if_in_synpred158_OraclePLSQL3157_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_if_in_synpred158_OraclePLSQL3157	= { FOLLOW_k_if_in_synpred158_OraclePLSQL3157_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_case_in_synpred159_OraclePLSQL3168  */
static	ANTLR3_BITWORD FOLLOW_k_case_in_synpred159_OraclePLSQL3168_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_case_in_synpred159_OraclePLSQL3168	= { FOLLOW_k_case_in_synpred159_OraclePLSQL3168_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_open_in_synpred160_OraclePLSQL3182  */
static	ANTLR3_BITWORD FOLLOW_k_open_in_synpred160_OraclePLSQL3182_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_open_in_synpred160_OraclePLSQL3182	= { FOLLOW_k_open_in_synpred160_OraclePLSQL3182_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_close_in_synpred161_OraclePLSQL3205  */
static	ANTLR3_BITWORD FOLLOW_k_close_in_synpred161_OraclePLSQL3205_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_close_in_synpred161_OraclePLSQL3205	= { FOLLOW_k_close_in_synpred161_OraclePLSQL3205_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_continue_in_synpred162_OraclePLSQL3219  */
static	ANTLR3_BITWORD FOLLOW_k_continue_in_synpred162_OraclePLSQL3219_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_continue_in_synpred162_OraclePLSQL3219	= { FOLLOW_k_continue_in_synpred162_OraclePLSQL3219_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_pipe_in_synpred163_OraclePLSQL3233  */
static	ANTLR3_BITWORD FOLLOW_k_pipe_in_synpred163_OraclePLSQL3233_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_pipe_in_synpred163_OraclePLSQL3233	= { FOLLOW_k_pipe_in_synpred163_OraclePLSQL3233_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_goto_in_synpred164_OraclePLSQL3247  */
static	ANTLR3_BITWORD FOLLOW_k_goto_in_synpred164_OraclePLSQL3247_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_goto_in_synpred164_OraclePLSQL3247	= { FOLLOW_k_goto_in_synpred164_OraclePLSQL3247_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_exit_in_synpred165_OraclePLSQL3262  */
static	ANTLR3_BITWORD FOLLOW_k_exit_in_synpred165_OraclePLSQL3262_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_exit_in_synpred165_OraclePLSQL3262	= { FOLLOW_k_exit_in_synpred165_OraclePLSQL3262_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_return_in_synpred166_OraclePLSQL3276  */
static	ANTLR3_BITWORD FOLLOW_k_return_in_synpred166_OraclePLSQL3276_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_return_in_synpred166_OraclePLSQL3276	= { FOLLOW_k_return_in_synpred166_OraclePLSQL3276_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_declare_in_synpred168_OraclePLSQL3290  */
static	ANTLR3_BITWORD FOLLOW_k_declare_in_synpred168_OraclePLSQL3290_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_declare_in_synpred168_OraclePLSQL3290	= { FOLLOW_k_declare_in_synpred168_OraclePLSQL3290_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_begin_in_synpred168_OraclePLSQL3294  */
static	ANTLR3_BITWORD FOLLOW_k_begin_in_synpred168_OraclePLSQL3294_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_begin_in_synpred168_OraclePLSQL3294	= { FOLLOW_k_begin_in_synpred168_OraclePLSQL3294_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_raise_in_synpred169_OraclePLSQL3308  */
static	ANTLR3_BITWORD FOLLOW_k_raise_in_synpred169_OraclePLSQL3308_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_raise_in_synpred169_OraclePLSQL3308	= { FOLLOW_k_raise_in_synpred169_OraclePLSQL3308_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_fetch_in_synpred170_OraclePLSQL3322  */
static	ANTLR3_BITWORD FOLLOW_k_fetch_in_synpred170_OraclePLSQL3322_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_fetch_in_synpred170_OraclePLSQL3322	= { FOLLOW_k_fetch_in_synpred170_OraclePLSQL3322_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_loop_in_synpred171_OraclePLSQL3336  */
static	ANTLR3_BITWORD FOLLOW_k_loop_in_synpred171_OraclePLSQL3336_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_loop_in_synpred171_OraclePLSQL3336	= { FOLLOW_k_loop_in_synpred171_OraclePLSQL3336_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_while_in_synpred172_OraclePLSQL3350  */
static	ANTLR3_BITWORD FOLLOW_k_while_in_synpred172_OraclePLSQL3350_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_while_in_synpred172_OraclePLSQL3350	= { FOLLOW_k_while_in_synpred172_OraclePLSQL3350_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_null_in_synpred173_OraclePLSQL3364  */
static	ANTLR3_BITWORD FOLLOW_k_null_in_synpred173_OraclePLSQL3364_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_null_in_synpred173_OraclePLSQL3364	= { FOLLOW_k_null_in_synpred173_OraclePLSQL3364_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_for_in_synpred174_OraclePLSQL3378  */
static	ANTLR3_BITWORD FOLLOW_k_for_in_synpred174_OraclePLSQL3378_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_for_in_synpred174_OraclePLSQL3378	= { FOLLOW_k_for_in_synpred174_OraclePLSQL3378_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_forall_in_synpred175_OraclePLSQL3392  */
static	ANTLR3_BITWORD FOLLOW_k_forall_in_synpred175_OraclePLSQL3392_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_forall_in_synpred175_OraclePLSQL3392	= { FOLLOW_k_forall_in_synpred175_OraclePLSQL3392_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_commit_in_synpred186_OraclePLSQL3406  */
static	ANTLR3_BITWORD FOLLOW_k_commit_in_synpred186_OraclePLSQL3406_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_commit_in_synpred186_OraclePLSQL3406	= { FOLLOW_k_commit_in_synpred186_OraclePLSQL3406_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_delete_in_synpred186_OraclePLSQL3410  */
static	ANTLR3_BITWORD FOLLOW_k_delete_in_synpred186_OraclePLSQL3410_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_delete_in_synpred186_OraclePLSQL3410	= { FOLLOW_k_delete_in_synpred186_OraclePLSQL3410_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_insert_in_synpred186_OraclePLSQL3414  */
static	ANTLR3_BITWORD FOLLOW_k_insert_in_synpred186_OraclePLSQL3414_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_insert_in_synpred186_OraclePLSQL3414	= { FOLLOW_k_insert_in_synpred186_OraclePLSQL3414_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_lock_in_synpred186_OraclePLSQL3418  */
static	ANTLR3_BITWORD FOLLOW_k_lock_in_synpred186_OraclePLSQL3418_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_lock_in_synpred186_OraclePLSQL3418	= { FOLLOW_k_lock_in_synpred186_OraclePLSQL3418_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_rollback_in_synpred186_OraclePLSQL3422  */
static	ANTLR3_BITWORD FOLLOW_k_rollback_in_synpred186_OraclePLSQL3422_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_rollback_in_synpred186_OraclePLSQL3422	= { FOLLOW_k_rollback_in_synpred186_OraclePLSQL3422_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_savepoint_in_synpred186_OraclePLSQL3426  */
static	ANTLR3_BITWORD FOLLOW_k_savepoint_in_synpred186_OraclePLSQL3426_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_savepoint_in_synpred186_OraclePLSQL3426	= { FOLLOW_k_savepoint_in_synpred186_OraclePLSQL3426_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_select_in_synpred186_OraclePLSQL3430  */
static	ANTLR3_BITWORD FOLLOW_k_select_in_synpred186_OraclePLSQL3430_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_select_in_synpred186_OraclePLSQL3430	= { FOLLOW_k_select_in_synpred186_OraclePLSQL3430_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_with_in_synpred186_OraclePLSQL3434  */
static	ANTLR3_BITWORD FOLLOW_r_with_in_synpred186_OraclePLSQL3434_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_r_with_in_synpred186_OraclePLSQL3434	= { FOLLOW_r_with_in_synpred186_OraclePLSQL3434_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_merge_in_synpred186_OraclePLSQL3438  */
static	ANTLR3_BITWORD FOLLOW_k_merge_in_synpred186_OraclePLSQL3438_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_merge_in_synpred186_OraclePLSQL3438	= { FOLLOW_k_merge_in_synpred186_OraclePLSQL3438_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_r_set_in_synpred186_OraclePLSQL3442  */
static	ANTLR3_BITWORD FOLLOW_r_set_in_synpred186_OraclePLSQL3442_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_r_set_in_synpred186_OraclePLSQL3442	= { FOLLOW_r_set_in_synpred186_OraclePLSQL3442_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_update_in_synpred186_OraclePLSQL3446  */
static	ANTLR3_BITWORD FOLLOW_k_update_in_synpred186_OraclePLSQL3446_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_update_in_synpred186_OraclePLSQL3446	= { FOLLOW_k_update_in_synpred186_OraclePLSQL3446_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred187_OraclePLSQL3516  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred187_OraclePLSQL3516_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred187_OraclePLSQL3516	= { FOLLOW_DOT_in_synpred187_OraclePLSQL3516_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_next_in_synpred187_OraclePLSQL3518  */
static	ANTLR3_BITWORD FOLLOW_call_next_in_synpred187_OraclePLSQL3518_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_call_next_in_synpred187_OraclePLSQL3518	= { FOLLOW_call_next_in_synpred187_OraclePLSQL3518_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_synpred188_OraclePLSQL3539  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_synpred188_OraclePLSQL3539_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_synpred188_OraclePLSQL3539	= { FOLLOW_lvalue_in_synpred188_OraclePLSQL3539_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred188_OraclePLSQL3541  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred188_OraclePLSQL3541_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000020) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred188_OraclePLSQL3541	= { FOLLOW_DOT_in_synpred188_OraclePLSQL3541_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_delete_call_in_synpred188_OraclePLSQL3543  */
static	ANTLR3_BITWORD FOLLOW_delete_call_in_synpred188_OraclePLSQL3543_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_delete_call_in_synpred188_OraclePLSQL3543	= { FOLLOW_delete_call_in_synpred188_OraclePLSQL3543_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_lvalue_in_synpred189_OraclePLSQL3565  */
static	ANTLR3_BITWORD FOLLOW_lvalue_in_synpred189_OraclePLSQL3565_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
static  ANTLR3_BITSET_LIST FOLLOW_lvalue_in_synpred189_OraclePLSQL3565	= { FOLLOW_lvalue_in_synpred189_OraclePLSQL3565_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_in_synpred189_OraclePLSQL3567  */
static	ANTLR3_BITWORD FOLLOW_ASSIGN_in_synpred189_OraclePLSQL3567_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_in_synpred189_OraclePLSQL3567	= { FOLLOW_ASSIGN_in_synpred189_OraclePLSQL3567_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_expression_in_synpred189_OraclePLSQL3569  */
static	ANTLR3_BITWORD FOLLOW_expression_in_synpred189_OraclePLSQL3569_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_expression_in_synpred189_OraclePLSQL3569	= { FOLLOW_expression_in_synpred189_OraclePLSQL3569_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred194_OraclePLSQL3648  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred194_OraclePLSQL3648_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred194_OraclePLSQL3648	= { FOLLOW_LPAREN_in_synpred194_OraclePLSQL3648_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_synpred194_OraclePLSQL3652  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_synpred194_OraclePLSQL3652_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_synpred194_OraclePLSQL3652	= { FOLLOW_parameter_in_synpred194_OraclePLSQL3652_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_synpred194_OraclePLSQL3656  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_synpred194_OraclePLSQL3656_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_synpred194_OraclePLSQL3656	= { FOLLOW_COMMA_in_synpred194_OraclePLSQL3656_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_synpred194_OraclePLSQL3658  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_synpred194_OraclePLSQL3658_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_synpred194_OraclePLSQL3658	= { FOLLOW_parameter_in_synpred194_OraclePLSQL3658_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred194_OraclePLSQL3666  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred194_OraclePLSQL3666_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred194_OraclePLSQL3666	= { FOLLOW_RPAREN_in_synpred194_OraclePLSQL3666_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred198_OraclePLSQL3697  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred198_OraclePLSQL3697_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred198_OraclePLSQL3697	= { FOLLOW_LPAREN_in_synpred198_OraclePLSQL3697_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_synpred198_OraclePLSQL3701  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_synpred198_OraclePLSQL3701_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_synpred198_OraclePLSQL3701	= { FOLLOW_parameter_in_synpred198_OraclePLSQL3701_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_synpred198_OraclePLSQL3705  */
static	ANTLR3_BITWORD FOLLOW_COMMA_in_synpred198_OraclePLSQL3705_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_synpred198_OraclePLSQL3705	= { FOLLOW_COMMA_in_synpred198_OraclePLSQL3705_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_synpred198_OraclePLSQL3707  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_synpred198_OraclePLSQL3707_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000018000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_synpred198_OraclePLSQL3707	= { FOLLOW_parameter_in_synpred198_OraclePLSQL3707_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred198_OraclePLSQL3715  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred198_OraclePLSQL3715_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred198_OraclePLSQL3715	= { FOLLOW_RPAREN_in_synpred198_OraclePLSQL3715_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_synpred200_OraclePLSQL3739  */
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_synpred200_OraclePLSQL3739_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308354000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_synpred200_OraclePLSQL3739	= { FOLLOW_LPAREN_in_synpred200_OraclePLSQL3739_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_synpred200_OraclePLSQL3741  */
static	ANTLR3_BITWORD FOLLOW_parameter_in_synpred200_OraclePLSQL3741_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000010000) };
static  ANTLR3_BITSET_LIST FOLLOW_parameter_in_synpred200_OraclePLSQL3741	= { FOLLOW_parameter_in_synpred200_OraclePLSQL3741_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_synpred200_OraclePLSQL3744  */
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_synpred200_OraclePLSQL3744_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_synpred200_OraclePLSQL3744	= { FOLLOW_RPAREN_in_synpred200_OraclePLSQL3744_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_synpred205_OraclePLSQL3838  */
static	ANTLR3_BITWORD FOLLOW_statement_in_synpred205_OraclePLSQL3838_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_synpred205_OraclePLSQL3838	= { FOLLOW_statement_in_synpred205_OraclePLSQL3838_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_statement_in_synpred208_OraclePLSQL3863  */
static	ANTLR3_BITWORD FOLLOW_statement_in_synpred208_OraclePLSQL3863_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0xC00080000A144000), ANTLR3_UINT64_LIT(0x39217C02A0110CEF), ANTLR3_UINT64_LIT(0x00000211A161A070) };
static  ANTLR3_BITSET_LIST FOLLOW_statement_in_synpred208_OraclePLSQL3863	= { FOLLOW_statement_in_synpred208_OraclePLSQL3863_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_param_modifiers_in_synpred225_OraclePLSQL4233  */
static	ANTLR3_BITWORD FOLLOW_param_modifiers_in_synpred225_OraclePLSQL4233_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_param_modifiers_in_synpred225_OraclePLSQL4233	= { FOLLOW_param_modifiers_in_synpred225_OraclePLSQL4233_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_param_modifiers_in_synpred226_OraclePLSQL4242  */
static	ANTLR3_BITWORD FOLLOW_param_modifiers_in_synpred226_OraclePLSQL4242_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_param_modifiers_in_synpred226_OraclePLSQL4242	= { FOLLOW_param_modifiers_in_synpred226_OraclePLSQL4242_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_K_OUT_in_synpred228_OraclePLSQL4264  */
static	ANTLR3_BITWORD FOLLOW_K_OUT_in_synpred228_OraclePLSQL4264_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_K_OUT_in_synpred228_OraclePLSQL4264	= { FOLLOW_K_OUT_in_synpred228_OraclePLSQL4264_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4493  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4493_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000001000000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4493	= { FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4493_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOUBLEDOT_in_synpred238_OraclePLSQL4495  */
static	ANTLR3_BITWORD FOLLOW_DOUBLEDOT_in_synpred238_OraclePLSQL4495_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_DOUBLEDOT_in_synpred238_OraclePLSQL4495	= { FOLLOW_DOUBLEDOT_in_synpred238_OraclePLSQL4495_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4497  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4497_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4497	= { FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4497_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kINDICES_in_synpred240_OraclePLSQL4505  */
static	ANTLR3_BITWORD FOLLOW_kINDICES_in_synpred240_OraclePLSQL4505_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kINDICES_in_synpred240_OraclePLSQL4505	= { FOLLOW_kINDICES_in_synpred240_OraclePLSQL4505_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kOF_in_synpred240_OraclePLSQL4507  */
static	ANTLR3_BITWORD FOLLOW_kOF_in_synpred240_OraclePLSQL4507_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_kOF_in_synpred240_OraclePLSQL4507	= { FOLLOW_kOF_in_synpred240_OraclePLSQL4507_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atom_in_synpred240_OraclePLSQL4509  */
static	ANTLR3_BITWORD FOLLOW_atom_in_synpred240_OraclePLSQL4509_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000002000000) };
static  ANTLR3_BITSET_LIST FOLLOW_atom_in_synpred240_OraclePLSQL4509	= { FOLLOW_atom_in_synpred240_OraclePLSQL4509_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_between_in_synpred240_OraclePLSQL4513  */
static	ANTLR3_BITWORD FOLLOW_k_between_in_synpred240_OraclePLSQL4513_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_between_in_synpred240_OraclePLSQL4513	= { FOLLOW_k_between_in_synpred240_OraclePLSQL4513_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4515  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4515_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4515	= { FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4515_bits, 3	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_and_in_synpred240_OraclePLSQL4517  */
static	ANTLR3_BITWORD FOLLOW_k_and_in_synpred240_OraclePLSQL4517_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_k_and_in_synpred240_OraclePLSQL4517	= { FOLLOW_k_and_in_synpred240_OraclePLSQL4517_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4519  */
static	ANTLR3_BITWORD FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4519_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4519	= { FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4519_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_select_statement_in_synpred249_OraclePLSQL4904  */
static	ANTLR3_BITWORD FOLLOW_select_statement_in_synpred249_OraclePLSQL4904_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_select_statement_in_synpred249_OraclePLSQL4904	= { FOLLOW_select_statement_in_synpred249_OraclePLSQL4904_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_synpred253_OraclePLSQL4979  */
static	ANTLR3_BITWORD FOLLOW_ID_in_synpred253_OraclePLSQL4979_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_ID_in_synpred253_OraclePLSQL4979	= { FOLLOW_ID_in_synpred253_OraclePLSQL4979_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred253_OraclePLSQL4981  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred253_OraclePLSQL4981_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred253_OraclePLSQL4981	= { FOLLOW_DOT_in_synpred253_OraclePLSQL4981_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bindvar_in_synpred270_OraclePLSQL5315  */
static	ANTLR3_BITWORD FOLLOW_bindvar_in_synpred270_OraclePLSQL5315_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_bindvar_in_synpred270_OraclePLSQL5315	= { FOLLOW_bindvar_in_synpred270_OraclePLSQL5315_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_synpred319_OraclePLSQL5970  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_synpred319_OraclePLSQL5970_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_synpred319_OraclePLSQL5970	= { FOLLOW_swallow_to_semi_in_synpred319_OraclePLSQL5970_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_swallow_to_semi_in_synpred320_OraclePLSQL6065  */
static	ANTLR3_BITWORD FOLLOW_swallow_to_semi_in_synpred320_OraclePLSQL6065_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_swallow_to_semi_in_synpred320_OraclePLSQL6065	= { FOLLOW_swallow_to_semi_in_synpred320_OraclePLSQL6065_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_synpred325_OraclePLSQL6219  */
static	ANTLR3_BITWORD FOLLOW_set_in_synpred325_OraclePLSQL6219_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_set_in_synpred325_OraclePLSQL6219	= { FOLLOW_set_in_synpred325_OraclePLSQL6219_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred326_OraclePLSQL6251  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred326_OraclePLSQL6251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred326_OraclePLSQL6251	= { FOLLOW_DOT_in_synpred326_OraclePLSQL6251_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_synpred326_OraclePLSQL6253  */
static	ANTLR3_BITWORD FOLLOW_identifier_in_synpred326_OraclePLSQL6253_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_synpred326_OraclePLSQL6253	= { FOLLOW_identifier_in_synpred326_OraclePLSQL6253_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASTERISK_in_synpred351_OraclePLSQL6625  */
static	ANTLR3_BITWORD FOLLOW_ASTERISK_in_synpred351_OraclePLSQL6625_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_ASTERISK_in_synpred351_OraclePLSQL6625	= { FOLLOW_ASTERISK_in_synpred351_OraclePLSQL6625_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DIVIDE_in_synpred351_OraclePLSQL6629  */
static	ANTLR3_BITWORD FOLLOW_DIVIDE_in_synpred351_OraclePLSQL6629_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_DIVIDE_in_synpred351_OraclePLSQL6629	= { FOLLOW_DIVIDE_in_synpred351_OraclePLSQL6629_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kMOD_in_synpred351_OraclePLSQL6633  */
static	ANTLR3_BITWORD FOLLOW_kMOD_in_synpred351_OraclePLSQL6633_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000803308344000), ANTLR3_UINT64_LIT(0x4180020820000007), ANTLR3_UINT64_LIT(0x0000010000000B84) };
static  ANTLR3_BITSET_LIST FOLLOW_kMOD_in_synpred351_OraclePLSQL6633	= { FOLLOW_kMOD_in_synpred351_OraclePLSQL6633_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_unary_sign_expr_in_synpred351_OraclePLSQL6637  */
static	ANTLR3_BITWORD FOLLOW_unary_sign_expr_in_synpred351_OraclePLSQL6637_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_unary_sign_expr_in_synpred351_OraclePLSQL6637	= { FOLLOW_unary_sign_expr_in_synpred351_OraclePLSQL6637_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_case_in_synpred354_OraclePLSQL6690  */
static	ANTLR3_BITWORD FOLLOW_k_case_in_synpred354_OraclePLSQL6690_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_case_in_synpred354_OraclePLSQL6690	= { FOLLOW_k_case_in_synpred354_OraclePLSQL6690_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_cast_in_synpred355_OraclePLSQL6701  */
static	ANTLR3_BITWORD FOLLOW_k_cast_in_synpred355_OraclePLSQL6701_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_cast_in_synpred355_OraclePLSQL6701	= { FOLLOW_k_cast_in_synpred355_OraclePLSQL6701_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred365_OraclePLSQL6804  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred365_OraclePLSQL6804_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x8000000000100000), ANTLR3_UINT64_LIT(0x00000000000001FF), ANTLR3_UINT64_LIT(0x0000000400000000) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred365_OraclePLSQL6804	= { FOLLOW_DOT_in_synpred365_OraclePLSQL6804_bits, 4	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_call_next_in_synpred365_OraclePLSQL6806  */
static	ANTLR3_BITWORD FOLLOW_call_next_in_synpred365_OraclePLSQL6806_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_call_next_in_synpred365_OraclePLSQL6806	= { FOLLOW_call_next_in_synpred365_OraclePLSQL6806_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kAT_in_synpred369_OraclePLSQL6849  */
static	ANTLR3_BITWORD FOLLOW_kAT_in_synpred369_OraclePLSQL6849_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kAT_in_synpred369_OraclePLSQL6849	= { FOLLOW_kAT_in_synpred369_OraclePLSQL6849_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kTIME_in_synpred369_OraclePLSQL6851  */
static	ANTLR3_BITWORD FOLLOW_kTIME_in_synpred369_OraclePLSQL6851_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
static  ANTLR3_BITSET_LIST FOLLOW_kTIME_in_synpred369_OraclePLSQL6851	= { FOLLOW_kTIME_in_synpred369_OraclePLSQL6851_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_kZONE_in_synpred369_OraclePLSQL6853  */
static	ANTLR3_BITWORD FOLLOW_kZONE_in_synpred369_OraclePLSQL6853_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x000000A000000000) };
static  ANTLR3_BITSET_LIST FOLLOW_kZONE_in_synpred369_OraclePLSQL6853	= { FOLLOW_kZONE_in_synpred369_OraclePLSQL6853_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_quoted_string_in_synpred369_OraclePLSQL6855  */
static	ANTLR3_BITWORD FOLLOW_quoted_string_in_synpred369_OraclePLSQL6855_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_quoted_string_in_synpred369_OraclePLSQL6855	= { FOLLOW_quoted_string_in_synpred369_OraclePLSQL6855_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatype_in_synpred370_OraclePLSQL6887  */
static	ANTLR3_BITWORD FOLLOW_datatype_in_synpred370_OraclePLSQL6887_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_datatype_in_synpred370_OraclePLSQL6887	= { FOLLOW_datatype_in_synpred370_OraclePLSQL6887_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_schema_name_in_synpred441_OraclePLSQL8097  */
static	ANTLR3_BITWORD FOLLOW_schema_name_in_synpred441_OraclePLSQL8097_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000400000) };
static  ANTLR3_BITSET_LIST FOLLOW_schema_name_in_synpred441_OraclePLSQL8097	= { FOLLOW_schema_name_in_synpred441_OraclePLSQL8097_bits, 2	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_synpred441_OraclePLSQL8099  */
static	ANTLR3_BITWORD FOLLOW_DOT_in_synpred441_OraclePLSQL8099_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_synpred441_OraclePLSQL8099	= { FOLLOW_DOT_in_synpred441_OraclePLSQL8099_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_declare_in_synpred446_OraclePLSQL8138  */
static	ANTLR3_BITWORD FOLLOW_k_declare_in_synpred446_OraclePLSQL8138_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_declare_in_synpred446_OraclePLSQL8138	= { FOLLOW_k_declare_in_synpred446_OraclePLSQL8138_bits, 1	};
/** Bitset defining follow set for error recovery in rule state: FOLLOW_k_begin_in_synpred446_OraclePLSQL8140  */
static	ANTLR3_BITWORD FOLLOW_k_begin_in_synpred446_OraclePLSQL8140_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
static  ANTLR3_BITSET_LIST FOLLOW_k_begin_in_synpred446_OraclePLSQL8140	= { FOLLOW_k_begin_in_synpred446_OraclePLSQL8140_bits, 1	};
     


/* =========================================================================
 * DFA tables for the parser
 */
/** Static dfa state tables for Cyclic dfa:
 *    337:1: datatype : ( ( k_ref )? ( schema_name DOT ) ( object_attribute_name DOT )+ identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] rowtype_attr | ( k_ref )? datatype_name | ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? | ( k_ref )? ( schema_name DOT ) ( identifier[T_OBJECT_NAME,T_USE] DOT )+ identifier[T_DATATYPE_NAME,T_USE] | ( k_ref )? ( schema_name DOT )? identifier[T_DATATYPE_NAME,T_USE] ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? );
 */
static const ANTLR3_INT32 dfa91_eot[31] =
    {
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
    };
static const ANTLR3_INT32 dfa91_eof[31] =
    {
	-1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, 28, -1
    };
static const ANTLR3_INT32 dfa91_min[31] =
    {
	84, 84, 77, -1, 117, 84, -1, -1, 84, 196, -1, 77, 117, 117, 117, 117, 117, 
	117, 117, 117, -1, 84, 196, 196, 77, -1, 0, 84, -1, 77, -1
    };
static const ANTLR3_INT32 dfa91_max[31] =
    {
	226, 217, 227, -1, 117, 117, -1, -1, 136, 231, -1, 227, 117, 117, 117, 
	117, 117, 117, 117, 117, -1, 134, 231, 196, 227, -1, 0, 134, -1, 227, -1
    };
static const ANTLR3_INT32 dfa91_accept[31] =
    {
	-1, -1, -1, 3, -1, -1, 5, 6, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 4, -1, -1, -1, -1, 2, -1, -1, 7, -1, 1
    };
static const ANTLR3_INT32 dfa91_special[31] =
    {	
	-1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1
    };

/** Used when there is no transition table entry for a particular state */
#define dfa91_T_empty	    NULL

static const ANTLR3_INT32 dfa91_T0[] =
    {
	3
    };static const ANTLR3_INT32 dfa91_T1[] =
    {
	23
    };static const ANTLR3_INT32 dfa91_T2[] =
    {
	29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 30, 30, 30, 30, 30, 30, 30, 30
    };static const ANTLR3_INT32 dfa91_T3[] =
    {
	24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 25, 25, 25, 25, 25, 25, 25, 25
    };static const ANTLR3_INT32 dfa91_T4[] =
    {
	-1
    };static const ANTLR3_INT32 dfa91_T5[] =
    {
	2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 3, 4, 3, 5, 3, 3, 3, 3, 3, 3, -1, -1, -1, 6, 
	-1, 6, 6, -1, -1, 6, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, 
	-1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, 1
    };static const ANTLR3_INT32 dfa91_T6[] =
    {
	3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20
    };static const ANTLR3_INT32 dfa91_T7[] =
    {
	11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 12, 13, 15, 16, 14, 17, 18, 19, 3, 3
    };static const ANTLR3_INT32 dfa91_T8[] =
    {
	2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 3, 4, 3, 5, 3, 3, 3, 3, 3, 3, -1, -1, -1, 6, 
	-1, 6, 6, -1, -1, 6, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, 
	-1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 6
    };static const ANTLR3_INT32 dfa91_T9[] =
    {
	26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20
    };static const ANTLR3_INT32 dfa91_T10[] =
    {
	10, 10, 10, 10, -1, -1, 10, -1, -1, 8, 10, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	10, -1, 10, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 
	-1, 10, -1, -1, -1, -1, -1, -1, 10, -1, -1, 10, -1, -1, -1, -1, 10, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 
	-1, 10, -1, -1, -1, -1, 10
    };static const ANTLR3_INT32 dfa91_T11[] =
    {
	28, -1, 28, 28, -1, -1, 28, -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	28, -1, 28, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 
	-1, 28, -1, -1, -1, -1, -1, -1, 28, -1, -1, 28, -1, -1, -1, -1, 28, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 
	-1, 28, -1, -1, -1, -1, 28
    };static const ANTLR3_INT32 dfa91_T12[] =
    {
	26
    };static const ANTLR3_INT32 dfa91_T13[] =
    {
	28, -1, 28, 28, -1, -1, 28, -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	28, -1, 28, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 
	-1, 28, -1, -1, -1, -1, -1, -1, 28, -1, -1, 28, -1, -1, -1, -1, 28, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 
	-1, 28, -1, -1, -1, -1, 28
    };static const ANTLR3_INT32 dfa91_T14[] =
    {
	6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3
    };static const ANTLR3_INT32 dfa91_T15[] =
    {
	10, 10, 10, 10, -1, -1, 10, -1, -1, 21, 10, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	10, -1, 10, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 
	-1, 10, -1, -1, -1, -1, -1, -1, 10, -1, -1, 10, -1, -1, -1, -1, 10, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 
	-1, 10, -1, -1, -1, -1, 10
    };

/* Transition tables are a table of sub tables, with some tables
 * reused for efficiency.
 */
static const ANTLR3_INT32 * const dfa91_transitions[] =
{
    dfa91_T5, dfa91_T8, dfa91_T10, dfa91_T_empty, dfa91_T0, dfa91_T14, dfa91_T_empty, 
    dfa91_T_empty, dfa91_T7, dfa91_T6, dfa91_T_empty, dfa91_T15, dfa91_T1, 
    dfa91_T1, dfa91_T1, dfa91_T1, dfa91_T1, dfa91_T1, dfa91_T1, dfa91_T1, 
    dfa91_T_empty, dfa91_T3, dfa91_T9, dfa91_T12, dfa91_T13, dfa91_T_empty, 
    dfa91_T4, dfa91_T2, dfa91_T_empty, dfa91_T11, dfa91_T_empty	
};

static ANTLR3_INT32 dfa91_sst(pOraclePLSQLParser ctx, pANTLR3_BASE_RECOGNIZER recognizer, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s)
{
    ANTLR3_INT32    _s;
    
    _s	    = s;
    switch  (s)
    {
        case 0:
        
    	{
    	    ANTLR3_UINT32 LA91_4;

    	    ANTLR3_MARKER index91_4;


    		LA91_4 = LA(1);

    	 
    	    index91_4 = INDEX();

    	    REWINDLAST();

    	    s = -1;
    	    if ( (LA91_4 == PERCENT) )
    	    {
    	        s = 3;
    	    }

    	    else if ( (synpred126_OraclePLSQL(ctx)) )
    	    {
    	        s = 6;
    	    }

    	    else if ( (synpred131_OraclePLSQL(ctx)) )
    	    {
    	        s = 7;
    	    }

    	 
    		SEEK(index91_4);

    	    if ( s>=0 ) 
    	    {
    		return s;
    	    }
    	}
    	break;
        case 1:
        
    	{
    	    ANTLR3_UINT32 LA91_26;

    	    ANTLR3_MARKER index91_26;


    		LA91_26 = LA(1);

    	 
    	    index91_26 = INDEX();

    	    REWINDLAST();

    	    s = -1;
    	    if ( (synpred118_OraclePLSQL(ctx)) )
    	    {
    	        s = 25;
    	    }

    	    else if ( (synpred121_OraclePLSQL(ctx)) )
    	    {
    	        s = 3;
    	    }

    	 
    		SEEK(index91_26);

    	    if ( s>=0 ) 
    	    {
    		return s;
    	    }
    	}
    	break;
    }
    if (BACKTRACKING > 0)
    {
	FAILEDFLAG = ANTLR3_TRUE;
	return	-1;
    }    
    CONSTRUCTEX();
    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
    EXCEPTION->message      = (void *)"337:1: datatype : ( ( k_ref )? ( schema_name DOT ) ( object_attribute_name DOT )+ identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] rowtype_attr | ( k_ref )? datatype_name | ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? | ( k_ref )? ( schema_name DOT ) ( identifier[T_OBJECT_NAME,T_USE] DOT )+ identifier[T_DATATYPE_NAME,T_USE] | ( k_ref )? ( schema_name DOT )? identifier[T_DATATYPE_NAME,T_USE] ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? );";
    EXCEPTION->decisionNum  = 91;
    EXCEPTION->state        = _s;
    return -1;
}

/* Declare tracking structure for Cyclic DFA 91
 */
static
ANTLR3_CYCLIC_DFA cdfa91
    =	{
	    91,		    /* Decision number of this dfa	    */
	    /* Which decision this represents:   */
	    (const pANTLR3_UCHAR)"337:1: datatype : ( ( k_ref )? ( schema_name DOT ) ( object_attribute_name DOT )+ identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] rowtype_attr | ( k_ref )? datatype_name | ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? | ( k_ref )? ( schema_name DOT ) ( identifier[T_OBJECT_NAME,T_USE] DOT )+ identifier[T_DATATYPE_NAME,T_USE] | ( k_ref )? ( schema_name DOT )? identifier[T_DATATYPE_NAME,T_USE] ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? );",	
	    (CDFA_SPECIAL_FUNC) dfa91_sst,
	    antlr3dfaspecialTransition,		/* DFA specialTransition is currently just a default function in the runtime */
	    antlr3dfapredict,			/* DFA simulator function is in the runtime */
	    dfa91_eot,	    /* EOT table			    */
	    dfa91_eof,	    /* EOF table			    */
	    dfa91_min,	    /* Minimum tokens for each state    */
	    dfa91_max,	    /* Maximum tokens for each state    */
	    dfa91_accept,	/* Accept table			    */
	    dfa91_special,	/* Special transition states	    */
	    dfa91_transitions	/* Table of transition tables	    */

	};	    
/* End of Cyclic DFA 91
 * ---------------------
 *//** Static dfa state tables for Cyclic dfa:
 *    713:1: select_statement : ( ( LPAREN )* k_select swallow_to_semi | ( LPAREN )* r_with swallow_to_semi );
 */
static const ANTLR3_INT32 dfa197_eot[4] =
    {
	-1, -1, -1, -1
    };
static const ANTLR3_INT32 dfa197_eof[4] =
    {
	-1, -1, -1, -1
    };
static const ANTLR3_INT32 dfa197_min[4] =
    {
	78, 78, -1, -1
    };
static const ANTLR3_INT32 dfa197_max[4] =
    {
	189, 189, -1, -1
    };
static const ANTLR3_INT32 dfa197_accept[4] =
    {
	-1, -1, 1, 2
    };
static const ANTLR3_INT32 dfa197_special[4] =
    {	
	-1, -1, -1, -1
    };

/** Used when there is no transition table entry for a particular state */
#define dfa197_T_empty	    NULL

static const ANTLR3_INT32 dfa197_T0[] =
    {
	1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 2
    };

/* Transition tables are a table of sub tables, with some tables
 * reused for efficiency.
 */
static const ANTLR3_INT32 * const dfa197_transitions[] =
{
    dfa197_T0, dfa197_T0, dfa197_T_empty, dfa197_T_empty	
};


/* Declare tracking structure for Cyclic DFA 197
 */
static
ANTLR3_CYCLIC_DFA cdfa197
    =	{
	    197,		    /* Decision number of this dfa	    */
	    /* Which decision this represents:   */
	    (const pANTLR3_UCHAR)"713:1: select_statement : ( ( LPAREN )* k_select swallow_to_semi | ( LPAREN )* r_with swallow_to_semi );",	
	    (CDFA_SPECIAL_FUNC) antlr3dfaspecialStateTransition,	/* Default special state transition function	*/
	    antlr3dfaspecialTransition,		/* DFA specialTransition is currently just a default function in the runtime */
	    antlr3dfapredict,			/* DFA simulator function is in the runtime */
	    dfa197_eot,	    /* EOT table			    */
	    dfa197_eof,	    /* EOF table			    */
	    dfa197_min,	    /* Minimum tokens for each state    */
	    dfa197_max,	    /* Maximum tokens for each state    */
	    dfa197_accept,	/* Accept table			    */
	    dfa197_special,	/* Special transition states	    */
	    dfa197_transitions	/* Table of transition tables	    */

	};	    
/* End of Cyclic DFA 197
 * ---------------------
 */ 
/* =========================================================================
 * End of DFA tables for the parser
 */ 
 
/* ==============================================
 * Parsing rules
 */
/** 
 * $ANTLR start start_rule
 * OraclePLSQL.g:199:1: start_rule : ( sqlplus_file | plsql_block );
 */
static OraclePLSQLParser_start_rule_return
start_rule(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_start_rule_return retval;
    ANTLR3_UINT32 start_rule_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_sqlplus_file_return sqlplus_file1;
    #undef	RETURN_TYPE_sqlplus_file1
    #define	RETURN_TYPE_sqlplus_file1 OraclePLSQLParser_sqlplus_file_return

    OraclePLSQLParser_plsql_block_return plsql_block2;
    #undef	RETURN_TYPE_plsql_block2
    #define	RETURN_TYPE_plsql_block2 OraclePLSQLParser_plsql_block_return


    /* Initialize rule variables
     */
    start_rule_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(1)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    sqlplus_file1.tree = NULL;
    plsql_block2.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:200:5: ( sqlplus_file | plsql_block )
            
            ANTLR3_UINT32 alt1;

            alt1=2;

            switch ( LA(1) ) 
            {
            case 159:
            case 186:
            case 193:
            case 196:
            case 214:
            case 224:
            	{
            		alt1=1;
            	}
                break;
            case 138:
            case 139:
            	{
            		alt1=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 1;
                EXCEPTION->state        = 0;


                goto rulestart_ruleEx;
            }

            switch (alt1) 
            {
        	case 1:
        	    // OraclePLSQL.g:200:7: sqlplus_file
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_sqlplus_file_in_start_rule1060);
        	        sqlplus_file1=sqlplus_file(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulestart_ruleEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, sqlplus_file1.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:200:22: plsql_block
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_plsql_block_in_start_rule1064);
        	        plsql_block2=plsql_block(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulestart_ruleEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, plsql_block2.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulestart_ruleEx; /* Prevent compiler warnings */
    rulestart_ruleEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(1, start_rule_StartIndex); }

    return retval;
}
/* $ANTLR end start_rule */

/** 
 * $ANTLR start sqlplus_file
 * OraclePLSQL.g:203:1: sqlplus_file : ( create_object ( DIVIDE show_errors )? ( DIVIDE )? )+ ;
 */
static OraclePLSQLParser_sqlplus_file_return
sqlplus_file(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_sqlplus_file_return retval;
    ANTLR3_UINT32 sqlplus_file_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DIVIDE4;
    pANTLR3_COMMON_TOKEN    DIVIDE6;
    OraclePLSQLParser_create_object_return create_object3;
    #undef	RETURN_TYPE_create_object3
    #define	RETURN_TYPE_create_object3 OraclePLSQLParser_create_object_return

    OraclePLSQLParser_show_errors_return show_errors5;
    #undef	RETURN_TYPE_show_errors5
    #define	RETURN_TYPE_show_errors5 OraclePLSQLParser_show_errors_return

    pANTLR3_BASE_TREE DIVIDE4_tree;
    pANTLR3_BASE_TREE DIVIDE6_tree;

    /* Initialize rule variables
     */
    sqlplus_file_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(2)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DIVIDE4       = NULL;
    DIVIDE6       = NULL;
    create_object3.tree = NULL;
    show_errors5.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DIVIDE4_tree   = NULL;
    DIVIDE6_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:204:5: ( ( create_object ( DIVIDE show_errors )? ( DIVIDE )? )+ )
        // OraclePLSQL.g:204:7: ( create_object ( DIVIDE show_errors )? ( DIVIDE )? )+
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            // OraclePLSQL.g:204:7: ( create_object ( DIVIDE show_errors )? ( DIVIDE )? )+
            {
                int cnt4=0;

                for (;;)
                {
                    int alt4=2;
            	switch ( LA(1) ) 
            	{
            	case 159:
            	case 186:
            	case 193:
            	case 196:
            	case 214:
            	case 224:
            		{
            			alt4=1;
            		}
            	    break;

            	}

            	switch (alt4) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:204:9: create_object ( DIVIDE show_errors )? ( DIVIDE )?
            	        {
            	            FOLLOWPUSH(FOLLOW_create_object_in_sqlplus_file1083);
            	            create_object3=create_object(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulesqlplus_fileEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_object3.tree);

            	            // OraclePLSQL.g:204:23: ( DIVIDE show_errors )?
            	            {
            	                int alt2=2;
            	                switch ( LA(1) ) 
            	                {
            	                    case DIVIDE:
            	                    	{
            	                    		switch ( LA(2) ) 
            	                    		{
            	                    		    case ID:
            	                    		    	{
            	                    		    		alt2=1;
            	                    		    	}
            	                    		        break;
            	                    		}

            	                    	}
            	                        break;
            	                }

            	                switch (alt2) 
            	                {
            	            	case 1:
            	            	    // OraclePLSQL.g:204:25: DIVIDE show_errors
            	            	    {
            	            	        DIVIDE4 = (pANTLR3_COMMON_TOKEN) MATCHT(DIVIDE, &FOLLOW_DIVIDE_in_sqlplus_file1087); 
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto rulesqlplus_fileEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) {
            	            	        DIVIDE4_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DIVIDE4));
            	            	        ADAPTOR->addChild(ADAPTOR, root_0, DIVIDE4_tree);
            	            	        }
            	            	        FOLLOWPUSH(FOLLOW_show_errors_in_sqlplus_file1089);
            	            	        show_errors5=show_errors(ctx);

            	            	        FOLLOWPOP();
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto rulesqlplus_fileEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, show_errors5.tree);

            	            	    }
            	            	    break;

            	                }
            	            }

            	            // OraclePLSQL.g:204:47: ( DIVIDE )?
            	            {
            	                int alt3=2;
            	                switch ( LA(1) ) 
            	                {
            	                    case DIVIDE:
            	                    	{
            	                    		alt3=1;
            	                    	}
            	                        break;
            	                }

            	                switch (alt3) 
            	                {
            	            	case 1:
            	            	    // OraclePLSQL.g:0:0: DIVIDE
            	            	    {
            	            	        DIVIDE6 = (pANTLR3_COMMON_TOKEN) MATCHT(DIVIDE, &FOLLOW_DIVIDE_in_sqlplus_file1094); 
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto rulesqlplus_fileEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) {
            	            	        DIVIDE6_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DIVIDE6));
            	            	        ADAPTOR->addChild(ADAPTOR, root_0, DIVIDE6_tree);
            	            	        }

            	            	    }
            	            	    break;

            	                }
            	            }

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt4 >= 1 )
            		{
            		    goto loop4;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto rulesqlplus_fileEx;
            	}
            	cnt4++;
                }
                loop4: ;	/* Jump to here if this rule does not match */
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulesqlplus_fileEx; /* Prevent compiler warnings */
    rulesqlplus_fileEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(2, sqlplus_file_StartIndex); }

    return retval;
}
/* $ANTLR end sqlplus_file */

/** 
 * $ANTLR start show_errors
 * OraclePLSQL.g:207:1: show_errors : kSHOW kERRORS ( SEMI )? ;
 */
static OraclePLSQLParser_show_errors_return
show_errors(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_show_errors_return retval;
    ANTLR3_UINT32 show_errors_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    SEMI9;
    OraclePLSQLParser_kSHOW_return kSHOW7;
    #undef	RETURN_TYPE_kSHOW7
    #define	RETURN_TYPE_kSHOW7 OraclePLSQLParser_kSHOW_return

    OraclePLSQLParser_kERRORS_return kERRORS8;
    #undef	RETURN_TYPE_kERRORS8
    #define	RETURN_TYPE_kERRORS8 OraclePLSQLParser_kERRORS_return

    pANTLR3_BASE_TREE SEMI9_tree;

    /* Initialize rule variables
     */
    show_errors_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(3)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    SEMI9       = NULL;
    kSHOW7.tree = NULL;
    kERRORS8.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    SEMI9_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:208:5: ( kSHOW kERRORS ( SEMI )? )
        // OraclePLSQL.g:208:7: kSHOW kERRORS ( SEMI )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_kSHOW_in_show_errors1120);
            kSHOW7=kSHOW(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleshow_errorsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kSHOW7.tree);
            FOLLOWPUSH(FOLLOW_kERRORS_in_show_errors1122);
            kERRORS8=kERRORS(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleshow_errorsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kERRORS8.tree);

            // OraclePLSQL.g:208:21: ( SEMI )?
            {
                int alt5=2;
                switch ( LA(1) ) 
                {
                    case SEMI:
                    	{
                    		alt5=1;
                    	}
                        break;
                }

                switch (alt5) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: SEMI
            	    {
            	        SEMI9 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_show_errors1124); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleshow_errorsEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        SEMI9_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI9));
            	        ADAPTOR->addChild(ADAPTOR, root_0, SEMI9_tree);
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleshow_errorsEx; /* Prevent compiler warnings */
    ruleshow_errorsEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(3, show_errors_StartIndex); }

    return retval;
}
/* $ANTLR end show_errors */

/** 
 * $ANTLR start create_object
 * OraclePLSQL.g:211:1: create_object : ( ( ( k_create )? ( k_or )? ( kREPLACE )? k_trigger )=> create_trigger | ( ( k_create )? ( k_or )? ( kREPLACE )? k_function )=> create_function | ( ( k_create )? ( k_or )? ( kREPLACE )? k_procedure )=> create_procedure | ( ( k_create )? ( k_or )? ( kREPLACE )? k_type )=> create_type | ( ( k_create )? ( k_or )? ( kREPLACE )? k_package k_body )=> create_package_body | create_package ( create_package_body )? );
 */
static OraclePLSQLParser_create_object_return
create_object(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_object_return retval;
    ANTLR3_UINT32 create_object_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_create_trigger_return create_trigger10;
    #undef	RETURN_TYPE_create_trigger10
    #define	RETURN_TYPE_create_trigger10 OraclePLSQLParser_create_trigger_return

    OraclePLSQLParser_create_function_return create_function11;
    #undef	RETURN_TYPE_create_function11
    #define	RETURN_TYPE_create_function11 OraclePLSQLParser_create_function_return

    OraclePLSQLParser_create_procedure_return create_procedure12;
    #undef	RETURN_TYPE_create_procedure12
    #define	RETURN_TYPE_create_procedure12 OraclePLSQLParser_create_procedure_return

    OraclePLSQLParser_create_type_return create_type13;
    #undef	RETURN_TYPE_create_type13
    #define	RETURN_TYPE_create_type13 OraclePLSQLParser_create_type_return

    OraclePLSQLParser_create_package_body_return create_package_body14;
    #undef	RETURN_TYPE_create_package_body14
    #define	RETURN_TYPE_create_package_body14 OraclePLSQLParser_create_package_body_return

    OraclePLSQLParser_create_package_return create_package15;
    #undef	RETURN_TYPE_create_package15
    #define	RETURN_TYPE_create_package15 OraclePLSQLParser_create_package_return

    OraclePLSQLParser_create_package_body_return create_package_body16;
    #undef	RETURN_TYPE_create_package_body16
    #define	RETURN_TYPE_create_package_body16 OraclePLSQLParser_create_package_body_return


    /* Initialize rule variables
     */
    create_object_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(4)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    create_trigger10.tree = NULL;
    create_function11.tree = NULL;
    create_procedure12.tree = NULL;
    create_type13.tree = NULL;
    create_package_body14.tree = NULL;
    create_package15.tree = NULL;
    create_package_body16.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:212:5: ( ( ( k_create )? ( k_or )? ( kREPLACE )? k_trigger )=> create_trigger | ( ( k_create )? ( k_or )? ( kREPLACE )? k_function )=> create_function | ( ( k_create )? ( k_or )? ( kREPLACE )? k_procedure )=> create_procedure | ( ( k_create )? ( k_or )? ( kREPLACE )? k_type )=> create_type | ( ( k_create )? ( k_or )? ( kREPLACE )? k_package k_body )=> create_package_body | create_package ( create_package_body )? )
            
            ANTLR3_UINT32 alt7;

            alt7=6;


            {
                int LA7_0 = LA(1);
                if ( (LA7_0 == 159)) 
                {

                    {
                        int LA7_1 = LA(2);
                        if ( (LA7_1 == 185)) 
                        {
                            switch ( LA(3) ) 
                            {
                            case ID:
                            	{

                            		{
                            		    int LA7_10 = LA(4);
                            		    if ( (synpred9_OraclePLSQL(ctx)) && (LA7_10 == 193)) 
                            		    {
                            		        alt7=1;
                            		    }
                            		    else if ( (synpred13_OraclePLSQL(ctx)) && (LA7_10 == 214)) 
                            		    {
                            		        alt7=2;
                            		    }
                            		    else if ( (synpred17_OraclePLSQL(ctx)) && (LA7_10 == 224)) 
                            		    {
                            		        alt7=3;
                            		    }
                            		    else if ( (synpred21_OraclePLSQL(ctx)) && (LA7_10 == 196)) 
                            		    {
                            		        alt7=4;
                            		    }
                            		    else if ( (LA7_10 == 186)) 
                            		    {

                            		        {
                            		            int LA7_6 = LA(5);
                            		            if ( (synpred25_OraclePLSQL(ctx)) && (LA7_6 == 154)) 
                            		            {
                            		                alt7=5;
                            		            }
                            		            else if ( (LA7_6 == ID || LA7_6 == 137)) 
                            		            {
                            		                alt7=6;
                            		            }
                            		            else 
                            		            {
                            		                if (BACKTRACKING>0)
                            		                {
                            		                    FAILEDFLAG = ANTLR3_TRUE;
                            		                    return retval;
                            		                }
                            		            
                            		                CONSTRUCTEX();
                            		                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                            		                EXCEPTION->message      = (void *)"";
                            		                EXCEPTION->decisionNum  = 7;
                            		                EXCEPTION->state        = 6;


                            		                goto rulecreate_objectEx;
                            		            }
                            		        }
                            		    }
                            		    else 
                            		    {
                            		        if (BACKTRACKING>0)
                            		        {
                            		            FAILEDFLAG = ANTLR3_TRUE;
                            		            return retval;
                            		        }
                            		    
                            		        CONSTRUCTEX();
                            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                            		        EXCEPTION->message      = (void *)"";
                            		        EXCEPTION->decisionNum  = 7;
                            		        EXCEPTION->state        = 10;


                            		        goto rulecreate_objectEx;
                            		    }
                            		}
                            	}
                                break;

                            default:
                                if (BACKTRACKING>0)
                                {
                                    FAILEDFLAG = ANTLR3_TRUE;
                                    return retval;
                                }
                                CONSTRUCTEX();
                                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                                EXCEPTION->message      = (void *)"";
                                EXCEPTION->decisionNum  = 7;
                                EXCEPTION->state        = 7;


                                goto rulecreate_objectEx;
                            }

                        }
                        else if ( (synpred9_OraclePLSQL(ctx)) && (LA7_1 == 193)) 
                        {
                            alt7=1;
                        }
                        else if ( (synpred13_OraclePLSQL(ctx)) && (LA7_1 == 214)) 
                        {
                            alt7=2;
                        }
                        else if ( (synpred17_OraclePLSQL(ctx)) && (LA7_1 == 224)) 
                        {
                            alt7=3;
                        }
                        else if ( (synpred21_OraclePLSQL(ctx)) && (LA7_1 == 196)) 
                        {
                            alt7=4;
                        }
                        else if ( (LA7_1 == 186)) 
                        {

                            {
                                int LA7_6 = LA(3);
                                if ( (synpred25_OraclePLSQL(ctx)) && (LA7_6 == 154)) 
                                {
                                    alt7=5;
                                }
                                else if ( (LA7_6 == ID || LA7_6 == 137)) 
                                {
                                    alt7=6;
                                }
                                else 
                                {
                                    if (BACKTRACKING>0)
                                    {
                                        FAILEDFLAG = ANTLR3_TRUE;
                                        return retval;
                                    }
                                
                                    CONSTRUCTEX();
                                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                                    EXCEPTION->message      = (void *)"";
                                    EXCEPTION->decisionNum  = 7;
                                    EXCEPTION->state        = 6;


                                    goto rulecreate_objectEx;
                                }
                            }
                        }
                        else 
                        {
                            if (BACKTRACKING>0)
                            {
                                FAILEDFLAG = ANTLR3_TRUE;
                                return retval;
                            }
                        
                            CONSTRUCTEX();
                            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                            EXCEPTION->message      = (void *)"";
                            EXCEPTION->decisionNum  = 7;
                            EXCEPTION->state        = 1;


                            goto rulecreate_objectEx;
                        }
                    }
                }
                else if ( (synpred9_OraclePLSQL(ctx)) && (LA7_0 == 193)) 
                {
                    alt7=1;
                }
                else if ( (synpred13_OraclePLSQL(ctx)) && (LA7_0 == 214)) 
                {
                    alt7=2;
                }
                else if ( (synpred17_OraclePLSQL(ctx)) && (LA7_0 == 224)) 
                {
                    alt7=3;
                }
                else if ( (synpred21_OraclePLSQL(ctx)) && (LA7_0 == 196)) 
                {
                    alt7=4;
                }
                else if ( (LA7_0 == 186)) 
                {

                    {
                        int LA7_6 = LA(2);
                        if ( (synpred25_OraclePLSQL(ctx)) && (LA7_6 == 154)) 
                        {
                            alt7=5;
                        }
                        else if ( (LA7_6 == ID || LA7_6 == 137)) 
                        {
                            alt7=6;
                        }
                        else 
                        {
                            if (BACKTRACKING>0)
                            {
                                FAILEDFLAG = ANTLR3_TRUE;
                                return retval;
                            }
                        
                            CONSTRUCTEX();
                            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                            EXCEPTION->message      = (void *)"";
                            EXCEPTION->decisionNum  = 7;
                            EXCEPTION->state        = 6;


                            goto rulecreate_objectEx;
                        }
                    }
                }
                else 
                {
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 7;
                    EXCEPTION->state        = 0;


                    goto rulecreate_objectEx;
                }
            }
            switch (alt7) 
            {
        	case 1:
        	    // OraclePLSQL.g:212:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_trigger )=> create_trigger
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_create_trigger_in_create_object1157);
        	        create_trigger10=create_trigger(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecreate_objectEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_trigger10.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:213:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_function )=> create_function
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_create_function_in_create_object1180);
        	        create_function11=create_function(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecreate_objectEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_function11.tree);

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:214:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_procedure )=> create_procedure
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_create_procedure_in_create_object1203);
        	        create_procedure12=create_procedure(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecreate_objectEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_procedure12.tree);

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:215:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_type )=> create_type
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_create_type_in_create_object1226);
        	        create_type13=create_type(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecreate_objectEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_type13.tree);

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:216:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_package k_body )=> create_package_body
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_create_package_body_in_create_object1251);
        	        create_package_body14=create_package_body(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecreate_objectEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_package_body14.tree);

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:217:7: create_package ( create_package_body )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_create_package_in_create_object1259);
        	        create_package15=create_package(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecreate_objectEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_package15.tree);

        	        // OraclePLSQL.g:217:22: ( create_package_body )?
        	        {
        	            int alt6=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 159:
        	                	{
        	                		{
        	                		    int LA6_1 = LA(2);
        	                		    if ( (synpred26_OraclePLSQL(ctx))) 
        	                		    {
        	                		        alt6=1;
        	                		    }
        	                		}
        	                	}
        	                    break;
        	                case 186:
        	                	{
        	                		{
        	                		    int LA6_2 = LA(2);
        	                		    if ( (synpred26_OraclePLSQL(ctx))) 
        	                		    {
        	                		        alt6=1;
        	                		    }
        	                		}
        	                	}
        	                    break;
        	            }

        	            switch (alt6) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:0:0: create_package_body
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_create_package_body_in_create_object1261);
        	        	        create_package_body16=create_package_body(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulecreate_objectEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, create_package_body16.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_objectEx; /* Prevent compiler warnings */
    rulecreate_objectEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(4, create_object_StartIndex); }

    return retval;
}
/* $ANTLR end create_object */

/** 
 * $ANTLR start procedure_heading
 * OraclePLSQL.g:220:1: procedure_heading : k_procedure procedure_name[T_DECL] ( parameter_declarations )? ;
 */
static OraclePLSQLParser_procedure_heading_return
procedure_heading(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_procedure_heading_return retval;
    ANTLR3_UINT32 procedure_heading_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_procedure_return k_procedure17;
    #undef	RETURN_TYPE_k_procedure17
    #define	RETURN_TYPE_k_procedure17 OraclePLSQLParser_k_procedure_return

    OraclePLSQLParser_procedure_name_return procedure_name18;
    #undef	RETURN_TYPE_procedure_name18
    #define	RETURN_TYPE_procedure_name18 OraclePLSQLParser_procedure_name_return

    OraclePLSQLParser_parameter_declarations_return parameter_declarations19;
    #undef	RETURN_TYPE_parameter_declarations19
    #define	RETURN_TYPE_parameter_declarations19 OraclePLSQLParser_parameter_declarations_return


    /* Initialize rule variables
     */
    procedure_heading_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(5)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_procedure17.tree = NULL;
    procedure_name18.tree = NULL;
    parameter_declarations19.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:220:19: ( k_procedure procedure_name[T_DECL] ( parameter_declarations )? )
        // OraclePLSQL.g:221:9: k_procedure procedure_name[T_DECL] ( parameter_declarations )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_procedure_in_procedure_heading1288);
            k_procedure17=k_procedure(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleprocedure_headingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_procedure17.tree);
            FOLLOWPUSH(FOLLOW_procedure_name_in_procedure_heading1290);
            procedure_name18=procedure_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleprocedure_headingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, procedure_name18.tree);

            // OraclePLSQL.g:221:44: ( parameter_declarations )?
            {
                int alt8=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		alt8=1;
                    	}
                        break;
                }

                switch (alt8) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: parameter_declarations
            	    {
            	        FOLLOWPUSH(FOLLOW_parameter_declarations_in_procedure_heading1293);
            	        parameter_declarations19=parameter_declarations(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleprocedure_headingEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declarations19.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleprocedure_headingEx; /* Prevent compiler warnings */
    ruleprocedure_headingEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(5, procedure_heading_StartIndex); }

    return retval;
}
/* $ANTLR end procedure_heading */

/** 
 * $ANTLR start function_heading
 * OraclePLSQL.g:224:1: function_heading : k_function identifier[T_FUNCTION_NAME,T_DECL] ( parameter_declarations )? k_return datatype ;
 */
static OraclePLSQLParser_function_heading_return
function_heading(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_function_heading_return retval;
    ANTLR3_UINT32 function_heading_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_function_return k_function20;
    #undef	RETURN_TYPE_k_function20
    #define	RETURN_TYPE_k_function20 OraclePLSQLParser_k_function_return

    OraclePLSQLParser_identifier_return identifier21;
    #undef	RETURN_TYPE_identifier21
    #define	RETURN_TYPE_identifier21 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_parameter_declarations_return parameter_declarations22;
    #undef	RETURN_TYPE_parameter_declarations22
    #define	RETURN_TYPE_parameter_declarations22 OraclePLSQLParser_parameter_declarations_return

    OraclePLSQLParser_k_return_return k_return23;
    #undef	RETURN_TYPE_k_return23
    #define	RETURN_TYPE_k_return23 OraclePLSQLParser_k_return_return

    OraclePLSQLParser_datatype_return datatype24;
    #undef	RETURN_TYPE_datatype24
    #define	RETURN_TYPE_datatype24 OraclePLSQLParser_datatype_return


    /* Initialize rule variables
     */
    function_heading_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(6)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_function20.tree = NULL;
    identifier21.tree = NULL;
    parameter_declarations22.tree = NULL;
    k_return23.tree = NULL;
    datatype24.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:224:18: ( k_function identifier[T_FUNCTION_NAME,T_DECL] ( parameter_declarations )? k_return datatype )
        // OraclePLSQL.g:225:9: k_function identifier[T_FUNCTION_NAME,T_DECL] ( parameter_declarations )? k_return datatype
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_function_in_function_heading1315);
            k_function20=k_function(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefunction_headingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_function20.tree);
            FOLLOWPUSH(FOLLOW_identifier_in_function_heading1317);
            identifier21=identifier(ctx, T_FUNCTION_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefunction_headingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier21.tree);

            // OraclePLSQL.g:225:55: ( parameter_declarations )?
            {
                int alt9=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		alt9=1;
                    	}
                        break;
                }

                switch (alt9) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: parameter_declarations
            	    {
            	        FOLLOWPUSH(FOLLOW_parameter_declarations_in_function_heading1320);
            	        parameter_declarations22=parameter_declarations(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_headingEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declarations22.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_return_in_function_heading1323);
            k_return23=k_return(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefunction_headingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_return23.tree);
            FOLLOWPUSH(FOLLOW_datatype_in_function_heading1325);
            datatype24=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefunction_headingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype24.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefunction_headingEx; /* Prevent compiler warnings */
    rulefunction_headingEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(6, function_heading_StartIndex); }

    return retval;
}
/* $ANTLR end function_heading */

/** 
 * $ANTLR start parameter_declarations
 * OraclePLSQL.g:228:1: parameter_declarations : ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN ) ;
 */
static OraclePLSQLParser_parameter_declarations_return
parameter_declarations(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_parameter_declarations_return retval;
    ANTLR3_UINT32 parameter_declarations_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN25;
    pANTLR3_COMMON_TOKEN    COMMA27;
    pANTLR3_COMMON_TOKEN    RPAREN29;
    OraclePLSQLParser_parameter_declaration_return parameter_declaration26;
    #undef	RETURN_TYPE_parameter_declaration26
    #define	RETURN_TYPE_parameter_declaration26 OraclePLSQLParser_parameter_declaration_return

    OraclePLSQLParser_parameter_declaration_return parameter_declaration28;
    #undef	RETURN_TYPE_parameter_declaration28
    #define	RETURN_TYPE_parameter_declaration28 OraclePLSQLParser_parameter_declaration_return

    pANTLR3_BASE_TREE LPAREN25_tree;
    pANTLR3_BASE_TREE COMMA27_tree;
    pANTLR3_BASE_TREE RPAREN29_tree;

    /* Initialize rule variables
     */
    parameter_declarations_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(7)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN25       = NULL;
    COMMA27       = NULL;
    RPAREN29       = NULL;
    parameter_declaration26.tree = NULL;
    parameter_declaration28.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN25_tree   = NULL;
    COMMA27_tree   = NULL;
    RPAREN29_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:228:24: ( ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN ) )
        // OraclePLSQL.g:229:9: ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            // OraclePLSQL.g:229:9: ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )
            // OraclePLSQL.g:229:13: LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN
            {
                LPAREN25 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_parameter_declarations1350); 
                if  (HASEXCEPTION())
                {
                    goto ruleparameter_declarationsEx;
                }
                if (HASFAILED())
                {
                    return retval;
                }
                if ( BACKTRACKING==0 ) {
                LPAREN25_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN25));
                ADAPTOR->addChild(ADAPTOR, root_0, LPAREN25_tree);
                }
                FOLLOWPUSH(FOLLOW_parameter_declaration_in_parameter_declarations1353);
                parameter_declaration26=parameter_declaration(ctx);

                FOLLOWPOP();
                if  (HASEXCEPTION())
                {
                    goto ruleparameter_declarationsEx;
                }
                if (HASFAILED())
                {
                    return retval;
                }
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declaration26.tree);

                // OraclePLSQL.g:229:43: ( COMMA parameter_declaration )*

                for (;;)
                {
                    int alt10=2;
                    switch ( LA(1) ) 
                    {
                    case COMMA:
                    	{
                    		alt10=1;
                    	}
                        break;

                    }

                    switch (alt10) 
                    {
                	case 1:
                	    // OraclePLSQL.g:229:45: COMMA parameter_declaration
                	    {
                	        COMMA27 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_parameter_declarations1357); 
                	        if  (HASEXCEPTION())
                	        {
                	            goto ruleparameter_declarationsEx;
                	        }
                	        if (HASFAILED())
                	        {
                	            return retval;
                	        }
                	        if ( BACKTRACKING==0 ) {
                	        COMMA27_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA27));
                	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA27_tree);
                	        }
                	        FOLLOWPUSH(FOLLOW_parameter_declaration_in_parameter_declarations1360);
                	        parameter_declaration28=parameter_declaration(ctx);

                	        FOLLOWPOP();
                	        if  (HASEXCEPTION())
                	        {
                	            goto ruleparameter_declarationsEx;
                	        }
                	        if (HASFAILED())
                	        {
                	            return retval;
                	        }
                	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declaration28.tree);

                	    }
                	    break;

                	default:
                	    goto loop10;	/* break out of the loop */
                	    break;
                    }
                }
                loop10: ; /* Jump out to here if this rule does not match */

                RPAREN29 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_parameter_declarations1365); 
                if  (HASEXCEPTION())
                {
                    goto ruleparameter_declarationsEx;
                }
                if (HASFAILED())
                {
                    return retval;
                }
                if ( BACKTRACKING==0 ) {
                RPAREN29_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN29));
                ADAPTOR->addChild(ADAPTOR, root_0, RPAREN29_tree);
                }

            }


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleparameter_declarationsEx; /* Prevent compiler warnings */
    ruleparameter_declarationsEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(7, parameter_declarations_StartIndex); }

    return retval;
}
/* $ANTLR end parameter_declarations */

/** 
 * $ANTLR start parameter_declaration
 * OraclePLSQL.g:232:1: parameter_declaration : parameter_name[T_DECL] ( K_IN | ( ( K_OUT | K_IN K_OUT ) ( k_nocopy )? ) )? datatype ( ( ASSIGN | k_default ) expression )? ;
 */
static OraclePLSQLParser_parameter_declaration_return
parameter_declaration(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_parameter_declaration_return retval;
    ANTLR3_UINT32 parameter_declaration_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    K_IN31;
    pANTLR3_COMMON_TOKEN    K_OUT32;
    pANTLR3_COMMON_TOKEN    K_IN33;
    pANTLR3_COMMON_TOKEN    K_OUT34;
    pANTLR3_COMMON_TOKEN    ASSIGN37;
    OraclePLSQLParser_parameter_name_return parameter_name30;
    #undef	RETURN_TYPE_parameter_name30
    #define	RETURN_TYPE_parameter_name30 OraclePLSQLParser_parameter_name_return

    OraclePLSQLParser_k_nocopy_return k_nocopy35;
    #undef	RETURN_TYPE_k_nocopy35
    #define	RETURN_TYPE_k_nocopy35 OraclePLSQLParser_k_nocopy_return

    OraclePLSQLParser_datatype_return datatype36;
    #undef	RETURN_TYPE_datatype36
    #define	RETURN_TYPE_datatype36 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_default_return k_default38;
    #undef	RETURN_TYPE_k_default38
    #define	RETURN_TYPE_k_default38 OraclePLSQLParser_k_default_return

    OraclePLSQLParser_expression_return expression39;
    #undef	RETURN_TYPE_expression39
    #define	RETURN_TYPE_expression39 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE K_IN31_tree;
    pANTLR3_BASE_TREE K_OUT32_tree;
    pANTLR3_BASE_TREE K_IN33_tree;
    pANTLR3_BASE_TREE K_OUT34_tree;
    pANTLR3_BASE_TREE ASSIGN37_tree;

    /* Initialize rule variables
     */
    parameter_declaration_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(8)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    K_IN31       = NULL;
    K_OUT32       = NULL;
    K_IN33       = NULL;
    K_OUT34       = NULL;
    ASSIGN37       = NULL;
    parameter_name30.tree = NULL;
    k_nocopy35.tree = NULL;
    datatype36.tree = NULL;
    k_default38.tree = NULL;
    expression39.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    K_IN31_tree   = NULL;
    K_OUT32_tree   = NULL;
    K_IN33_tree   = NULL;
    K_OUT34_tree   = NULL;
    ASSIGN37_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:232:23: ( parameter_name[T_DECL] ( K_IN | ( ( K_OUT | K_IN K_OUT ) ( k_nocopy )? ) )? datatype ( ( ASSIGN | k_default ) expression )? )
        // OraclePLSQL.g:233:9: parameter_name[T_DECL] ( K_IN | ( ( K_OUT | K_IN K_OUT ) ( k_nocopy )? ) )? datatype ( ( ASSIGN | k_default ) expression )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_parameter_name_in_parameter_declaration1388);
            parameter_name30=parameter_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleparameter_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_name30.tree);

            // OraclePLSQL.g:233:32: ( K_IN | ( ( K_OUT | K_IN K_OUT ) ( k_nocopy )? ) )?
            {
                int alt13=3;
                switch ( LA(1) ) 
                {
                    case K_IN:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case K_OUT:
                    		    	{
                    		    		alt13=2;
                    		    	}
                    		        break;
                    		    case ID:
                    		    case 127:
                    		    case 128:
                    		    case 129:
                    		    case 130:
                    		    case 131:
                    		    case 132:
                    		    case 133:
                    		    case 134:
                    		    case 135:
                    		    case 136:
                    		    case 140:
                    		    case 142:
                    		    case 143:
                    		    case 146:
                    		    case 147:
                    		    case 158:
                    		    case 163:
                    		    case 182:
                    		    case 204:
                    		    case 217:
                    		    case 226:
                    		    	{
                    		    		alt13=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                    case K_OUT:
                    	{
                    		alt13=2;
                    	}
                        break;
                }

                switch (alt13) 
                {
            	case 1:
            	    // OraclePLSQL.g:233:34: K_IN
            	    {
            	        K_IN31 = (pANTLR3_COMMON_TOKEN) MATCHT(K_IN, &FOLLOW_K_IN_in_parameter_declaration1393); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleparameter_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        K_IN31_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_IN31));
            	        ADAPTOR->addChild(ADAPTOR, root_0, K_IN31_tree);
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:233:41: ( ( K_OUT | K_IN K_OUT ) ( k_nocopy )? )
            	    {
            	        // OraclePLSQL.g:233:41: ( ( K_OUT | K_IN K_OUT ) ( k_nocopy )? )
            	        // OraclePLSQL.g:233:43: ( K_OUT | K_IN K_OUT ) ( k_nocopy )?
            	        {

            	            // OraclePLSQL.g:233:43: ( K_OUT | K_IN K_OUT )
            	            {
            	                int alt11=2;
            	                switch ( LA(1) ) 
            	                {
            	                case K_OUT:
            	                	{
            	                		alt11=1;
            	                	}
            	                    break;
            	                case K_IN:
            	                	{
            	                		alt11=2;
            	                	}
            	                    break;

            	                default:
            	                    if (BACKTRACKING>0)
            	                    {
            	                        FAILEDFLAG = ANTLR3_TRUE;
            	                        return retval;
            	                    }
            	                    CONSTRUCTEX();
            	                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                    EXCEPTION->message      = (void *)"";
            	                    EXCEPTION->decisionNum  = 11;
            	                    EXCEPTION->state        = 0;


            	                    goto ruleparameter_declarationEx;
            	                }

            	                switch (alt11) 
            	                {
            	            	case 1:
            	            	    // OraclePLSQL.g:233:45: K_OUT
            	            	    {
            	            	        K_OUT32 = (pANTLR3_COMMON_TOKEN) MATCHT(K_OUT, &FOLLOW_K_OUT_in_parameter_declaration1401); 
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto ruleparameter_declarationEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) {
            	            	        K_OUT32_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_OUT32));
            	            	        ADAPTOR->addChild(ADAPTOR, root_0, K_OUT32_tree);
            	            	        }

            	            	    }
            	            	    break;
            	            	case 2:
            	            	    // OraclePLSQL.g:233:53: K_IN K_OUT
            	            	    {
            	            	        K_IN33 = (pANTLR3_COMMON_TOKEN) MATCHT(K_IN, &FOLLOW_K_IN_in_parameter_declaration1405); 
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto ruleparameter_declarationEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) {
            	            	        K_IN33_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_IN33));
            	            	        ADAPTOR->addChild(ADAPTOR, root_0, K_IN33_tree);
            	            	        }
            	            	        K_OUT34 = (pANTLR3_COMMON_TOKEN) MATCHT(K_OUT, &FOLLOW_K_OUT_in_parameter_declaration1407); 
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto ruleparameter_declarationEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) {
            	            	        K_OUT34_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_OUT34));
            	            	        ADAPTOR->addChild(ADAPTOR, root_0, K_OUT34_tree);
            	            	        }

            	            	    }
            	            	    break;

            	                }
            	            }

            	            // OraclePLSQL.g:233:66: ( k_nocopy )?
            	            {
            	                int alt12=2;
            	                switch ( LA(1) ) 
            	                {
            	                    case 218:
            	                    	{
            	                    		alt12=1;
            	                    	}
            	                        break;
            	                }

            	                switch (alt12) 
            	                {
            	            	case 1:
            	            	    // OraclePLSQL.g:0:0: k_nocopy
            	            	    {
            	            	        FOLLOWPUSH(FOLLOW_k_nocopy_in_parameter_declaration1411);
            	            	        k_nocopy35=k_nocopy(ctx);

            	            	        FOLLOWPOP();
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto ruleparameter_declarationEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_nocopy35.tree);

            	            	    }
            	            	    break;

            	                }
            	            }

            	        }


            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_datatype_in_parameter_declaration1419);
            datatype36=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleparameter_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype36.tree);

            // OraclePLSQL.g:234:9: ( ( ASSIGN | k_default ) expression )?
            {
                int alt15=2;
                switch ( LA(1) ) 
                {
                    case ASSIGN:
                    case 164:
                    	{
                    		alt15=1;
                    	}
                        break;
                }

                switch (alt15) 
                {
            	case 1:
            	    // OraclePLSQL.g:234:11: ( ASSIGN | k_default ) expression
            	    {

            	        // OraclePLSQL.g:234:11: ( ASSIGN | k_default )
            	        {
            	            int alt14=2;
            	            switch ( LA(1) ) 
            	            {
            	            case ASSIGN:
            	            	{
            	            		alt14=1;
            	            	}
            	                break;
            	            case 164:
            	            	{
            	            		alt14=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 14;
            	                EXCEPTION->state        = 0;


            	                goto ruleparameter_declarationEx;
            	            }

            	            switch (alt14) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:234:13: ASSIGN
            	        	    {
            	        	        ASSIGN37 = (pANTLR3_COMMON_TOKEN) MATCHT(ASSIGN, &FOLLOW_ASSIGN_in_parameter_declaration1433); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleparameter_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ASSIGN37_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ASSIGN37));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ASSIGN37_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:234:22: k_default
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_default_in_parameter_declaration1437);
            	        	        k_default38=k_default(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleparameter_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_default38.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_expression_in_parameter_declaration1441);
            	        expression39=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleparameter_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression39.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleparameter_declarationEx; /* Prevent compiler warnings */
    ruleparameter_declarationEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(8, parameter_declaration_StartIndex); }

    return retval;
}
/* $ANTLR end parameter_declaration */

/** 
 * $ANTLR start declare_section
 * OraclePLSQL.g:237:1: declare_section : ( type_definition SEMI | subtype_definition SEMI | cursor_definition SEMI | item_declaration SEMI | function_declaration_or_definition SEMI | procedure_declaration_or_definition SEMI | pragma )+ ;
 */
static OraclePLSQLParser_declare_section_return
declare_section(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_declare_section_return retval;
    ANTLR3_UINT32 declare_section_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    SEMI41;
    pANTLR3_COMMON_TOKEN    SEMI43;
    pANTLR3_COMMON_TOKEN    SEMI45;
    pANTLR3_COMMON_TOKEN    SEMI47;
    pANTLR3_COMMON_TOKEN    SEMI49;
    pANTLR3_COMMON_TOKEN    SEMI51;
    OraclePLSQLParser_type_definition_return type_definition40;
    #undef	RETURN_TYPE_type_definition40
    #define	RETURN_TYPE_type_definition40 OraclePLSQLParser_type_definition_return

    OraclePLSQLParser_subtype_definition_return subtype_definition42;
    #undef	RETURN_TYPE_subtype_definition42
    #define	RETURN_TYPE_subtype_definition42 OraclePLSQLParser_subtype_definition_return

    OraclePLSQLParser_cursor_definition_return cursor_definition44;
    #undef	RETURN_TYPE_cursor_definition44
    #define	RETURN_TYPE_cursor_definition44 OraclePLSQLParser_cursor_definition_return

    OraclePLSQLParser_item_declaration_return item_declaration46;
    #undef	RETURN_TYPE_item_declaration46
    #define	RETURN_TYPE_item_declaration46 OraclePLSQLParser_item_declaration_return

    OraclePLSQLParser_function_declaration_or_definition_return function_declaration_or_definition48;
    #undef	RETURN_TYPE_function_declaration_or_definition48
    #define	RETURN_TYPE_function_declaration_or_definition48 OraclePLSQLParser_function_declaration_or_definition_return

    OraclePLSQLParser_procedure_declaration_or_definition_return procedure_declaration_or_definition50;
    #undef	RETURN_TYPE_procedure_declaration_or_definition50
    #define	RETURN_TYPE_procedure_declaration_or_definition50 OraclePLSQLParser_procedure_declaration_or_definition_return

    OraclePLSQLParser_pragma_return pragma52;
    #undef	RETURN_TYPE_pragma52
    #define	RETURN_TYPE_pragma52 OraclePLSQLParser_pragma_return

    pANTLR3_BASE_TREE SEMI41_tree;
    pANTLR3_BASE_TREE SEMI43_tree;
    pANTLR3_BASE_TREE SEMI45_tree;
    pANTLR3_BASE_TREE SEMI47_tree;
    pANTLR3_BASE_TREE SEMI49_tree;
    pANTLR3_BASE_TREE SEMI51_tree;

    /* Initialize rule variables
     */
    declare_section_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(9)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    SEMI41       = NULL;
    SEMI43       = NULL;
    SEMI45       = NULL;
    SEMI47       = NULL;
    SEMI49       = NULL;
    SEMI51       = NULL;
    type_definition40.tree = NULL;
    subtype_definition42.tree = NULL;
    cursor_definition44.tree = NULL;
    item_declaration46.tree = NULL;
    function_declaration_or_definition48.tree = NULL;
    procedure_declaration_or_definition50.tree = NULL;
    pragma52.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    SEMI41_tree   = NULL;
    SEMI43_tree   = NULL;
    SEMI45_tree   = NULL;
    SEMI47_tree   = NULL;
    SEMI49_tree   = NULL;
    SEMI51_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:237:17: ( ( type_definition SEMI | subtype_definition SEMI | cursor_definition SEMI | item_declaration SEMI | function_declaration_or_definition SEMI | procedure_declaration_or_definition SEMI | pragma )+ )
        // OraclePLSQL.g:238:5: ( type_definition SEMI | subtype_definition SEMI | cursor_definition SEMI | item_declaration SEMI | function_declaration_or_definition SEMI | procedure_declaration_or_definition SEMI | pragma )+
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            // OraclePLSQL.g:238:5: ( type_definition SEMI | subtype_definition SEMI | cursor_definition SEMI | item_declaration SEMI | function_declaration_or_definition SEMI | procedure_declaration_or_definition SEMI | pragma )+
            {
                int cnt16=0;

                for (;;)
                {
                    int alt16=8;
            	switch ( LA(1) ) 
            	{
            	case 196:
            		{
            			alt16=1;
            		}
            	    break;
            	case 233:
            		{
            			alt16=2;
            		}
            	    break;
            	case 208:
            		{
            			alt16=3;
            		}
            	    break;
            	case K_OUT:
            	case ID:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            		{
            			alt16=4;
            		}
            	    break;
            	case 214:
            		{
            			alt16=5;
            		}
            	    break;
            	case 224:
            		{
            			alt16=6;
            		}
            	    break;
            	case 223:
            		{
            			alt16=7;
            		}
            	    break;

            	}

            	switch (alt16) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:238:7: type_definition SEMI
            	        {
            	            FOLLOWPUSH(FOLLOW_type_definition_in_declare_section1463);
            	            type_definition40=type_definition(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, type_definition40.tree);
            	            SEMI41 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_declare_section1465); 
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) {
            	            SEMI41_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI41));
            	            ADAPTOR->addChild(ADAPTOR, root_0, SEMI41_tree);
            	            }

            	        }
            	        break;
            	    case 2:
            	        // OraclePLSQL.g:239:7: subtype_definition SEMI
            	        {
            	            FOLLOWPUSH(FOLLOW_subtype_definition_in_declare_section1498);
            	            subtype_definition42=subtype_definition(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, subtype_definition42.tree);
            	            SEMI43 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_declare_section1500); 
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) {
            	            SEMI43_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI43));
            	            ADAPTOR->addChild(ADAPTOR, root_0, SEMI43_tree);
            	            }

            	        }
            	        break;
            	    case 3:
            	        // OraclePLSQL.g:240:7: cursor_definition SEMI
            	        {
            	            FOLLOWPUSH(FOLLOW_cursor_definition_in_declare_section1530);
            	            cursor_definition44=cursor_definition(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, cursor_definition44.tree);
            	            SEMI45 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_declare_section1532); 
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) {
            	            SEMI45_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI45));
            	            ADAPTOR->addChild(ADAPTOR, root_0, SEMI45_tree);
            	            }

            	        }
            	        break;
            	    case 4:
            	        // OraclePLSQL.g:241:7: item_declaration SEMI
            	        {
            	            FOLLOWPUSH(FOLLOW_item_declaration_in_declare_section1563);
            	            item_declaration46=item_declaration(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, item_declaration46.tree);
            	            SEMI47 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_declare_section1565); 
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) {
            	            SEMI47_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI47));
            	            ADAPTOR->addChild(ADAPTOR, root_0, SEMI47_tree);
            	            }

            	        }
            	        break;
            	    case 5:
            	        // OraclePLSQL.g:242:7: function_declaration_or_definition SEMI
            	        {
            	            FOLLOWPUSH(FOLLOW_function_declaration_or_definition_in_declare_section1597);
            	            function_declaration_or_definition48=function_declaration_or_definition(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, function_declaration_or_definition48.tree);
            	            SEMI49 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_declare_section1599); 
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) {
            	            SEMI49_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI49));
            	            ADAPTOR->addChild(ADAPTOR, root_0, SEMI49_tree);
            	            }

            	        }
            	        break;
            	    case 6:
            	        // OraclePLSQL.g:243:7: procedure_declaration_or_definition SEMI
            	        {
            	            FOLLOWPUSH(FOLLOW_procedure_declaration_or_definition_in_declare_section1613);
            	            procedure_declaration_or_definition50=procedure_declaration_or_definition(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, procedure_declaration_or_definition50.tree);
            	            SEMI51 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_declare_section1615); 
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) {
            	            SEMI51_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI51));
            	            ADAPTOR->addChild(ADAPTOR, root_0, SEMI51_tree);
            	            }

            	        }
            	        break;
            	    case 7:
            	        // OraclePLSQL.g:244:7: pragma
            	        {
            	            FOLLOWPUSH(FOLLOW_pragma_in_declare_section1628);
            	            pragma52=pragma(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruledeclare_sectionEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, pragma52.tree);

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt16 >= 1 )
            		{
            		    goto loop16;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto ruledeclare_sectionEx;
            	}
            	cnt16++;
                }
                loop16: ;	/* Jump to here if this rule does not match */
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruledeclare_sectionEx; /* Prevent compiler warnings */
    ruledeclare_sectionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(9, declare_section_StartIndex); }

    return retval;
}
/* $ANTLR end declare_section */

/** 
 * $ANTLR start type_definition_sub
 * OraclePLSQL.g:249:1: type_definition_sub : k_type identifier[T_DATATYPE_NAME,T_DECL] ( k_is | k_as ) ( record_type_definition | collection_type_definition | ref_cursor_type_definition ) ;
 */
static OraclePLSQLParser_type_definition_sub_return
type_definition_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_type_definition_sub_return retval;
    ANTLR3_UINT32 type_definition_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_type_return k_type53;
    #undef	RETURN_TYPE_k_type53
    #define	RETURN_TYPE_k_type53 OraclePLSQLParser_k_type_return

    OraclePLSQLParser_identifier_return identifier54;
    #undef	RETURN_TYPE_identifier54
    #define	RETURN_TYPE_identifier54 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_k_is_return k_is55;
    #undef	RETURN_TYPE_k_is55
    #define	RETURN_TYPE_k_is55 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as56;
    #undef	RETURN_TYPE_k_as56
    #define	RETURN_TYPE_k_as56 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_record_type_definition_return record_type_definition57;
    #undef	RETURN_TYPE_record_type_definition57
    #define	RETURN_TYPE_record_type_definition57 OraclePLSQLParser_record_type_definition_return

    OraclePLSQLParser_collection_type_definition_return collection_type_definition58;
    #undef	RETURN_TYPE_collection_type_definition58
    #define	RETURN_TYPE_collection_type_definition58 OraclePLSQLParser_collection_type_definition_return

    OraclePLSQLParser_ref_cursor_type_definition_return ref_cursor_type_definition59;
    #undef	RETURN_TYPE_ref_cursor_type_definition59
    #define	RETURN_TYPE_ref_cursor_type_definition59 OraclePLSQLParser_ref_cursor_type_definition_return


    /* Initialize rule variables
     */
    type_definition_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(10)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_type53.tree = NULL;
    identifier54.tree = NULL;
    k_is55.tree = NULL;
    k_as56.tree = NULL;
    record_type_definition57.tree = NULL;
    collection_type_definition58.tree = NULL;
    ref_cursor_type_definition59.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:249:21: ( k_type identifier[T_DATATYPE_NAME,T_DECL] ( k_is | k_as ) ( record_type_definition | collection_type_definition | ref_cursor_type_definition ) )
        // OraclePLSQL.g:249:23: k_type identifier[T_DATATYPE_NAME,T_DECL] ( k_is | k_as ) ( record_type_definition | collection_type_definition | ref_cursor_type_definition )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_type_in_type_definition_sub1688);
            k_type53=k_type(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruletype_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_type53.tree);
            FOLLOWPUSH(FOLLOW_identifier_in_type_definition_sub1690);
            identifier54=identifier(ctx, T_DATATYPE_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruletype_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier54.tree);

            // OraclePLSQL.g:249:65: ( k_is | k_as )
            {
                int alt17=2;
                switch ( LA(1) ) 
                {
                case 178:
                	{
                		alt17=1;
                	}
                    break;
                case 151:
                	{
                		alt17=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 17;
                    EXCEPTION->state        = 0;


                    goto ruletype_definition_subEx;
                }

                switch (alt17) 
                {
            	case 1:
            	    // OraclePLSQL.g:249:67: k_is
            	    {
            	        FOLLOWPUSH(FOLLOW_k_is_in_type_definition_sub1695);
            	        k_is55=k_is(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruletype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is55.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:249:74: k_as
            	    {
            	        FOLLOWPUSH(FOLLOW_k_as_in_type_definition_sub1699);
            	        k_as56=k_as(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruletype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as56.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:249:81: ( record_type_definition | collection_type_definition | ref_cursor_type_definition )
            {
                int alt18=3;
                switch ( LA(1) ) 
                {
                case 225:
                	{
                		alt18=1;
                	}
                    break;
                case 191:
                case 234:
                case 235:
                	{
                		alt18=2;
                	}
                    break;
                case 226:
                	{
                		alt18=3;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 18;
                    EXCEPTION->state        = 0;


                    goto ruletype_definition_subEx;
                }

                switch (alt18) 
                {
            	case 1:
            	    // OraclePLSQL.g:249:83: record_type_definition
            	    {
            	        FOLLOWPUSH(FOLLOW_record_type_definition_in_type_definition_sub1705);
            	        record_type_definition57=record_type_definition(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruletype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, record_type_definition57.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:249:108: collection_type_definition
            	    {
            	        FOLLOWPUSH(FOLLOW_collection_type_definition_in_type_definition_sub1709);
            	        collection_type_definition58=collection_type_definition(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruletype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, collection_type_definition58.tree);

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:249:137: ref_cursor_type_definition
            	    {
            	        FOLLOWPUSH(FOLLOW_ref_cursor_type_definition_in_type_definition_sub1713);
            	        ref_cursor_type_definition59=ref_cursor_type_definition(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruletype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, ref_cursor_type_definition59.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruletype_definition_subEx; /* Prevent compiler warnings */
    ruletype_definition_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(10, type_definition_sub_StartIndex); }

    return retval;
}
/* $ANTLR end type_definition_sub */

/** 
 * $ANTLR start type_definition
 * OraclePLSQL.g:250:1: type_definition : type_definition_sub -> ^( 't_type_decl' type_definition_sub ) ;
 */
static OraclePLSQLParser_type_definition_return
type_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_type_definition_return retval;
    ANTLR3_UINT32 type_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_type_definition_sub_return type_definition_sub60;
    #undef	RETURN_TYPE_type_definition_sub60
    #define	RETURN_TYPE_type_definition_sub60 OraclePLSQLParser_type_definition_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_type_definition_sub;
    /* Initialize rule variables
     */
    type_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(11)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    type_definition_sub60.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_type_definition_sub   = NULL;
    #define CREATE_stream_type_definition_sub  if (stream_type_definition_sub == NULL) {stream_type_definition_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule type_definition_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:250:17: ( type_definition_sub -> ^( 't_type_decl' type_definition_sub ) )
        // OraclePLSQL.g:250:19: type_definition_sub
        {
            FOLLOWPUSH(FOLLOW_type_definition_sub_in_type_definition1723);
            type_definition_sub60=type_definition_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruletype_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_type_definition_sub; stream_type_definition_sub->add(stream_type_definition_sub, type_definition_sub60.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_TYPE_DECL, type_definition_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 250:39: -> ^( 't_type_decl' type_definition_sub )
            	{
            	    // OraclePLSQL.g:250:41: ^( 't_type_decl' type_definition_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_TYPE_DECL, (pANTLR3_UINT8)"T_TYPE_DECL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_type_definition_sub == NULL ? NULL : stream_type_definition_sub->nextTree(stream_type_definition_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruletype_definitionEx; /* Prevent compiler warnings */
    ruletype_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_type_definition_sub != NULL) stream_type_definition_sub->free(stream_type_definition_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(11, type_definition_StartIndex); }

    return retval;
}
/* $ANTLR end type_definition */

/** 
 * $ANTLR start subtype_definition_sub
 * OraclePLSQL.g:252:1: subtype_definition_sub : k_subtype identifier[T_DATATYPE_NAME,T_DECL] ( k_is | k_as ) datatype ( k_not k_null )? ;
 */
static OraclePLSQLParser_subtype_definition_sub_return
subtype_definition_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_subtype_definition_sub_return retval;
    ANTLR3_UINT32 subtype_definition_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_subtype_return k_subtype61;
    #undef	RETURN_TYPE_k_subtype61
    #define	RETURN_TYPE_k_subtype61 OraclePLSQLParser_k_subtype_return

    OraclePLSQLParser_identifier_return identifier62;
    #undef	RETURN_TYPE_identifier62
    #define	RETURN_TYPE_identifier62 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_k_is_return k_is63;
    #undef	RETURN_TYPE_k_is63
    #define	RETURN_TYPE_k_is63 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as64;
    #undef	RETURN_TYPE_k_as64
    #define	RETURN_TYPE_k_as64 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_datatype_return datatype65;
    #undef	RETURN_TYPE_datatype65
    #define	RETURN_TYPE_datatype65 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_not_return k_not66;
    #undef	RETURN_TYPE_k_not66
    #define	RETURN_TYPE_k_not66 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null67;
    #undef	RETURN_TYPE_k_null67
    #define	RETURN_TYPE_k_null67 OraclePLSQLParser_k_null_return


    /* Initialize rule variables
     */
    subtype_definition_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(12)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_subtype61.tree = NULL;
    identifier62.tree = NULL;
    k_is63.tree = NULL;
    k_as64.tree = NULL;
    datatype65.tree = NULL;
    k_not66.tree = NULL;
    k_null67.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:252:24: ( k_subtype identifier[T_DATATYPE_NAME,T_DECL] ( k_is | k_as ) datatype ( k_not k_null )? )
        // OraclePLSQL.g:252:26: k_subtype identifier[T_DATATYPE_NAME,T_DECL] ( k_is | k_as ) datatype ( k_not k_null )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_subtype_in_subtype_definition_sub1738);
            k_subtype61=k_subtype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulesubtype_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_subtype61.tree);
            FOLLOWPUSH(FOLLOW_identifier_in_subtype_definition_sub1740);
            identifier62=identifier(ctx, T_DATATYPE_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulesubtype_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier62.tree);

            // OraclePLSQL.g:252:71: ( k_is | k_as )
            {
                int alt19=2;
                switch ( LA(1) ) 
                {
                case 178:
                	{
                		alt19=1;
                	}
                    break;
                case 151:
                	{
                		alt19=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 19;
                    EXCEPTION->state        = 0;


                    goto rulesubtype_definition_subEx;
                }

                switch (alt19) 
                {
            	case 1:
            	    // OraclePLSQL.g:252:73: k_is
            	    {
            	        FOLLOWPUSH(FOLLOW_k_is_in_subtype_definition_sub1745);
            	        k_is63=k_is(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulesubtype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is63.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:252:80: k_as
            	    {
            	        FOLLOWPUSH(FOLLOW_k_as_in_subtype_definition_sub1749);
            	        k_as64=k_as(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulesubtype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as64.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_datatype_in_subtype_definition_sub1753);
            datatype65=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulesubtype_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype65.tree);

            // OraclePLSQL.g:252:96: ( k_not k_null )?
            {
                int alt20=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		alt20=1;
                    	}
                        break;
                }

                switch (alt20) 
                {
            	case 1:
            	    // OraclePLSQL.g:252:98: k_not k_null
            	    {
            	        FOLLOWPUSH(FOLLOW_k_not_in_subtype_definition_sub1757);
            	        k_not66=k_not(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulesubtype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not66.tree);
            	        FOLLOWPUSH(FOLLOW_k_null_in_subtype_definition_sub1759);
            	        k_null67=k_null(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulesubtype_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null67.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulesubtype_definition_subEx; /* Prevent compiler warnings */
    rulesubtype_definition_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(12, subtype_definition_sub_StartIndex); }

    return retval;
}
/* $ANTLR end subtype_definition_sub */

/** 
 * $ANTLR start subtype_definition
 * OraclePLSQL.g:253:1: subtype_definition : subtype_definition_sub -> ^( 't_subtype_decl' subtype_definition_sub ) ;
 */
static OraclePLSQLParser_subtype_definition_return
subtype_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_subtype_definition_return retval;
    ANTLR3_UINT32 subtype_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_subtype_definition_sub_return subtype_definition_sub68;
    #undef	RETURN_TYPE_subtype_definition_sub68
    #define	RETURN_TYPE_subtype_definition_sub68 OraclePLSQLParser_subtype_definition_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_subtype_definition_sub;
    /* Initialize rule variables
     */
    subtype_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(13)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    subtype_definition_sub68.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_subtype_definition_sub   = NULL;
    #define CREATE_stream_subtype_definition_sub  if (stream_subtype_definition_sub == NULL) {stream_subtype_definition_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule subtype_definition_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:253:19: ( subtype_definition_sub -> ^( 't_subtype_decl' subtype_definition_sub ) )
        // OraclePLSQL.g:253:21: subtype_definition_sub
        {
            FOLLOWPUSH(FOLLOW_subtype_definition_sub_in_subtype_definition1769);
            subtype_definition_sub68=subtype_definition_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulesubtype_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_subtype_definition_sub; stream_subtype_definition_sub->add(stream_subtype_definition_sub, subtype_definition_sub68.tree, NULL); }

             
            /* AST REWRITE
             * elements          : subtype_definition_sub, T_SUBTYPE_DECL
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 253:44: -> ^( 't_subtype_decl' subtype_definition_sub )
            	{
            	    // OraclePLSQL.g:253:46: ^( 't_subtype_decl' subtype_definition_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_SUBTYPE_DECL, (pANTLR3_UINT8)"T_SUBTYPE_DECL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_subtype_definition_sub == NULL ? NULL : stream_subtype_definition_sub->nextTree(stream_subtype_definition_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulesubtype_definitionEx; /* Prevent compiler warnings */
    rulesubtype_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_subtype_definition_sub != NULL) stream_subtype_definition_sub->free(stream_subtype_definition_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(13, subtype_definition_StartIndex); }

    return retval;
}
/* $ANTLR end subtype_definition */

/** 
 * $ANTLR start cursor_definition_sub
 * OraclePLSQL.g:255:1: cursor_definition_sub : k_cursor identifier[T_CURSOR_NAME,T_DECL] ( parameter_declarations )? ( k_return datatype )? k_is select_statement ;
 */
static OraclePLSQLParser_cursor_definition_sub_return
cursor_definition_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_cursor_definition_sub_return retval;
    ANTLR3_UINT32 cursor_definition_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_cursor_return k_cursor69;
    #undef	RETURN_TYPE_k_cursor69
    #define	RETURN_TYPE_k_cursor69 OraclePLSQLParser_k_cursor_return

    OraclePLSQLParser_identifier_return identifier70;
    #undef	RETURN_TYPE_identifier70
    #define	RETURN_TYPE_identifier70 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_parameter_declarations_return parameter_declarations71;
    #undef	RETURN_TYPE_parameter_declarations71
    #define	RETURN_TYPE_parameter_declarations71 OraclePLSQLParser_parameter_declarations_return

    OraclePLSQLParser_k_return_return k_return72;
    #undef	RETURN_TYPE_k_return72
    #define	RETURN_TYPE_k_return72 OraclePLSQLParser_k_return_return

    OraclePLSQLParser_datatype_return datatype73;
    #undef	RETURN_TYPE_datatype73
    #define	RETURN_TYPE_datatype73 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_is_return k_is74;
    #undef	RETURN_TYPE_k_is74
    #define	RETURN_TYPE_k_is74 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_select_statement_return select_statement75;
    #undef	RETURN_TYPE_select_statement75
    #define	RETURN_TYPE_select_statement75 OraclePLSQLParser_select_statement_return


    /* Initialize rule variables
     */
    cursor_definition_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(14)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_cursor69.tree = NULL;
    identifier70.tree = NULL;
    parameter_declarations71.tree = NULL;
    k_return72.tree = NULL;
    datatype73.tree = NULL;
    k_is74.tree = NULL;
    select_statement75.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:255:23: ( k_cursor identifier[T_CURSOR_NAME,T_DECL] ( parameter_declarations )? ( k_return datatype )? k_is select_statement )
        // OraclePLSQL.g:255:25: k_cursor identifier[T_CURSOR_NAME,T_DECL] ( parameter_declarations )? ( k_return datatype )? k_is select_statement
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_cursor_in_cursor_definition_sub1784);
            k_cursor69=k_cursor(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecursor_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_cursor69.tree);
            FOLLOWPUSH(FOLLOW_identifier_in_cursor_definition_sub1786);
            identifier70=identifier(ctx, T_CURSOR_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecursor_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier70.tree);

            // OraclePLSQL.g:255:67: ( parameter_declarations )?
            {
                int alt21=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		alt21=1;
                    	}
                        break;
                }

                switch (alt21) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: parameter_declarations
            	    {
            	        FOLLOWPUSH(FOLLOW_parameter_declarations_in_cursor_definition_sub1789);
            	        parameter_declarations71=parameter_declarations(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecursor_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declarations71.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:255:91: ( k_return datatype )?
            {
                int alt22=2;
                switch ( LA(1) ) 
                {
                    case 228:
                    	{
                    		alt22=1;
                    	}
                        break;
                }

                switch (alt22) 
                {
            	case 1:
            	    // OraclePLSQL.g:255:92: k_return datatype
            	    {
            	        FOLLOWPUSH(FOLLOW_k_return_in_cursor_definition_sub1793);
            	        k_return72=k_return(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecursor_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_return72.tree);
            	        FOLLOWPUSH(FOLLOW_datatype_in_cursor_definition_sub1795);
            	        datatype73=datatype(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecursor_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype73.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_is_in_cursor_definition_sub1799);
            k_is74=k_is(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecursor_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is74.tree);
            FOLLOWPUSH(FOLLOW_select_statement_in_cursor_definition_sub1801);
            select_statement75=select_statement(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecursor_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, select_statement75.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecursor_definition_subEx; /* Prevent compiler warnings */
    rulecursor_definition_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(14, cursor_definition_sub_StartIndex); }

    return retval;
}
/* $ANTLR end cursor_definition_sub */

/** 
 * $ANTLR start cursor_definition
 * OraclePLSQL.g:256:1: cursor_definition : cursor_definition_sub -> ^( 't_cursor_decl' cursor_definition_sub ) ;
 */
static OraclePLSQLParser_cursor_definition_return
cursor_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_cursor_definition_return retval;
    ANTLR3_UINT32 cursor_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_cursor_definition_sub_return cursor_definition_sub76;
    #undef	RETURN_TYPE_cursor_definition_sub76
    #define	RETURN_TYPE_cursor_definition_sub76 OraclePLSQLParser_cursor_definition_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_cursor_definition_sub;
    /* Initialize rule variables
     */
    cursor_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(15)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    cursor_definition_sub76.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_cursor_definition_sub   = NULL;
    #define CREATE_stream_cursor_definition_sub  if (stream_cursor_definition_sub == NULL) {stream_cursor_definition_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule cursor_definition_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:256:19: ( cursor_definition_sub -> ^( 't_cursor_decl' cursor_definition_sub ) )
        // OraclePLSQL.g:256:21: cursor_definition_sub
        {
            FOLLOWPUSH(FOLLOW_cursor_definition_sub_in_cursor_definition1809);
            cursor_definition_sub76=cursor_definition_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecursor_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_cursor_definition_sub; stream_cursor_definition_sub->add(stream_cursor_definition_sub, cursor_definition_sub76.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_CURSOR_DECL, cursor_definition_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 256:43: -> ^( 't_cursor_decl' cursor_definition_sub )
            	{
            	    // OraclePLSQL.g:256:45: ^( 't_cursor_decl' cursor_definition_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CURSOR_DECL, (pANTLR3_UINT8)"T_CURSOR_DECL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_cursor_definition_sub == NULL ? NULL : stream_cursor_definition_sub->nextTree(stream_cursor_definition_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecursor_definitionEx; /* Prevent compiler warnings */
    rulecursor_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_cursor_definition_sub != NULL) stream_cursor_definition_sub->free(stream_cursor_definition_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(15, cursor_definition_StartIndex); }

    return retval;
}
/* $ANTLR end cursor_definition */

/** 
 * $ANTLR start item_declaration
 * OraclePLSQL.g:258:1: item_declaration : ( variable_declaration -> ^( 't_variable_decl' variable_declaration ) | constant_declaration -> ^( 't_const_decl' constant_declaration ) | exception_declaration -> ^( 't_exc_decl' exception_declaration ) );
 */
static OraclePLSQLParser_item_declaration_return
item_declaration(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_item_declaration_return retval;
    ANTLR3_UINT32 item_declaration_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_variable_declaration_return variable_declaration77;
    #undef	RETURN_TYPE_variable_declaration77
    #define	RETURN_TYPE_variable_declaration77 OraclePLSQLParser_variable_declaration_return

    OraclePLSQLParser_constant_declaration_return constant_declaration78;
    #undef	RETURN_TYPE_constant_declaration78
    #define	RETURN_TYPE_constant_declaration78 OraclePLSQLParser_constant_declaration_return

    OraclePLSQLParser_exception_declaration_return exception_declaration79;
    #undef	RETURN_TYPE_exception_declaration79
    #define	RETURN_TYPE_exception_declaration79 OraclePLSQLParser_exception_declaration_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_constant_declaration;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_variable_declaration;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_exception_declaration;
    /* Initialize rule variables
     */
    item_declaration_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(16)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    variable_declaration77.tree = NULL;
    constant_declaration78.tree = NULL;
    exception_declaration79.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_constant_declaration   = NULL;
    #define CREATE_stream_constant_declaration  if (stream_constant_declaration == NULL) {stream_constant_declaration = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule constant_declaration"); }
    stream_variable_declaration   = NULL;
    #define CREATE_stream_variable_declaration  if (stream_variable_declaration == NULL) {stream_variable_declaration = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule variable_declaration"); }
    stream_exception_declaration   = NULL;
    #define CREATE_stream_exception_declaration  if (stream_exception_declaration == NULL) {stream_exception_declaration = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule exception_declaration"); }

    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:259:5: ( variable_declaration -> ^( 't_variable_decl' variable_declaration ) | constant_declaration -> ^( 't_const_decl' constant_declaration ) | exception_declaration -> ^( 't_exc_decl' exception_declaration ) )
            
            ANTLR3_UINT32 alt23;

            alt23=3;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            		case 127:
            		case 128:
            		case 129:
            		case 130:
            		case 131:
            		case 132:
            		case 133:
            		case 134:
            		case 135:
            		case 136:
            		case 140:
            		case 142:
            		case 143:
            		case 146:
            		case 147:
            		case 158:
            		case 163:
            		case 182:
            		case 204:
            		case 217:
            		case 226:
            			{
            				alt23=1;
            			}
            		    break;
            		case 206:
            			{
            				alt23=2;
            			}
            		    break;
            		case 212:
            			{
            				alt23=3;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 23;
            		    EXCEPTION->state        = 1;


            		    goto ruleitem_declarationEx;
            		}

            	}
                break;
            case 127:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            		case 127:
            		case 128:
            		case 129:
            		case 130:
            		case 131:
            		case 132:
            		case 133:
            		case 134:
            		case 135:
            		case 136:
            		case 140:
            		case 142:
            		case 143:
            		case 146:
            		case 147:
            		case 158:
            		case 163:
            		case 182:
            		case 204:
            		case 217:
            		case 226:
            			{
            				alt23=1;
            			}
            		    break;
            		case 206:
            			{
            				alt23=2;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 23;
            		    EXCEPTION->state        = 2;


            		    goto ruleitem_declarationEx;
            		}

            	}
                break;
            case 128:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            		case 127:
            		case 128:
            		case 129:
            		case 130:
            		case 131:
            		case 132:
            		case 133:
            		case 134:
            		case 135:
            		case 136:
            		case 140:
            		case 142:
            		case 143:
            		case 146:
            		case 147:
            		case 158:
            		case 163:
            		case 182:
            		case 204:
            		case 217:
            		case 226:
            			{
            				alt23=1;
            			}
            		    break;
            		case 206:
            			{
            				alt23=2;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 23;
            		    EXCEPTION->state        = 3;


            		    goto ruleitem_declarationEx;
            		}

            	}
                break;
            case K_OUT:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            		case 127:
            		case 128:
            		case 129:
            		case 130:
            		case 131:
            		case 132:
            		case 133:
            		case 134:
            		case 135:
            		case 136:
            		case 140:
            		case 142:
            		case 143:
            		case 146:
            		case 147:
            		case 158:
            		case 163:
            		case 182:
            		case 204:
            		case 217:
            		case 226:
            			{
            				alt23=1;
            			}
            		    break;
            		case 206:
            			{
            				alt23=2;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 23;
            		    EXCEPTION->state        = 4;


            		    goto ruleitem_declarationEx;
            		}

            	}
                break;
            case 129:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            		case 127:
            		case 128:
            		case 129:
            		case 130:
            		case 131:
            		case 132:
            		case 133:
            		case 134:
            		case 135:
            		case 136:
            		case 140:
            		case 142:
            		case 143:
            		case 146:
            		case 147:
            		case 158:
            		case 163:
            		case 182:
            		case 204:
            		case 217:
            		case 226:
            			{
            				alt23=1;
            			}
            		    break;
            		case 206:
            			{
            				alt23=2;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 23;
            		    EXCEPTION->state        = 5;


            		    goto ruleitem_declarationEx;
            		}

            	}
                break;
            case 130:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            		case 127:
            		case 128:
            		case 129:
            		case 130:
            		case 131:
            		case 132:
            		case 133:
            		case 134:
            		case 135:
            		case 136:
            		case 140:
            		case 142:
            		case 143:
            		case 146:
            		case 147:
            		case 158:
            		case 163:
            		case 182:
            		case 204:
            		case 217:
            		case 226:
            			{
            				alt23=1;
            			}
            		    break;
            		case 206:
            			{
            				alt23=2;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 23;
            		    EXCEPTION->state        = 6;


            		    goto ruleitem_declarationEx;
            		}

            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 23;
                EXCEPTION->state        = 0;


                goto ruleitem_declarationEx;
            }

            switch (alt23) 
            {
        	case 1:
        	    // OraclePLSQL.g:259:7: variable_declaration
        	    {
        	        FOLLOWPUSH(FOLLOW_variable_declaration_in_item_declaration1828);
        	        variable_declaration77=variable_declaration(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleitem_declarationEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_variable_declaration; stream_variable_declaration->add(stream_variable_declaration, variable_declaration77.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : T_VAR_DECL, variable_declaration
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 259:29: -> ^( 't_variable_decl' variable_declaration )
        	        	{
        	        	    // OraclePLSQL.g:259:31: ^( 't_variable_decl' variable_declaration )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_VAR_DECL, (pANTLR3_UINT8)"T_VAR_DECL"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_variable_declaration == NULL ? NULL : stream_variable_declaration->nextTree(stream_variable_declaration));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:260:7: constant_declaration
        	    {
        	        FOLLOWPUSH(FOLLOW_constant_declaration_in_item_declaration1844);
        	        constant_declaration78=constant_declaration(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleitem_declarationEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_constant_declaration; stream_constant_declaration->add(stream_constant_declaration, constant_declaration78.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : T_CONST_DECL, constant_declaration
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 260:29: -> ^( 't_const_decl' constant_declaration )
        	        	{
        	        	    // OraclePLSQL.g:260:31: ^( 't_const_decl' constant_declaration )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CONST_DECL, (pANTLR3_UINT8)"T_CONST_DECL"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_constant_declaration == NULL ? NULL : stream_constant_declaration->nextTree(stream_constant_declaration));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:261:7: exception_declaration
        	    {
        	        FOLLOWPUSH(FOLLOW_exception_declaration_in_item_declaration1860);
        	        exception_declaration79=exception_declaration(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleitem_declarationEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_exception_declaration; stream_exception_declaration->add(stream_exception_declaration, exception_declaration79.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : exception_declaration, T_EXC_DECL
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 261:29: -> ^( 't_exc_decl' exception_declaration )
        	        	{
        	        	    // OraclePLSQL.g:261:31: ^( 't_exc_decl' exception_declaration )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_EXC_DECL, (pANTLR3_UINT8)"T_EXC_DECL"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_exception_declaration == NULL ? NULL : stream_exception_declaration->nextTree(stream_exception_declaration));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleitem_declarationEx; /* Prevent compiler warnings */
    ruleitem_declarationEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_constant_declaration != NULL) stream_constant_declaration->free(stream_constant_declaration);
        if (stream_variable_declaration != NULL) stream_variable_declaration->free(stream_variable_declaration);
        if (stream_exception_declaration != NULL) stream_exception_declaration->free(stream_exception_declaration);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(16, item_declaration_StartIndex); }

    return retval;
}
/* $ANTLR end item_declaration */

/** 
 * $ANTLR start variable_declaration
 * OraclePLSQL.g:264:1: variable_declaration : variable_name[T_DECL] datatype ( ( k_not k_null )? ( ASSIGN | k_default ) expression )? ;
 */
static OraclePLSQLParser_variable_declaration_return
variable_declaration(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_variable_declaration_return retval;
    ANTLR3_UINT32 variable_declaration_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ASSIGN84;
    OraclePLSQLParser_variable_name_return variable_name80;
    #undef	RETURN_TYPE_variable_name80
    #define	RETURN_TYPE_variable_name80 OraclePLSQLParser_variable_name_return

    OraclePLSQLParser_datatype_return datatype81;
    #undef	RETURN_TYPE_datatype81
    #define	RETURN_TYPE_datatype81 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_not_return k_not82;
    #undef	RETURN_TYPE_k_not82
    #define	RETURN_TYPE_k_not82 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null83;
    #undef	RETURN_TYPE_k_null83
    #define	RETURN_TYPE_k_null83 OraclePLSQLParser_k_null_return

    OraclePLSQLParser_k_default_return k_default85;
    #undef	RETURN_TYPE_k_default85
    #define	RETURN_TYPE_k_default85 OraclePLSQLParser_k_default_return

    OraclePLSQLParser_expression_return expression86;
    #undef	RETURN_TYPE_expression86
    #define	RETURN_TYPE_expression86 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE ASSIGN84_tree;

    /* Initialize rule variables
     */
    variable_declaration_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(17)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ASSIGN84       = NULL;
    variable_name80.tree = NULL;
    datatype81.tree = NULL;
    k_not82.tree = NULL;
    k_null83.tree = NULL;
    k_default85.tree = NULL;
    expression86.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ASSIGN84_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:264:22: ( variable_name[T_DECL] datatype ( ( k_not k_null )? ( ASSIGN | k_default ) expression )? )
        // OraclePLSQL.g:264:24: variable_name[T_DECL] datatype ( ( k_not k_null )? ( ASSIGN | k_default ) expression )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_variable_name_in_variable_declaration1880);
            variable_name80=variable_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulevariable_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_name80.tree);
            FOLLOWPUSH(FOLLOW_datatype_in_variable_declaration1883);
            datatype81=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulevariable_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype81.tree);

            // OraclePLSQL.g:264:55: ( ( k_not k_null )? ( ASSIGN | k_default ) expression )?
            {
                int alt26=2;
                switch ( LA(1) ) 
                {
                    case ASSIGN:
                    case 164:
                    case 183:
                    	{
                    		alt26=1;
                    	}
                        break;
                }

                switch (alt26) 
                {
            	case 1:
            	    // OraclePLSQL.g:264:58: ( k_not k_null )? ( ASSIGN | k_default ) expression
            	    {

            	        // OraclePLSQL.g:264:58: ( k_not k_null )?
            	        {
            	            int alt24=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 183:
            	                	{
            	                		alt24=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt24) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:264:61: k_not k_null
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_not_in_variable_declaration1891);
            	        	        k_not82=k_not(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulevariable_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not82.tree);
            	        	        FOLLOWPUSH(FOLLOW_k_null_in_variable_declaration1893);
            	        	        k_null83=k_null(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulevariable_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null83.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	        // OraclePLSQL.g:264:77: ( ASSIGN | k_default )
            	        {
            	            int alt25=2;
            	            switch ( LA(1) ) 
            	            {
            	            case ASSIGN:
            	            	{
            	            		alt25=1;
            	            	}
            	                break;
            	            case 164:
            	            	{
            	            		alt25=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 25;
            	                EXCEPTION->state        = 0;


            	                goto rulevariable_declarationEx;
            	            }

            	            switch (alt25) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:264:80: ASSIGN
            	        	    {
            	        	        ASSIGN84 = (pANTLR3_COMMON_TOKEN) MATCHT(ASSIGN, &FOLLOW_ASSIGN_in_variable_declaration1901); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulevariable_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ASSIGN84_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ASSIGN84));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ASSIGN84_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:264:90: k_default
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_default_in_variable_declaration1906);
            	        	        k_default85=k_default(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulevariable_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_default85.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_expression_in_variable_declaration1910);
            	        expression86=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevariable_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression86.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulevariable_declarationEx; /* Prevent compiler warnings */
    rulevariable_declarationEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(17, variable_declaration_StartIndex); }

    return retval;
}
/* $ANTLR end variable_declaration */

/** 
 * $ANTLR start constant_declaration
 * OraclePLSQL.g:266:1: constant_declaration : variable_name[T_DECL] k_constant datatype ( k_not k_null )? ( ASSIGN | k_default ) expression ;
 */
static OraclePLSQLParser_constant_declaration_return
constant_declaration(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_constant_declaration_return retval;
    ANTLR3_UINT32 constant_declaration_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ASSIGN92;
    OraclePLSQLParser_variable_name_return variable_name87;
    #undef	RETURN_TYPE_variable_name87
    #define	RETURN_TYPE_variable_name87 OraclePLSQLParser_variable_name_return

    OraclePLSQLParser_k_constant_return k_constant88;
    #undef	RETURN_TYPE_k_constant88
    #define	RETURN_TYPE_k_constant88 OraclePLSQLParser_k_constant_return

    OraclePLSQLParser_datatype_return datatype89;
    #undef	RETURN_TYPE_datatype89
    #define	RETURN_TYPE_datatype89 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_not_return k_not90;
    #undef	RETURN_TYPE_k_not90
    #define	RETURN_TYPE_k_not90 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null91;
    #undef	RETURN_TYPE_k_null91
    #define	RETURN_TYPE_k_null91 OraclePLSQLParser_k_null_return

    OraclePLSQLParser_k_default_return k_default93;
    #undef	RETURN_TYPE_k_default93
    #define	RETURN_TYPE_k_default93 OraclePLSQLParser_k_default_return

    OraclePLSQLParser_expression_return expression94;
    #undef	RETURN_TYPE_expression94
    #define	RETURN_TYPE_expression94 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE ASSIGN92_tree;

    /* Initialize rule variables
     */
    constant_declaration_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(18)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ASSIGN92       = NULL;
    variable_name87.tree = NULL;
    k_constant88.tree = NULL;
    datatype89.tree = NULL;
    k_not90.tree = NULL;
    k_null91.tree = NULL;
    k_default93.tree = NULL;
    expression94.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ASSIGN92_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:266:22: ( variable_name[T_DECL] k_constant datatype ( k_not k_null )? ( ASSIGN | k_default ) expression )
        // OraclePLSQL.g:266:24: variable_name[T_DECL] k_constant datatype ( k_not k_null )? ( ASSIGN | k_default ) expression
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_variable_name_in_constant_declaration1923);
            variable_name87=variable_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleconstant_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_name87.tree);
            FOLLOWPUSH(FOLLOW_k_constant_in_constant_declaration1926);
            k_constant88=k_constant(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleconstant_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_constant88.tree);
            FOLLOWPUSH(FOLLOW_datatype_in_constant_declaration1928);
            datatype89=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleconstant_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype89.tree);

            // OraclePLSQL.g:266:66: ( k_not k_null )?
            {
                int alt27=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		alt27=1;
                    	}
                        break;
                }

                switch (alt27) 
                {
            	case 1:
            	    // OraclePLSQL.g:266:68: k_not k_null
            	    {
            	        FOLLOWPUSH(FOLLOW_k_not_in_constant_declaration1932);
            	        k_not90=k_not(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleconstant_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not90.tree);
            	        FOLLOWPUSH(FOLLOW_k_null_in_constant_declaration1934);
            	        k_null91=k_null(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleconstant_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null91.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:266:84: ( ASSIGN | k_default )
            {
                int alt28=2;
                switch ( LA(1) ) 
                {
                case ASSIGN:
                	{
                		alt28=1;
                	}
                    break;
                case 164:
                	{
                		alt28=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 28;
                    EXCEPTION->state        = 0;


                    goto ruleconstant_declarationEx;
                }

                switch (alt28) 
                {
            	case 1:
            	    // OraclePLSQL.g:266:88: ASSIGN
            	    {
            	        ASSIGN92 = (pANTLR3_COMMON_TOKEN) MATCHT(ASSIGN, &FOLLOW_ASSIGN_in_constant_declaration1943); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleconstant_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        ASSIGN92_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ASSIGN92));
            	        ADAPTOR->addChild(ADAPTOR, root_0, ASSIGN92_tree);
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:266:98: k_default
            	    {
            	        FOLLOWPUSH(FOLLOW_k_default_in_constant_declaration1948);
            	        k_default93=k_default(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleconstant_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_default93.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_expression_in_constant_declaration1953);
            expression94=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleconstant_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression94.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleconstant_declarationEx; /* Prevent compiler warnings */
    ruleconstant_declarationEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(18, constant_declaration_StartIndex); }

    return retval;
}
/* $ANTLR end constant_declaration */

/** 
 * $ANTLR start exception_declaration
 * OraclePLSQL.g:268:1: exception_declaration : identifier[T_EXCEPTION_NAME,T_DECL] k_exception ;
 */
static OraclePLSQLParser_exception_declaration_return
exception_declaration(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_exception_declaration_return retval;
    ANTLR3_UINT32 exception_declaration_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier95;
    #undef	RETURN_TYPE_identifier95
    #define	RETURN_TYPE_identifier95 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_k_exception_return k_exception96;
    #undef	RETURN_TYPE_k_exception96
    #define	RETURN_TYPE_k_exception96 OraclePLSQLParser_k_exception_return


    /* Initialize rule variables
     */
    exception_declaration_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(19)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier95.tree = NULL;
    k_exception96.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:268:23: ( identifier[T_EXCEPTION_NAME,T_DECL] k_exception )
        // OraclePLSQL.g:268:25: identifier[T_EXCEPTION_NAME,T_DECL] k_exception
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_identifier_in_exception_declaration1962);
            identifier95=identifier(ctx, T_EXCEPTION_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexception_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier95.tree);
            FOLLOWPUSH(FOLLOW_k_exception_in_exception_declaration1965);
            k_exception96=k_exception(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexception_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_exception96.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexception_declarationEx; /* Prevent compiler warnings */
    ruleexception_declarationEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(19, exception_declaration_StartIndex); }

    return retval;
}
/* $ANTLR end exception_declaration */

/** 
 * $ANTLR start record_type_definition
 * OraclePLSQL.g:270:1: record_type_definition : k_record LPAREN record_field_declaration ( COMMA record_field_declaration )* RPAREN ;
 */
static OraclePLSQLParser_record_type_definition_return
record_type_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_record_type_definition_return retval;
    ANTLR3_UINT32 record_type_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN98;
    pANTLR3_COMMON_TOKEN    COMMA100;
    pANTLR3_COMMON_TOKEN    RPAREN102;
    OraclePLSQLParser_k_record_return k_record97;
    #undef	RETURN_TYPE_k_record97
    #define	RETURN_TYPE_k_record97 OraclePLSQLParser_k_record_return

    OraclePLSQLParser_record_field_declaration_return record_field_declaration99;
    #undef	RETURN_TYPE_record_field_declaration99
    #define	RETURN_TYPE_record_field_declaration99 OraclePLSQLParser_record_field_declaration_return

    OraclePLSQLParser_record_field_declaration_return record_field_declaration101;
    #undef	RETURN_TYPE_record_field_declaration101
    #define	RETURN_TYPE_record_field_declaration101 OraclePLSQLParser_record_field_declaration_return

    pANTLR3_BASE_TREE LPAREN98_tree;
    pANTLR3_BASE_TREE COMMA100_tree;
    pANTLR3_BASE_TREE RPAREN102_tree;

    /* Initialize rule variables
     */
    record_type_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(20)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN98       = NULL;
    COMMA100       = NULL;
    RPAREN102       = NULL;
    k_record97.tree = NULL;
    record_field_declaration99.tree = NULL;
    record_field_declaration101.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN98_tree   = NULL;
    COMMA100_tree   = NULL;
    RPAREN102_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:270:24: ( k_record LPAREN record_field_declaration ( COMMA record_field_declaration )* RPAREN )
        // OraclePLSQL.g:271:2: k_record LPAREN record_field_declaration ( COMMA record_field_declaration )* RPAREN
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_record_in_record_type_definition1979);
            k_record97=k_record(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulerecord_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_record97.tree);
            LPAREN98 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_record_type_definition1981); 
            if  (HASEXCEPTION())
            {
                goto rulerecord_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN98_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN98));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN98_tree);
            }
            FOLLOWPUSH(FOLLOW_record_field_declaration_in_record_type_definition1983);
            record_field_declaration99=record_field_declaration(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulerecord_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, record_field_declaration99.tree);

            // OraclePLSQL.g:271:43: ( COMMA record_field_declaration )*

            for (;;)
            {
                int alt29=2;
                switch ( LA(1) ) 
                {
                case COMMA:
                	{
                		alt29=1;
                	}
                    break;

                }

                switch (alt29) 
                {
            	case 1:
            	    // OraclePLSQL.g:271:45: COMMA record_field_declaration
            	    {
            	        COMMA100 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_record_type_definition1987); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulerecord_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        COMMA100_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA100));
            	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA100_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_record_field_declaration_in_record_type_definition1989);
            	        record_field_declaration101=record_field_declaration(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulerecord_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, record_field_declaration101.tree);

            	    }
            	    break;

            	default:
            	    goto loop29;	/* break out of the loop */
            	    break;
                }
            }
            loop29: ; /* Jump out to here if this rule does not match */

            RPAREN102 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_record_type_definition1994); 
            if  (HASEXCEPTION())
            {
                goto rulerecord_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN102_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN102));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN102_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulerecord_type_definitionEx; /* Prevent compiler warnings */
    rulerecord_type_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(20, record_type_definition_StartIndex); }

    return retval;
}
/* $ANTLR end record_type_definition */

/** 
 * $ANTLR start record_field_declaration
 * OraclePLSQL.g:274:1: record_field_declaration : ID datatype ( ( k_not k_null )? ( ASSIGN | k_default ) expression )? ;
 */
static OraclePLSQLParser_record_field_declaration_return
record_field_declaration(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_record_field_declaration_return retval;
    ANTLR3_UINT32 record_field_declaration_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID103;
    pANTLR3_COMMON_TOKEN    ASSIGN107;
    OraclePLSQLParser_datatype_return datatype104;
    #undef	RETURN_TYPE_datatype104
    #define	RETURN_TYPE_datatype104 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_not_return k_not105;
    #undef	RETURN_TYPE_k_not105
    #define	RETURN_TYPE_k_not105 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null106;
    #undef	RETURN_TYPE_k_null106
    #define	RETURN_TYPE_k_null106 OraclePLSQLParser_k_null_return

    OraclePLSQLParser_k_default_return k_default108;
    #undef	RETURN_TYPE_k_default108
    #define	RETURN_TYPE_k_default108 OraclePLSQLParser_k_default_return

    OraclePLSQLParser_expression_return expression109;
    #undef	RETURN_TYPE_expression109
    #define	RETURN_TYPE_expression109 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE ID103_tree;
    pANTLR3_BASE_TREE ASSIGN107_tree;

    /* Initialize rule variables
     */
    record_field_declaration_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(21)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID103       = NULL;
    ASSIGN107       = NULL;
    datatype104.tree = NULL;
    k_not105.tree = NULL;
    k_null106.tree = NULL;
    k_default108.tree = NULL;
    expression109.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID103_tree   = NULL;
    ASSIGN107_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:274:26: ( ID datatype ( ( k_not k_null )? ( ASSIGN | k_default ) expression )? )
        // OraclePLSQL.g:275:2: ID datatype ( ( k_not k_null )? ( ASSIGN | k_default ) expression )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            ID103 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_record_field_declaration2008); 
            if  (HASEXCEPTION())
            {
                goto rulerecord_field_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            ID103_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID103));
            ADAPTOR->addChild(ADAPTOR, root_0, ID103_tree);
            }
            FOLLOWPUSH(FOLLOW_datatype_in_record_field_declaration2010);
            datatype104=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulerecord_field_declarationEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype104.tree);

            // OraclePLSQL.g:275:14: ( ( k_not k_null )? ( ASSIGN | k_default ) expression )?
            {
                int alt32=2;
                switch ( LA(1) ) 
                {
                    case ASSIGN:
                    case 164:
                    case 183:
                    	{
                    		alt32=1;
                    	}
                        break;
                }

                switch (alt32) 
                {
            	case 1:
            	    // OraclePLSQL.g:275:16: ( k_not k_null )? ( ASSIGN | k_default ) expression
            	    {

            	        // OraclePLSQL.g:275:16: ( k_not k_null )?
            	        {
            	            int alt30=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 183:
            	                	{
            	                		alt30=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt30) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:275:18: k_not k_null
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_not_in_record_field_declaration2016);
            	        	        k_not105=k_not(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulerecord_field_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not105.tree);
            	        	        FOLLOWPUSH(FOLLOW_k_null_in_record_field_declaration2018);
            	        	        k_null106=k_null(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulerecord_field_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null106.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	        // OraclePLSQL.g:275:34: ( ASSIGN | k_default )
            	        {
            	            int alt31=2;
            	            switch ( LA(1) ) 
            	            {
            	            case ASSIGN:
            	            	{
            	            		alt31=1;
            	            	}
            	                break;
            	            case 164:
            	            	{
            	            		alt31=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 31;
            	                EXCEPTION->state        = 0;


            	                goto rulerecord_field_declarationEx;
            	            }

            	            switch (alt31) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:275:36: ASSIGN
            	        	    {
            	        	        ASSIGN107 = (pANTLR3_COMMON_TOKEN) MATCHT(ASSIGN, &FOLLOW_ASSIGN_in_record_field_declaration2025); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulerecord_field_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ASSIGN107_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ASSIGN107));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ASSIGN107_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:275:45: k_default
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_default_in_record_field_declaration2029);
            	        	        k_default108=k_default(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulerecord_field_declarationEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_default108.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_expression_in_record_field_declaration2033);
            	        expression109=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulerecord_field_declarationEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression109.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulerecord_field_declarationEx; /* Prevent compiler warnings */
    rulerecord_field_declarationEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(21, record_field_declaration_StartIndex); }

    return retval;
}
/* $ANTLR end record_field_declaration */

/** 
 * $ANTLR start collection_type_definition
 * OraclePLSQL.g:278:1: collection_type_definition : ( varray_type_definition | nested_table_type_definition );
 */
static OraclePLSQLParser_collection_type_definition_return
collection_type_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_collection_type_definition_return retval;
    ANTLR3_UINT32 collection_type_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_varray_type_definition_return varray_type_definition110;
    #undef	RETURN_TYPE_varray_type_definition110
    #define	RETURN_TYPE_varray_type_definition110 OraclePLSQLParser_varray_type_definition_return

    OraclePLSQLParser_nested_table_type_definition_return nested_table_type_definition111;
    #undef	RETURN_TYPE_nested_table_type_definition111
    #define	RETURN_TYPE_nested_table_type_definition111 OraclePLSQLParser_nested_table_type_definition_return


    /* Initialize rule variables
     */
    collection_type_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(22)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    varray_type_definition110.tree = NULL;
    nested_table_type_definition111.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:279:2: ( varray_type_definition | nested_table_type_definition )
            
            ANTLR3_UINT32 alt33;

            alt33=2;

            switch ( LA(1) ) 
            {
            case 234:
            case 235:
            	{
            		alt33=1;
            	}
                break;
            case 191:
            	{
            		alt33=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 33;
                EXCEPTION->state        = 0;


                goto rulecollection_type_definitionEx;
            }

            switch (alt33) 
            {
        	case 1:
        	    // OraclePLSQL.g:279:4: varray_type_definition
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_varray_type_definition_in_collection_type_definition2050);
        	        varray_type_definition110=varray_type_definition(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecollection_type_definitionEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, varray_type_definition110.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:280:4: nested_table_type_definition
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_nested_table_type_definition_in_collection_type_definition2055);
        	        nested_table_type_definition111=nested_table_type_definition(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecollection_type_definitionEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, nested_table_type_definition111.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulecollection_type_definitionEx; /* Prevent compiler warnings */
    rulecollection_type_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(22, collection_type_definition_StartIndex); }

    return retval;
}
/* $ANTLR end collection_type_definition */

/** 
 * $ANTLR start varray_type_definition
 * OraclePLSQL.g:283:1: varray_type_definition : ( k_varying ( k_array )? | k_varray ) LPAREN numeric_literal RPAREN kOF datatype ( k_not k_null )? ;
 */
static OraclePLSQLParser_varray_type_definition_return
varray_type_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_varray_type_definition_return retval;
    ANTLR3_UINT32 varray_type_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN115;
    pANTLR3_COMMON_TOKEN    RPAREN117;
    OraclePLSQLParser_k_varying_return k_varying112;
    #undef	RETURN_TYPE_k_varying112
    #define	RETURN_TYPE_k_varying112 OraclePLSQLParser_k_varying_return

    OraclePLSQLParser_k_array_return k_array113;
    #undef	RETURN_TYPE_k_array113
    #define	RETURN_TYPE_k_array113 OraclePLSQLParser_k_array_return

    OraclePLSQLParser_k_varray_return k_varray114;
    #undef	RETURN_TYPE_k_varray114
    #define	RETURN_TYPE_k_varray114 OraclePLSQLParser_k_varray_return

    OraclePLSQLParser_numeric_literal_return numeric_literal116;
    #undef	RETURN_TYPE_numeric_literal116
    #define	RETURN_TYPE_numeric_literal116 OraclePLSQLParser_numeric_literal_return

    OraclePLSQLParser_kOF_return kOF118;
    #undef	RETURN_TYPE_kOF118
    #define	RETURN_TYPE_kOF118 OraclePLSQLParser_kOF_return

    OraclePLSQLParser_datatype_return datatype119;
    #undef	RETURN_TYPE_datatype119
    #define	RETURN_TYPE_datatype119 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_not_return k_not120;
    #undef	RETURN_TYPE_k_not120
    #define	RETURN_TYPE_k_not120 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null121;
    #undef	RETURN_TYPE_k_null121
    #define	RETURN_TYPE_k_null121 OraclePLSQLParser_k_null_return

    pANTLR3_BASE_TREE LPAREN115_tree;
    pANTLR3_BASE_TREE RPAREN117_tree;

    /* Initialize rule variables
     */
    varray_type_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(23)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN115       = NULL;
    RPAREN117       = NULL;
    k_varying112.tree = NULL;
    k_array113.tree = NULL;
    k_varray114.tree = NULL;
    numeric_literal116.tree = NULL;
    kOF118.tree = NULL;
    datatype119.tree = NULL;
    k_not120.tree = NULL;
    k_null121.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN115_tree   = NULL;
    RPAREN117_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:284:2: ( ( k_varying ( k_array )? | k_varray ) LPAREN numeric_literal RPAREN kOF datatype ( k_not k_null )? )
        // OraclePLSQL.g:284:4: ( k_varying ( k_array )? | k_varray ) LPAREN numeric_literal RPAREN kOF datatype ( k_not k_null )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:284:4: ( k_varying ( k_array )? | k_varray )
            {
                int alt35=2;
                switch ( LA(1) ) 
                {
                case 235:
                	{
                		alt35=1;
                	}
                    break;
                case 234:
                	{
                		alt35=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 35;
                    EXCEPTION->state        = 0;


                    goto rulevarray_type_definitionEx;
                }

                switch (alt35) 
                {
            	case 1:
            	    // OraclePLSQL.g:284:6: k_varying ( k_array )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_varying_in_varray_type_definition2068);
            	        k_varying112=k_varying(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevarray_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_varying112.tree);

            	        // OraclePLSQL.g:284:16: ( k_array )?
            	        {
            	            int alt34=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 137:
            	                	{
            	                		alt34=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt34) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: k_array
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_array_in_varray_type_definition2070);
            	        	        k_array113=k_array(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulevarray_type_definitionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_array113.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:284:27: k_varray
            	    {
            	        FOLLOWPUSH(FOLLOW_k_varray_in_varray_type_definition2075);
            	        k_varray114=k_varray(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevarray_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_varray114.tree);

            	    }
            	    break;

                }
            }
            LPAREN115 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_varray_type_definition2079); 
            if  (HASEXCEPTION())
            {
                goto rulevarray_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN115_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN115));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN115_tree);
            }
            FOLLOWPUSH(FOLLOW_numeric_literal_in_varray_type_definition2081);
            numeric_literal116=numeric_literal(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulevarray_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_literal116.tree);
            RPAREN117 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_varray_type_definition2083); 
            if  (HASEXCEPTION())
            {
                goto rulevarray_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN117_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN117));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN117_tree);
            }
            FOLLOWPUSH(FOLLOW_kOF_in_varray_type_definition2085);
            kOF118=kOF(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulevarray_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kOF118.tree);
            FOLLOWPUSH(FOLLOW_datatype_in_varray_type_definition2087);
            datatype119=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulevarray_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype119.tree);

            // OraclePLSQL.g:284:81: ( k_not k_null )?
            {
                int alt36=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		alt36=1;
                    	}
                        break;
                }

                switch (alt36) 
                {
            	case 1:
            	    // OraclePLSQL.g:284:83: k_not k_null
            	    {
            	        FOLLOWPUSH(FOLLOW_k_not_in_varray_type_definition2091);
            	        k_not120=k_not(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevarray_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not120.tree);
            	        FOLLOWPUSH(FOLLOW_k_null_in_varray_type_definition2093);
            	        k_null121=k_null(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevarray_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null121.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulevarray_type_definitionEx; /* Prevent compiler warnings */
    rulevarray_type_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(23, varray_type_definition_StartIndex); }

    return retval;
}
/* $ANTLR end varray_type_definition */

/** 
 * $ANTLR start nested_table_type_definition
 * OraclePLSQL.g:287:1: nested_table_type_definition : k_table kOF datatype ( k_not k_null )? ( k_index k_by associative_index_type )? ;
 */
static OraclePLSQLParser_nested_table_type_definition_return
nested_table_type_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_nested_table_type_definition_return retval;
    ANTLR3_UINT32 nested_table_type_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_table_return k_table122;
    #undef	RETURN_TYPE_k_table122
    #define	RETURN_TYPE_k_table122 OraclePLSQLParser_k_table_return

    OraclePLSQLParser_kOF_return kOF123;
    #undef	RETURN_TYPE_kOF123
    #define	RETURN_TYPE_kOF123 OraclePLSQLParser_kOF_return

    OraclePLSQLParser_datatype_return datatype124;
    #undef	RETURN_TYPE_datatype124
    #define	RETURN_TYPE_datatype124 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_not_return k_not125;
    #undef	RETURN_TYPE_k_not125
    #define	RETURN_TYPE_k_not125 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null126;
    #undef	RETURN_TYPE_k_null126
    #define	RETURN_TYPE_k_null126 OraclePLSQLParser_k_null_return

    OraclePLSQLParser_k_index_return k_index127;
    #undef	RETURN_TYPE_k_index127
    #define	RETURN_TYPE_k_index127 OraclePLSQLParser_k_index_return

    OraclePLSQLParser_k_by_return k_by128;
    #undef	RETURN_TYPE_k_by128
    #define	RETURN_TYPE_k_by128 OraclePLSQLParser_k_by_return

    OraclePLSQLParser_associative_index_type_return associative_index_type129;
    #undef	RETURN_TYPE_associative_index_type129
    #define	RETURN_TYPE_associative_index_type129 OraclePLSQLParser_associative_index_type_return


    /* Initialize rule variables
     */
    nested_table_type_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(24)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_table122.tree = NULL;
    kOF123.tree = NULL;
    datatype124.tree = NULL;
    k_not125.tree = NULL;
    k_null126.tree = NULL;
    k_index127.tree = NULL;
    k_by128.tree = NULL;
    associative_index_type129.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:288:2: ( k_table kOF datatype ( k_not k_null )? ( k_index k_by associative_index_type )? )
        // OraclePLSQL.g:288:4: k_table kOF datatype ( k_not k_null )? ( k_index k_by associative_index_type )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_table_in_nested_table_type_definition2107);
            k_table122=k_table(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenested_table_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_table122.tree);
            FOLLOWPUSH(FOLLOW_kOF_in_nested_table_type_definition2109);
            kOF123=kOF(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenested_table_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kOF123.tree);
            FOLLOWPUSH(FOLLOW_datatype_in_nested_table_type_definition2111);
            datatype124=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenested_table_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype124.tree);

            // OraclePLSQL.g:288:25: ( k_not k_null )?
            {
                int alt37=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		alt37=1;
                    	}
                        break;
                }

                switch (alt37) 
                {
            	case 1:
            	    // OraclePLSQL.g:288:27: k_not k_null
            	    {
            	        FOLLOWPUSH(FOLLOW_k_not_in_nested_table_type_definition2115);
            	        k_not125=k_not(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulenested_table_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not125.tree);
            	        FOLLOWPUSH(FOLLOW_k_null_in_nested_table_type_definition2117);
            	        k_null126=k_null(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulenested_table_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null126.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:288:43: ( k_index k_by associative_index_type )?
            {
                int alt38=2;
                switch ( LA(1) ) 
                {
                    case 175:
                    	{
                    		alt38=1;
                    	}
                        break;
                }

                switch (alt38) 
                {
            	case 1:
            	    // OraclePLSQL.g:288:45: k_index k_by associative_index_type
            	    {
            	        FOLLOWPUSH(FOLLOW_k_index_in_nested_table_type_definition2124);
            	        k_index127=k_index(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulenested_table_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_index127.tree);
            	        FOLLOWPUSH(FOLLOW_k_by_in_nested_table_type_definition2126);
            	        k_by128=k_by(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulenested_table_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_by128.tree);
            	        FOLLOWPUSH(FOLLOW_associative_index_type_in_nested_table_type_definition2128);
            	        associative_index_type129=associative_index_type(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulenested_table_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, associative_index_type129.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenested_table_type_definitionEx; /* Prevent compiler warnings */
    rulenested_table_type_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(24, nested_table_type_definition_StartIndex); }

    return retval;
}
/* $ANTLR end nested_table_type_definition */

/** 
 * $ANTLR start associative_index_type
 * OraclePLSQL.g:291:1: associative_index_type : datatype ;
 */
static OraclePLSQLParser_associative_index_type_return
associative_index_type(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_associative_index_type_return retval;
    ANTLR3_UINT32 associative_index_type_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_datatype_return datatype130;
    #undef	RETURN_TYPE_datatype130
    #define	RETURN_TYPE_datatype130 OraclePLSQLParser_datatype_return


    /* Initialize rule variables
     */
    associative_index_type_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(25)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    datatype130.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:292:2: ( datatype )
        // OraclePLSQL.g:292:4: datatype
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_datatype_in_associative_index_type2142);
            datatype130=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleassociative_index_typeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype130.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleassociative_index_typeEx; /* Prevent compiler warnings */
    ruleassociative_index_typeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(25, associative_index_type_StartIndex); }

    return retval;
}
/* $ANTLR end associative_index_type */

/** 
 * $ANTLR start ref_cursor_type_definition
 * OraclePLSQL.g:295:1: ref_cursor_type_definition : k_ref k_cursor ( k_return datatype )? ;
 */
static OraclePLSQLParser_ref_cursor_type_definition_return
ref_cursor_type_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_ref_cursor_type_definition_return retval;
    ANTLR3_UINT32 ref_cursor_type_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_ref_return k_ref131;
    #undef	RETURN_TYPE_k_ref131
    #define	RETURN_TYPE_k_ref131 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_k_cursor_return k_cursor132;
    #undef	RETURN_TYPE_k_cursor132
    #define	RETURN_TYPE_k_cursor132 OraclePLSQLParser_k_cursor_return

    OraclePLSQLParser_k_return_return k_return133;
    #undef	RETURN_TYPE_k_return133
    #define	RETURN_TYPE_k_return133 OraclePLSQLParser_k_return_return

    OraclePLSQLParser_datatype_return datatype134;
    #undef	RETURN_TYPE_datatype134
    #define	RETURN_TYPE_datatype134 OraclePLSQLParser_datatype_return


    /* Initialize rule variables
     */
    ref_cursor_type_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(26)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_ref131.tree = NULL;
    k_cursor132.tree = NULL;
    k_return133.tree = NULL;
    datatype134.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:296:2: ( k_ref k_cursor ( k_return datatype )? )
        // OraclePLSQL.g:296:4: k_ref k_cursor ( k_return datatype )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_ref_in_ref_cursor_type_definition2153);
            k_ref131=k_ref(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleref_cursor_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref131.tree);
            FOLLOWPUSH(FOLLOW_k_cursor_in_ref_cursor_type_definition2155);
            k_cursor132=k_cursor(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleref_cursor_type_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_cursor132.tree);

            // OraclePLSQL.g:296:19: ( k_return datatype )?
            {
                int alt39=2;
                switch ( LA(1) ) 
                {
                    case 228:
                    	{
                    		alt39=1;
                    	}
                        break;
                }

                switch (alt39) 
                {
            	case 1:
            	    // OraclePLSQL.g:296:21: k_return datatype
            	    {
            	        FOLLOWPUSH(FOLLOW_k_return_in_ref_cursor_type_definition2159);
            	        k_return133=k_return(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleref_cursor_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_return133.tree);
            	        FOLLOWPUSH(FOLLOW_datatype_in_ref_cursor_type_definition2161);
            	        datatype134=datatype(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleref_cursor_type_definitionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype134.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleref_cursor_type_definitionEx; /* Prevent compiler warnings */
    ruleref_cursor_type_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(26, ref_cursor_type_definition_StartIndex); }

    return retval;
}
/* $ANTLR end ref_cursor_type_definition */

/** 
 * $ANTLR start datatype_name
 * OraclePLSQL.g:299:1: datatype_name : ( r_long ( r_raw )? ( LPAREN INTEGER RPAREN )? | r_raw ( LPAREN INTEGER RPAREN )? | k_interval kDAY ( LPAREN INTEGER RPAREN )? r_to kSECOND ( LPAREN INTEGER RPAREN )? | k_interval kYEAR ( LPAREN INTEGER RPAREN )? r_to kMONTH | ( k_timestamp ) ( LPAREN INTEGER RPAREN )? ( r_with ( kLOCAL )? kTIME kZONE )? | r_char ( k_varying )? ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? | r_varchar ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? | r_varchar2 ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? | k_character ( k_varying )? ( LPAREN INTEGER RPAREN )? | k_nchar ( k_varying )? ( LPAREN INTEGER RPAREN )? | k_national ( k_character | r_char ) ( k_varying )? ( LPAREN INTEGER RPAREN )? | k_clob ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? );
 */
static OraclePLSQLParser_datatype_name_return
datatype_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_datatype_name_return retval;
    ANTLR3_UINT32 datatype_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN137;
    pANTLR3_COMMON_TOKEN    INTEGER138;
    pANTLR3_COMMON_TOKEN    RPAREN139;
    pANTLR3_COMMON_TOKEN    LPAREN141;
    pANTLR3_COMMON_TOKEN    INTEGER142;
    pANTLR3_COMMON_TOKEN    RPAREN143;
    pANTLR3_COMMON_TOKEN    LPAREN146;
    pANTLR3_COMMON_TOKEN    INTEGER147;
    pANTLR3_COMMON_TOKEN    RPAREN148;
    pANTLR3_COMMON_TOKEN    LPAREN151;
    pANTLR3_COMMON_TOKEN    INTEGER152;
    pANTLR3_COMMON_TOKEN    RPAREN153;
    pANTLR3_COMMON_TOKEN    LPAREN156;
    pANTLR3_COMMON_TOKEN    INTEGER157;
    pANTLR3_COMMON_TOKEN    RPAREN158;
    pANTLR3_COMMON_TOKEN    LPAREN162;
    pANTLR3_COMMON_TOKEN    INTEGER163;
    pANTLR3_COMMON_TOKEN    RPAREN164;
    pANTLR3_COMMON_TOKEN    LPAREN171;
    pANTLR3_COMMON_TOKEN    INTEGER172;
    pANTLR3_COMMON_TOKEN    RPAREN175;
    pANTLR3_COMMON_TOKEN    LPAREN182;
    pANTLR3_COMMON_TOKEN    INTEGER183;
    pANTLR3_COMMON_TOKEN    RPAREN186;
    pANTLR3_COMMON_TOKEN    LPAREN193;
    pANTLR3_COMMON_TOKEN    INTEGER194;
    pANTLR3_COMMON_TOKEN    RPAREN197;
    pANTLR3_COMMON_TOKEN    LPAREN205;
    pANTLR3_COMMON_TOKEN    INTEGER206;
    pANTLR3_COMMON_TOKEN    RPAREN207;
    pANTLR3_COMMON_TOKEN    LPAREN210;
    pANTLR3_COMMON_TOKEN    INTEGER211;
    pANTLR3_COMMON_TOKEN    RPAREN212;
    pANTLR3_COMMON_TOKEN    LPAREN217;
    pANTLR3_COMMON_TOKEN    INTEGER218;
    pANTLR3_COMMON_TOKEN    RPAREN219;
    OraclePLSQLParser_r_long_return r_long135;
    #undef	RETURN_TYPE_r_long135
    #define	RETURN_TYPE_r_long135 OraclePLSQLParser_r_long_return

    OraclePLSQLParser_r_raw_return r_raw136;
    #undef	RETURN_TYPE_r_raw136
    #define	RETURN_TYPE_r_raw136 OraclePLSQLParser_r_raw_return

    OraclePLSQLParser_r_raw_return r_raw140;
    #undef	RETURN_TYPE_r_raw140
    #define	RETURN_TYPE_r_raw140 OraclePLSQLParser_r_raw_return

    OraclePLSQLParser_k_interval_return k_interval144;
    #undef	RETURN_TYPE_k_interval144
    #define	RETURN_TYPE_k_interval144 OraclePLSQLParser_k_interval_return

    OraclePLSQLParser_kDAY_return kDAY145;
    #undef	RETURN_TYPE_kDAY145
    #define	RETURN_TYPE_kDAY145 OraclePLSQLParser_kDAY_return

    OraclePLSQLParser_r_to_return r_to149;
    #undef	RETURN_TYPE_r_to149
    #define	RETURN_TYPE_r_to149 OraclePLSQLParser_r_to_return

    OraclePLSQLParser_kSECOND_return kSECOND150;
    #undef	RETURN_TYPE_kSECOND150
    #define	RETURN_TYPE_kSECOND150 OraclePLSQLParser_kSECOND_return

    OraclePLSQLParser_k_interval_return k_interval154;
    #undef	RETURN_TYPE_k_interval154
    #define	RETURN_TYPE_k_interval154 OraclePLSQLParser_k_interval_return

    OraclePLSQLParser_kYEAR_return kYEAR155;
    #undef	RETURN_TYPE_kYEAR155
    #define	RETURN_TYPE_kYEAR155 OraclePLSQLParser_kYEAR_return

    OraclePLSQLParser_r_to_return r_to159;
    #undef	RETURN_TYPE_r_to159
    #define	RETURN_TYPE_r_to159 OraclePLSQLParser_r_to_return

    OraclePLSQLParser_kMONTH_return kMONTH160;
    #undef	RETURN_TYPE_kMONTH160
    #define	RETURN_TYPE_kMONTH160 OraclePLSQLParser_kMONTH_return

    OraclePLSQLParser_k_timestamp_return k_timestamp161;
    #undef	RETURN_TYPE_k_timestamp161
    #define	RETURN_TYPE_k_timestamp161 OraclePLSQLParser_k_timestamp_return

    OraclePLSQLParser_r_with_return r_with165;
    #undef	RETURN_TYPE_r_with165
    #define	RETURN_TYPE_r_with165 OraclePLSQLParser_r_with_return

    OraclePLSQLParser_kLOCAL_return kLOCAL166;
    #undef	RETURN_TYPE_kLOCAL166
    #define	RETURN_TYPE_kLOCAL166 OraclePLSQLParser_kLOCAL_return

    OraclePLSQLParser_kTIME_return kTIME167;
    #undef	RETURN_TYPE_kTIME167
    #define	RETURN_TYPE_kTIME167 OraclePLSQLParser_kTIME_return

    OraclePLSQLParser_kZONE_return kZONE168;
    #undef	RETURN_TYPE_kZONE168
    #define	RETURN_TYPE_kZONE168 OraclePLSQLParser_kZONE_return

    OraclePLSQLParser_r_char_return r_char169;
    #undef	RETURN_TYPE_r_char169
    #define	RETURN_TYPE_r_char169 OraclePLSQLParser_r_char_return

    OraclePLSQLParser_k_varying_return k_varying170;
    #undef	RETURN_TYPE_k_varying170
    #define	RETURN_TYPE_k_varying170 OraclePLSQLParser_k_varying_return

    OraclePLSQLParser_kBYTE_return kBYTE173;
    #undef	RETURN_TYPE_kBYTE173
    #define	RETURN_TYPE_kBYTE173 OraclePLSQLParser_kBYTE_return

    OraclePLSQLParser_r_char_return r_char174;
    #undef	RETURN_TYPE_r_char174
    #define	RETURN_TYPE_r_char174 OraclePLSQLParser_r_char_return

    OraclePLSQLParser_k_character_return k_character176;
    #undef	RETURN_TYPE_k_character176
    #define	RETURN_TYPE_k_character176 OraclePLSQLParser_k_character_return

    OraclePLSQLParser_r_set_return r_set177;
    #undef	RETURN_TYPE_r_set177
    #define	RETURN_TYPE_r_set177 OraclePLSQLParser_r_set_return

    OraclePLSQLParser_identifier_return identifier178;
    #undef	RETURN_TYPE_identifier178
    #define	RETURN_TYPE_identifier178 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier179;
    #undef	RETURN_TYPE_identifier179
    #define	RETURN_TYPE_identifier179 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_charset_attr_return charset_attr180;
    #undef	RETURN_TYPE_charset_attr180
    #define	RETURN_TYPE_charset_attr180 OraclePLSQLParser_charset_attr_return

    OraclePLSQLParser_r_varchar_return r_varchar181;
    #undef	RETURN_TYPE_r_varchar181
    #define	RETURN_TYPE_r_varchar181 OraclePLSQLParser_r_varchar_return

    OraclePLSQLParser_kBYTE_return kBYTE184;
    #undef	RETURN_TYPE_kBYTE184
    #define	RETURN_TYPE_kBYTE184 OraclePLSQLParser_kBYTE_return

    OraclePLSQLParser_r_char_return r_char185;
    #undef	RETURN_TYPE_r_char185
    #define	RETURN_TYPE_r_char185 OraclePLSQLParser_r_char_return

    OraclePLSQLParser_k_character_return k_character187;
    #undef	RETURN_TYPE_k_character187
    #define	RETURN_TYPE_k_character187 OraclePLSQLParser_k_character_return

    OraclePLSQLParser_r_set_return r_set188;
    #undef	RETURN_TYPE_r_set188
    #define	RETURN_TYPE_r_set188 OraclePLSQLParser_r_set_return

    OraclePLSQLParser_identifier_return identifier189;
    #undef	RETURN_TYPE_identifier189
    #define	RETURN_TYPE_identifier189 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier190;
    #undef	RETURN_TYPE_identifier190
    #define	RETURN_TYPE_identifier190 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_charset_attr_return charset_attr191;
    #undef	RETURN_TYPE_charset_attr191
    #define	RETURN_TYPE_charset_attr191 OraclePLSQLParser_charset_attr_return

    OraclePLSQLParser_r_varchar2_return r_varchar2192;
    #undef	RETURN_TYPE_r_varchar2192
    #define	RETURN_TYPE_r_varchar2192 OraclePLSQLParser_r_varchar2_return

    OraclePLSQLParser_kBYTE_return kBYTE195;
    #undef	RETURN_TYPE_kBYTE195
    #define	RETURN_TYPE_kBYTE195 OraclePLSQLParser_kBYTE_return

    OraclePLSQLParser_r_char_return r_char196;
    #undef	RETURN_TYPE_r_char196
    #define	RETURN_TYPE_r_char196 OraclePLSQLParser_r_char_return

    OraclePLSQLParser_k_character_return k_character198;
    #undef	RETURN_TYPE_k_character198
    #define	RETURN_TYPE_k_character198 OraclePLSQLParser_k_character_return

    OraclePLSQLParser_r_set_return r_set199;
    #undef	RETURN_TYPE_r_set199
    #define	RETURN_TYPE_r_set199 OraclePLSQLParser_r_set_return

    OraclePLSQLParser_identifier_return identifier200;
    #undef	RETURN_TYPE_identifier200
    #define	RETURN_TYPE_identifier200 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier201;
    #undef	RETURN_TYPE_identifier201
    #define	RETURN_TYPE_identifier201 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_charset_attr_return charset_attr202;
    #undef	RETURN_TYPE_charset_attr202
    #define	RETURN_TYPE_charset_attr202 OraclePLSQLParser_charset_attr_return

    OraclePLSQLParser_k_character_return k_character203;
    #undef	RETURN_TYPE_k_character203
    #define	RETURN_TYPE_k_character203 OraclePLSQLParser_k_character_return

    OraclePLSQLParser_k_varying_return k_varying204;
    #undef	RETURN_TYPE_k_varying204
    #define	RETURN_TYPE_k_varying204 OraclePLSQLParser_k_varying_return

    OraclePLSQLParser_k_nchar_return k_nchar208;
    #undef	RETURN_TYPE_k_nchar208
    #define	RETURN_TYPE_k_nchar208 OraclePLSQLParser_k_nchar_return

    OraclePLSQLParser_k_varying_return k_varying209;
    #undef	RETURN_TYPE_k_varying209
    #define	RETURN_TYPE_k_varying209 OraclePLSQLParser_k_varying_return

    OraclePLSQLParser_k_national_return k_national213;
    #undef	RETURN_TYPE_k_national213
    #define	RETURN_TYPE_k_national213 OraclePLSQLParser_k_national_return

    OraclePLSQLParser_k_character_return k_character214;
    #undef	RETURN_TYPE_k_character214
    #define	RETURN_TYPE_k_character214 OraclePLSQLParser_k_character_return

    OraclePLSQLParser_r_char_return r_char215;
    #undef	RETURN_TYPE_r_char215
    #define	RETURN_TYPE_r_char215 OraclePLSQLParser_r_char_return

    OraclePLSQLParser_k_varying_return k_varying216;
    #undef	RETURN_TYPE_k_varying216
    #define	RETURN_TYPE_k_varying216 OraclePLSQLParser_k_varying_return

    OraclePLSQLParser_k_clob_return k_clob220;
    #undef	RETURN_TYPE_k_clob220
    #define	RETURN_TYPE_k_clob220 OraclePLSQLParser_k_clob_return

    OraclePLSQLParser_k_character_return k_character221;
    #undef	RETURN_TYPE_k_character221
    #define	RETURN_TYPE_k_character221 OraclePLSQLParser_k_character_return

    OraclePLSQLParser_r_set_return r_set222;
    #undef	RETURN_TYPE_r_set222
    #define	RETURN_TYPE_r_set222 OraclePLSQLParser_r_set_return

    OraclePLSQLParser_identifier_return identifier223;
    #undef	RETURN_TYPE_identifier223
    #define	RETURN_TYPE_identifier223 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier224;
    #undef	RETURN_TYPE_identifier224
    #define	RETURN_TYPE_identifier224 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_charset_attr_return charset_attr225;
    #undef	RETURN_TYPE_charset_attr225
    #define	RETURN_TYPE_charset_attr225 OraclePLSQLParser_charset_attr_return

    pANTLR3_BASE_TREE LPAREN137_tree;
    pANTLR3_BASE_TREE INTEGER138_tree;
    pANTLR3_BASE_TREE RPAREN139_tree;
    pANTLR3_BASE_TREE LPAREN141_tree;
    pANTLR3_BASE_TREE INTEGER142_tree;
    pANTLR3_BASE_TREE RPAREN143_tree;
    pANTLR3_BASE_TREE LPAREN146_tree;
    pANTLR3_BASE_TREE INTEGER147_tree;
    pANTLR3_BASE_TREE RPAREN148_tree;
    pANTLR3_BASE_TREE LPAREN151_tree;
    pANTLR3_BASE_TREE INTEGER152_tree;
    pANTLR3_BASE_TREE RPAREN153_tree;
    pANTLR3_BASE_TREE LPAREN156_tree;
    pANTLR3_BASE_TREE INTEGER157_tree;
    pANTLR3_BASE_TREE RPAREN158_tree;
    pANTLR3_BASE_TREE LPAREN162_tree;
    pANTLR3_BASE_TREE INTEGER163_tree;
    pANTLR3_BASE_TREE RPAREN164_tree;
    pANTLR3_BASE_TREE LPAREN171_tree;
    pANTLR3_BASE_TREE INTEGER172_tree;
    pANTLR3_BASE_TREE RPAREN175_tree;
    pANTLR3_BASE_TREE LPAREN182_tree;
    pANTLR3_BASE_TREE INTEGER183_tree;
    pANTLR3_BASE_TREE RPAREN186_tree;
    pANTLR3_BASE_TREE LPAREN193_tree;
    pANTLR3_BASE_TREE INTEGER194_tree;
    pANTLR3_BASE_TREE RPAREN197_tree;
    pANTLR3_BASE_TREE LPAREN205_tree;
    pANTLR3_BASE_TREE INTEGER206_tree;
    pANTLR3_BASE_TREE RPAREN207_tree;
    pANTLR3_BASE_TREE LPAREN210_tree;
    pANTLR3_BASE_TREE INTEGER211_tree;
    pANTLR3_BASE_TREE RPAREN212_tree;
    pANTLR3_BASE_TREE LPAREN217_tree;
    pANTLR3_BASE_TREE INTEGER218_tree;
    pANTLR3_BASE_TREE RPAREN219_tree;

    /* Initialize rule variables
     */
    datatype_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(27)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN137       = NULL;
    INTEGER138       = NULL;
    RPAREN139       = NULL;
    LPAREN141       = NULL;
    INTEGER142       = NULL;
    RPAREN143       = NULL;
    LPAREN146       = NULL;
    INTEGER147       = NULL;
    RPAREN148       = NULL;
    LPAREN151       = NULL;
    INTEGER152       = NULL;
    RPAREN153       = NULL;
    LPAREN156       = NULL;
    INTEGER157       = NULL;
    RPAREN158       = NULL;
    LPAREN162       = NULL;
    INTEGER163       = NULL;
    RPAREN164       = NULL;
    LPAREN171       = NULL;
    INTEGER172       = NULL;
    RPAREN175       = NULL;
    LPAREN182       = NULL;
    INTEGER183       = NULL;
    RPAREN186       = NULL;
    LPAREN193       = NULL;
    INTEGER194       = NULL;
    RPAREN197       = NULL;
    LPAREN205       = NULL;
    INTEGER206       = NULL;
    RPAREN207       = NULL;
    LPAREN210       = NULL;
    INTEGER211       = NULL;
    RPAREN212       = NULL;
    LPAREN217       = NULL;
    INTEGER218       = NULL;
    RPAREN219       = NULL;
    r_long135.tree = NULL;
    r_raw136.tree = NULL;
    r_raw140.tree = NULL;
    k_interval144.tree = NULL;
    kDAY145.tree = NULL;
    r_to149.tree = NULL;
    kSECOND150.tree = NULL;
    k_interval154.tree = NULL;
    kYEAR155.tree = NULL;
    r_to159.tree = NULL;
    kMONTH160.tree = NULL;
    k_timestamp161.tree = NULL;
    r_with165.tree = NULL;
    kLOCAL166.tree = NULL;
    kTIME167.tree = NULL;
    kZONE168.tree = NULL;
    r_char169.tree = NULL;
    k_varying170.tree = NULL;
    kBYTE173.tree = NULL;
    r_char174.tree = NULL;
    k_character176.tree = NULL;
    r_set177.tree = NULL;
    identifier178.tree = NULL;
    identifier179.tree = NULL;
    charset_attr180.tree = NULL;
    r_varchar181.tree = NULL;
    kBYTE184.tree = NULL;
    r_char185.tree = NULL;
    k_character187.tree = NULL;
    r_set188.tree = NULL;
    identifier189.tree = NULL;
    identifier190.tree = NULL;
    charset_attr191.tree = NULL;
    r_varchar2192.tree = NULL;
    kBYTE195.tree = NULL;
    r_char196.tree = NULL;
    k_character198.tree = NULL;
    r_set199.tree = NULL;
    identifier200.tree = NULL;
    identifier201.tree = NULL;
    charset_attr202.tree = NULL;
    k_character203.tree = NULL;
    k_varying204.tree = NULL;
    k_nchar208.tree = NULL;
    k_varying209.tree = NULL;
    k_national213.tree = NULL;
    k_character214.tree = NULL;
    r_char215.tree = NULL;
    k_varying216.tree = NULL;
    k_clob220.tree = NULL;
    k_character221.tree = NULL;
    r_set222.tree = NULL;
    identifier223.tree = NULL;
    identifier224.tree = NULL;
    charset_attr225.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN137_tree   = NULL;
    INTEGER138_tree   = NULL;
    RPAREN139_tree   = NULL;
    LPAREN141_tree   = NULL;
    INTEGER142_tree   = NULL;
    RPAREN143_tree   = NULL;
    LPAREN146_tree   = NULL;
    INTEGER147_tree   = NULL;
    RPAREN148_tree   = NULL;
    LPAREN151_tree   = NULL;
    INTEGER152_tree   = NULL;
    RPAREN153_tree   = NULL;
    LPAREN156_tree   = NULL;
    INTEGER157_tree   = NULL;
    RPAREN158_tree   = NULL;
    LPAREN162_tree   = NULL;
    INTEGER163_tree   = NULL;
    RPAREN164_tree   = NULL;
    LPAREN171_tree   = NULL;
    INTEGER172_tree   = NULL;
    RPAREN175_tree   = NULL;
    LPAREN182_tree   = NULL;
    INTEGER183_tree   = NULL;
    RPAREN186_tree   = NULL;
    LPAREN193_tree   = NULL;
    INTEGER194_tree   = NULL;
    RPAREN197_tree   = NULL;
    LPAREN205_tree   = NULL;
    INTEGER206_tree   = NULL;
    RPAREN207_tree   = NULL;
    LPAREN210_tree   = NULL;
    INTEGER211_tree   = NULL;
    RPAREN212_tree   = NULL;
    LPAREN217_tree   = NULL;
    INTEGER218_tree   = NULL;
    RPAREN219_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:306:2: ( r_long ( r_raw )? ( LPAREN INTEGER RPAREN )? | r_raw ( LPAREN INTEGER RPAREN )? | k_interval kDAY ( LPAREN INTEGER RPAREN )? r_to kSECOND ( LPAREN INTEGER RPAREN )? | k_interval kYEAR ( LPAREN INTEGER RPAREN )? r_to kMONTH | ( k_timestamp ) ( LPAREN INTEGER RPAREN )? ( r_with ( kLOCAL )? kTIME kZONE )? | r_char ( k_varying )? ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? | r_varchar ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? | r_varchar2 ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? | k_character ( k_varying )? ( LPAREN INTEGER RPAREN )? | k_nchar ( k_varying )? ( LPAREN INTEGER RPAREN )? | k_national ( k_character | r_char ) ( k_varying )? ( LPAREN INTEGER RPAREN )? | k_clob ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )? )
            
            ANTLR3_UINT32 alt71;

            alt71=12;

            switch ( LA(1) ) 
            {
            case 142:
            	{
            		alt71=1;
            	}
                break;
            case 143:
            	{
            		alt71=2;
            	}
                break;
            case 130:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            			{
            				switch ( LA(3) ) 
            				{
            				case LPAREN:
            					{
            						switch ( LA(4) ) 
            						{
            						case INTEGER:
            							{
            								switch ( LA(5) ) 
            								{
            								case RPAREN:
            									{
            										switch ( LA(6) ) 
            										{
            										case 145:
            											{
            												switch ( LA(7) ) 
            												{
            												case ID:
            													{

            														{
            														    int LA71_16 = LA(8);
            														    if ( (synpred75_OraclePLSQL(ctx))) 
            														    {
            														        alt71=3;
            														    }
            														    else if ( (synpred77_OraclePLSQL(ctx))) 
            														    {
            														        alt71=4;
            														    }
            														    else 
            														    {
            														        if (BACKTRACKING>0)
            														        {
            														            FAILEDFLAG = ANTLR3_TRUE;
            														            return retval;
            														        }
            														    
            														        CONSTRUCTEX();
            														        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            														        EXCEPTION->message      = (void *)"";
            														        EXCEPTION->decisionNum  = 71;
            														        EXCEPTION->state        = 16;


            														        goto ruledatatype_nameEx;
            														    }
            														}
            													}
            												    break;

            												default:
            												    if (BACKTRACKING>0)
            												    {
            												        FAILEDFLAG = ANTLR3_TRUE;
            												        return retval;
            												    }
            												    CONSTRUCTEX();
            												    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            												    EXCEPTION->message      = (void *)"";
            												    EXCEPTION->decisionNum  = 71;
            												    EXCEPTION->state        = 14;


            												    goto ruledatatype_nameEx;
            												}

            											}
            										    break;

            										default:
            										    if (BACKTRACKING>0)
            										    {
            										        FAILEDFLAG = ANTLR3_TRUE;
            										        return retval;
            										    }
            										    CONSTRUCTEX();
            										    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            										    EXCEPTION->message      = (void *)"";
            										    EXCEPTION->decisionNum  = 71;
            										    EXCEPTION->state        = 17;


            										    goto ruledatatype_nameEx;
            										}

            									}
            								    break;

            								default:
            								    if (BACKTRACKING>0)
            								    {
            								        FAILEDFLAG = ANTLR3_TRUE;
            								        return retval;
            								    }
            								    CONSTRUCTEX();
            								    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            								    EXCEPTION->message      = (void *)"";
            								    EXCEPTION->decisionNum  = 71;
            								    EXCEPTION->state        = 15;


            								    goto ruledatatype_nameEx;
            								}

            							}
            						    break;

            						default:
            						    if (BACKTRACKING>0)
            						    {
            						        FAILEDFLAG = ANTLR3_TRUE;
            						        return retval;
            						    }
            						    CONSTRUCTEX();
            						    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            						    EXCEPTION->message      = (void *)"";
            						    EXCEPTION->decisionNum  = 71;
            						    EXCEPTION->state        = 13;


            						    goto ruledatatype_nameEx;
            						}

            					}
            				    break;
            				case 145:
            					{
            						switch ( LA(4) ) 
            						{
            						case ID:
            							{

            								{
            								    int LA71_16 = LA(5);
            								    if ( (synpred75_OraclePLSQL(ctx))) 
            								    {
            								        alt71=3;
            								    }
            								    else if ( (synpred77_OraclePLSQL(ctx))) 
            								    {
            								        alt71=4;
            								    }
            								    else 
            								    {
            								        if (BACKTRACKING>0)
            								        {
            								            FAILEDFLAG = ANTLR3_TRUE;
            								            return retval;
            								        }
            								    
            								        CONSTRUCTEX();
            								        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            								        EXCEPTION->message      = (void *)"";
            								        EXCEPTION->decisionNum  = 71;
            								        EXCEPTION->state        = 16;


            								        goto ruledatatype_nameEx;
            								    }
            								}
            							}
            						    break;

            						default:
            						    if (BACKTRACKING>0)
            						    {
            						        FAILEDFLAG = ANTLR3_TRUE;
            						        return retval;
            						    }
            						    CONSTRUCTEX();
            						    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            						    EXCEPTION->message      = (void *)"";
            						    EXCEPTION->decisionNum  = 71;
            						    EXCEPTION->state        = 14;


            						    goto ruledatatype_nameEx;
            						}

            					}
            				    break;

            				default:
            				    if (BACKTRACKING>0)
            				    {
            				        FAILEDFLAG = ANTLR3_TRUE;
            				        return retval;
            				    }
            				    CONSTRUCTEX();
            				    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            				    EXCEPTION->message      = (void *)"";
            				    EXCEPTION->decisionNum  = 71;
            				    EXCEPTION->state        = 12;


            				    goto ruledatatype_nameEx;
            				}

            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 71;
            		    EXCEPTION->state        = 3;


            		    goto ruledatatype_nameEx;
            		}

            	}
                break;
            case 128:
            	{
            		alt71=5;
            	}
                break;
            case 140:
            	{
            		alt71=6;
            	}
                break;
            case 146:
            	{
            		alt71=7;
            	}
                break;
            case 147:
            	{
            		alt71=8;
            	}
                break;
            case 158:
            	{
            		alt71=9;
            	}
                break;
            case 182:
            	{
            		alt71=10;
            	}
                break;
            case 217:
            	{
            		alt71=11;
            	}
                break;
            case 204:
            	{
            		alt71=12;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 71;
                EXCEPTION->state        = 0;


                goto ruledatatype_nameEx;
            }

            switch (alt71) 
            {
        	case 1:
        	    // OraclePLSQL.g:306:4: r_long ( r_raw )? ( LPAREN INTEGER RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_r_long_in_datatype_name2187);
        	        r_long135=r_long(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_long135.tree);

        	        // OraclePLSQL.g:306:11: ( r_raw )?
        	        {
        	            int alt40=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 143:
        	                	{
        	                		alt40=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt40) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:306:13: r_raw
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_r_raw_in_datatype_name2191);
        	        	        r_raw136=r_raw(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_raw136.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:306:21: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt41=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt41=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt41) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:306:23: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN137 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2197); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN137_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN137));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN137_tree);
        	        	        }
        	        	        INTEGER138 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2199); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER138_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER138));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER138_tree);
        	        	        }
        	        	        RPAREN139 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2201); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN139_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN139));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN139_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:307:4: r_raw ( LPAREN INTEGER RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_r_raw_in_datatype_name2209);
        	        r_raw140=r_raw(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_raw140.tree);

        	        // OraclePLSQL.g:307:10: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt42=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt42=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt42) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:307:12: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN141 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2213); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN141_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN141));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN141_tree);
        	        	        }
        	        	        INTEGER142 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2215); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER142_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER142));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER142_tree);
        	        	        }
        	        	        RPAREN143 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2217); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN143_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN143));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN143_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:310:4: k_interval kDAY ( LPAREN INTEGER RPAREN )? r_to kSECOND ( LPAREN INTEGER RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_interval_in_datatype_name2229);
        	        k_interval144=k_interval(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_interval144.tree);
        	        FOLLOWPUSH(FOLLOW_kDAY_in_datatype_name2231);
        	        kDAY145=kDAY(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kDAY145.tree);

        	        // OraclePLSQL.g:310:20: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt43=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt43=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt43) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:310:22: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN146 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2235); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN146_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN146));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN146_tree);
        	        	        }
        	        	        INTEGER147 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2237); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER147_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER147));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER147_tree);
        	        	        }
        	        	        RPAREN148 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2239); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN148_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN148));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN148_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_r_to_in_datatype_name2244);
        	        r_to149=r_to(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_to149.tree);
        	        FOLLOWPUSH(FOLLOW_kSECOND_in_datatype_name2246);
        	        kSECOND150=kSECOND(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kSECOND150.tree);

        	        // OraclePLSQL.g:310:60: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt44=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt44=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt44) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:310:62: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN151 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2250); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN151_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN151));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN151_tree);
        	        	        }
        	        	        INTEGER152 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2252); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER152_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER152));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER152_tree);
        	        	        }
        	        	        RPAREN153 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2254); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN153_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN153));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN153_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:311:4: k_interval kYEAR ( LPAREN INTEGER RPAREN )? r_to kMONTH
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_interval_in_datatype_name2262);
        	        k_interval154=k_interval(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_interval154.tree);
        	        FOLLOWPUSH(FOLLOW_kYEAR_in_datatype_name2264);
        	        kYEAR155=kYEAR(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kYEAR155.tree);

        	        // OraclePLSQL.g:311:21: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt45=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt45=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt45) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:311:23: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN156 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2268); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN156_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN156));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN156_tree);
        	        	        }
        	        	        INTEGER157 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2270); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER157_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER157));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER157_tree);
        	        	        }
        	        	        RPAREN158 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2272); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN158_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN158));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN158_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_r_to_in_datatype_name2277);
        	        r_to159=r_to(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_to159.tree);
        	        FOLLOWPUSH(FOLLOW_kMONTH_in_datatype_name2279);
        	        kMONTH160=kMONTH(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kMONTH160.tree);

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:312:4: ( k_timestamp ) ( LPAREN INTEGER RPAREN )? ( r_with ( kLOCAL )? kTIME kZONE )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        // OraclePLSQL.g:312:4: ( k_timestamp )
        	        // OraclePLSQL.g:312:19: k_timestamp
        	        {
        	            FOLLOWPUSH(FOLLOW_k_timestamp_in_datatype_name2288);
        	            k_timestamp161=k_timestamp(ctx);

        	            FOLLOWPOP();
        	            if  (HASEXCEPTION())
        	            {
        	                goto ruledatatype_nameEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return retval;
        	            }
        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_timestamp161.tree);

        	        }


        	        // OraclePLSQL.g:312:33: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt46=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt46=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt46) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:312:35: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN162 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2294); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN162_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN162));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN162_tree);
        	        	        }
        	        	        INTEGER163 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2296); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER163_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER163));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER163_tree);
        	        	        }
        	        	        RPAREN164 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2298); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN164_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN164));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN164_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:312:60: ( r_with ( kLOCAL )? kTIME kZONE )?
        	        {
        	            int alt48=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 148:
        	                	{
        	                		alt48=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt48) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:312:62: r_with ( kLOCAL )? kTIME kZONE
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_r_with_in_datatype_name2305);
        	        	        r_with165=r_with(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_with165.tree);

        	        	        // OraclePLSQL.g:312:69: ( kLOCAL )?
        	        	        {
        	        	            int alt47=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	                case ID:
        	        	                	{
        	        	                		switch ( LA(2) ) 
        	        	                		{
        	        	                		    case ID:
        	        	                		    	{
        	        	                		    		switch ( LA(3) ) 
        	        	                		    		{
        	        	                		    		    case ID:
        	        	                		    		    	{
        	        	                		    		    		alt47=1;
        	        	                		    		    	}
        	        	                		    		        break;
        	        	                		    		}

        	        	                		    	}
        	        	                		        break;
        	        	                		}

        	        	                	}
        	        	                    break;
        	        	            }

        	        	            switch (alt47) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:312:71: kLOCAL
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_kLOCAL_in_datatype_name2309);
        	        	        	        kLOCAL166=kLOCAL(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kLOCAL166.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }
        	        	        FOLLOWPUSH(FOLLOW_kTIME_in_datatype_name2314);
        	        	        kTIME167=kTIME(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kTIME167.tree);
        	        	        FOLLOWPUSH(FOLLOW_kZONE_in_datatype_name2316);
        	        	        kZONE168=kZONE(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kZONE168.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:319:4: r_char ( k_varying )? ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_r_char_in_datatype_name2336);
        	        r_char169=r_char(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_char169.tree);

        	        // OraclePLSQL.g:319:16: ( k_varying )?
        	        {
        	            int alt49=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 235:
        	                	{
        	                		alt49=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt49) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:319:18: k_varying
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_varying_in_datatype_name2345);
        	        	        k_varying170=k_varying(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_varying170.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:319:31: ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )?
        	        {
        	            int alt51=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt51=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt51) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:319:33: LPAREN INTEGER ( kBYTE | r_char )? RPAREN
        	        	    {
        	        	        LPAREN171 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2352); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN171_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN171));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN171_tree);
        	        	        }
        	        	        INTEGER172 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2354); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER172_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER172));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER172_tree);
        	        	        }

        	        	        // OraclePLSQL.g:319:48: ( kBYTE | r_char )?
        	        	        {
        	        	            int alt50=3;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	                case ID:
        	        	                	{
        	        	                		alt50=1;
        	        	                	}
        	        	                    break;
        	        	                case 140:
        	        	                	{
        	        	                		alt50=2;
        	        	                	}
        	        	                    break;
        	        	            }

        	        	            switch (alt50) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:319:50: kBYTE
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_kBYTE_in_datatype_name2358);
        	        	        	        kBYTE173=kBYTE(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kBYTE173.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:319:58: r_char
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_r_char_in_datatype_name2362);
        	        	        	        r_char174=r_char(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_char174.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }
        	        	        RPAREN175 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2367); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN175_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN175));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN175_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:319:78: ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	        {
        	            int alt53=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 158:
        	                	{
        	                		alt53=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt53) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:319:80: k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_character_in_datatype_name2374);
        	        	        k_character176=k_character(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_character176.tree);
        	        	        FOLLOWPUSH(FOLLOW_r_set_in_datatype_name2376);
        	        	        r_set177=r_set(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_set177.tree);

        	        	        // OraclePLSQL.g:319:98: ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	        {
        	        	            int alt52=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	            case ID:
        	        	            	{
        	        	            		switch ( LA(2) ) 
        	        	            		{
        	        	            		case EOF:
        	        	            		case SEMI:
        	        	            		case COMMA:
        	        	            		case RPAREN:
        	        	            		case ASSIGN:
        	        	            		case K_USING:
        	        	            		case 132:
        	        	            		case 149:
        	        	            		case 151:
        	        	            		case 152:
        	        	            		case 164:
        	        	            		case 168:
        	        	            		case 175:
        	        	            		case 178:
        	        	            		case 183:
        	        	            		case 209:
        	        	            		case 220:
        	        	            		case 222:
        	        	            		case 227:
        	        	            			{
        	        	            				alt52=1;
        	        	            			}
        	        	            		    break;
        	        	            		case PERCENT:
        	        	            			{
        	        	            				alt52=2;
        	        	            			}
        	        	            		    break;

        	        	            		default:
        	        	            		    if (BACKTRACKING>0)
        	        	            		    {
        	        	            		        FAILEDFLAG = ANTLR3_TRUE;
        	        	            		        return retval;
        	        	            		    }
        	        	            		    CONSTRUCTEX();
        	        	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	            		    EXCEPTION->message      = (void *)"";
        	        	            		    EXCEPTION->decisionNum  = 52;
        	        	            		    EXCEPTION->state        = 1;


        	        	            		    goto ruledatatype_nameEx;
        	        	            		}

        	        	            	}
        	        	                break;

        	        	            default:
        	        	                if (BACKTRACKING>0)
        	        	                {
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
        	        	                    return retval;
        	        	                }
        	        	                CONSTRUCTEX();
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	                EXCEPTION->message      = (void *)"";
        	        	                EXCEPTION->decisionNum  = 52;
        	        	                EXCEPTION->state        = 0;


        	        	                goto ruledatatype_nameEx;
        	        	            }

        	        	            switch (alt52) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:319:100: identifier[T_UNKNOWN,0]
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2380);
        	        	        	        identifier178=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier178.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:319:126: identifier[T_UNKNOWN,0] charset_attr
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2385);
        	        	        	        identifier179=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier179.tree);
        	        	        	        FOLLOWPUSH(FOLLOW_charset_attr_in_datatype_name2388);
        	        	        	        charset_attr180=charset_attr(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, charset_attr180.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:320:4: r_varchar ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_r_varchar_in_datatype_name2398);
        	        r_varchar181=r_varchar(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_varchar181.tree);

        	        // OraclePLSQL.g:320:31: ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )?
        	        {
        	            int alt55=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt55=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt55) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:320:33: LPAREN INTEGER ( kBYTE | r_char )? RPAREN
        	        	    {
        	        	        LPAREN182 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2419); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN182_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN182));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN182_tree);
        	        	        }
        	        	        INTEGER183 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2421); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER183_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER183));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER183_tree);
        	        	        }

        	        	        // OraclePLSQL.g:320:48: ( kBYTE | r_char )?
        	        	        {
        	        	            int alt54=3;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	                case ID:
        	        	                	{
        	        	                		alt54=1;
        	        	                	}
        	        	                    break;
        	        	                case 140:
        	        	                	{
        	        	                		alt54=2;
        	        	                	}
        	        	                    break;
        	        	            }

        	        	            switch (alt54) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:320:50: kBYTE
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_kBYTE_in_datatype_name2425);
        	        	        	        kBYTE184=kBYTE(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kBYTE184.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:320:58: r_char
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_r_char_in_datatype_name2429);
        	        	        	        r_char185=r_char(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_char185.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }
        	        	        RPAREN186 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2434); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN186_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN186));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN186_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:320:78: ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	        {
        	            int alt57=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 158:
        	                	{
        	                		alt57=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt57) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:320:80: k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_character_in_datatype_name2441);
        	        	        k_character187=k_character(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_character187.tree);
        	        	        FOLLOWPUSH(FOLLOW_r_set_in_datatype_name2443);
        	        	        r_set188=r_set(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_set188.tree);

        	        	        // OraclePLSQL.g:320:98: ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	        {
        	        	            int alt56=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	            case ID:
        	        	            	{
        	        	            		switch ( LA(2) ) 
        	        	            		{
        	        	            		case EOF:
        	        	            		case SEMI:
        	        	            		case COMMA:
        	        	            		case RPAREN:
        	        	            		case ASSIGN:
        	        	            		case K_USING:
        	        	            		case 132:
        	        	            		case 149:
        	        	            		case 151:
        	        	            		case 152:
        	        	            		case 164:
        	        	            		case 168:
        	        	            		case 175:
        	        	            		case 178:
        	        	            		case 183:
        	        	            		case 209:
        	        	            		case 220:
        	        	            		case 222:
        	        	            		case 227:
        	        	            			{
        	        	            				alt56=1;
        	        	            			}
        	        	            		    break;
        	        	            		case PERCENT:
        	        	            			{
        	        	            				alt56=2;
        	        	            			}
        	        	            		    break;

        	        	            		default:
        	        	            		    if (BACKTRACKING>0)
        	        	            		    {
        	        	            		        FAILEDFLAG = ANTLR3_TRUE;
        	        	            		        return retval;
        	        	            		    }
        	        	            		    CONSTRUCTEX();
        	        	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	            		    EXCEPTION->message      = (void *)"";
        	        	            		    EXCEPTION->decisionNum  = 56;
        	        	            		    EXCEPTION->state        = 1;


        	        	            		    goto ruledatatype_nameEx;
        	        	            		}

        	        	            	}
        	        	                break;

        	        	            default:
        	        	                if (BACKTRACKING>0)
        	        	                {
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
        	        	                    return retval;
        	        	                }
        	        	                CONSTRUCTEX();
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	                EXCEPTION->message      = (void *)"";
        	        	                EXCEPTION->decisionNum  = 56;
        	        	                EXCEPTION->state        = 0;


        	        	                goto ruledatatype_nameEx;
        	        	            }

        	        	            switch (alt56) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:320:100: identifier[T_UNKNOWN,0]
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2447);
        	        	        	        identifier189=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier189.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:320:126: identifier[T_UNKNOWN,0] charset_attr
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2452);
        	        	        	        identifier190=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier190.tree);
        	        	        	        FOLLOWPUSH(FOLLOW_charset_attr_in_datatype_name2455);
        	        	        	        charset_attr191=charset_attr(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, charset_attr191.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:321:4: r_varchar2 ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )? ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_r_varchar2_in_datatype_name2465);
        	        r_varchar2192=r_varchar2(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_varchar2192.tree);

        	        // OraclePLSQL.g:321:31: ( LPAREN INTEGER ( kBYTE | r_char )? RPAREN )?
        	        {
        	            int alt59=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt59=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt59) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:321:33: LPAREN INTEGER ( kBYTE | r_char )? RPAREN
        	        	    {
        	        	        LPAREN193 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2485); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN193_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN193));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN193_tree);
        	        	        }
        	        	        INTEGER194 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2487); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER194_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER194));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER194_tree);
        	        	        }

        	        	        // OraclePLSQL.g:321:48: ( kBYTE | r_char )?
        	        	        {
        	        	            int alt58=3;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	                case ID:
        	        	                	{
        	        	                		alt58=1;
        	        	                	}
        	        	                    break;
        	        	                case 140:
        	        	                	{
        	        	                		alt58=2;
        	        	                	}
        	        	                    break;
        	        	            }

        	        	            switch (alt58) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:321:50: kBYTE
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_kBYTE_in_datatype_name2491);
        	        	        	        kBYTE195=kBYTE(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kBYTE195.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:321:58: r_char
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_r_char_in_datatype_name2495);
        	        	        	        r_char196=r_char(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_char196.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }
        	        	        RPAREN197 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2500); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN197_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN197));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN197_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:321:78: ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	        {
        	            int alt61=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 158:
        	                	{
        	                		alt61=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt61) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:321:80: k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_character_in_datatype_name2507);
        	        	        k_character198=k_character(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_character198.tree);
        	        	        FOLLOWPUSH(FOLLOW_r_set_in_datatype_name2509);
        	        	        r_set199=r_set(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_set199.tree);

        	        	        // OraclePLSQL.g:321:98: ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	        {
        	        	            int alt60=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	            case ID:
        	        	            	{
        	        	            		switch ( LA(2) ) 
        	        	            		{
        	        	            		case EOF:
        	        	            		case SEMI:
        	        	            		case COMMA:
        	        	            		case RPAREN:
        	        	            		case ASSIGN:
        	        	            		case K_USING:
        	        	            		case 132:
        	        	            		case 149:
        	        	            		case 151:
        	        	            		case 152:
        	        	            		case 164:
        	        	            		case 168:
        	        	            		case 175:
        	        	            		case 178:
        	        	            		case 183:
        	        	            		case 209:
        	        	            		case 220:
        	        	            		case 222:
        	        	            		case 227:
        	        	            			{
        	        	            				alt60=1;
        	        	            			}
        	        	            		    break;
        	        	            		case PERCENT:
        	        	            			{
        	        	            				alt60=2;
        	        	            			}
        	        	            		    break;

        	        	            		default:
        	        	            		    if (BACKTRACKING>0)
        	        	            		    {
        	        	            		        FAILEDFLAG = ANTLR3_TRUE;
        	        	            		        return retval;
        	        	            		    }
        	        	            		    CONSTRUCTEX();
        	        	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	            		    EXCEPTION->message      = (void *)"";
        	        	            		    EXCEPTION->decisionNum  = 60;
        	        	            		    EXCEPTION->state        = 1;


        	        	            		    goto ruledatatype_nameEx;
        	        	            		}

        	        	            	}
        	        	                break;

        	        	            default:
        	        	                if (BACKTRACKING>0)
        	        	                {
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
        	        	                    return retval;
        	        	                }
        	        	                CONSTRUCTEX();
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	                EXCEPTION->message      = (void *)"";
        	        	                EXCEPTION->decisionNum  = 60;
        	        	                EXCEPTION->state        = 0;


        	        	                goto ruledatatype_nameEx;
        	        	            }

        	        	            switch (alt60) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:321:100: identifier[T_UNKNOWN,0]
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2513);
        	        	        	        identifier200=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier200.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:321:126: identifier[T_UNKNOWN,0] charset_attr
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2518);
        	        	        	        identifier201=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier201.tree);
        	        	        	        FOLLOWPUSH(FOLLOW_charset_attr_in_datatype_name2521);
        	        	        	        charset_attr202=charset_attr(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, charset_attr202.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 9:
        	    // OraclePLSQL.g:322:4: k_character ( k_varying )? ( LPAREN INTEGER RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_character_in_datatype_name2531);
        	        k_character203=k_character(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_character203.tree);

        	        // OraclePLSQL.g:322:16: ( k_varying )?
        	        {
        	            int alt62=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 235:
        	                	{
        	                		alt62=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt62) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:322:18: k_varying
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_varying_in_datatype_name2535);
        	        	        k_varying204=k_varying(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_varying204.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:322:31: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt63=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt63=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt63) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:322:33: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN205 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2542); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN205_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN205));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN205_tree);
        	        	        }
        	        	        INTEGER206 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2544); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER206_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER206));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER206_tree);
        	        	        }
        	        	        RPAREN207 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2546); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN207_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN207));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN207_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 10:
        	    // OraclePLSQL.g:323:4: k_nchar ( k_varying )? ( LPAREN INTEGER RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_nchar_in_datatype_name2554);
        	        k_nchar208=k_nchar(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_nchar208.tree);

        	        // OraclePLSQL.g:323:16: ( k_varying )?
        	        {
        	            int alt64=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 235:
        	                	{
        	                		alt64=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt64) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:323:18: k_varying
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_varying_in_datatype_name2562);
        	        	        k_varying209=k_varying(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_varying209.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:323:31: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt65=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt65=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt65) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:323:33: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN210 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2569); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN210_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN210));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN210_tree);
        	        	        }
        	        	        INTEGER211 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2571); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER211_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER211));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER211_tree);
        	        	        }
        	        	        RPAREN212 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2573); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN212_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN212));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN212_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 11:
        	    // OraclePLSQL.g:326:4: k_national ( k_character | r_char ) ( k_varying )? ( LPAREN INTEGER RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_national_in_datatype_name2585);
        	        k_national213=k_national(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_national213.tree);

        	        // OraclePLSQL.g:326:16: ( k_character | r_char )
        	        {
        	            int alt66=2;
        	            switch ( LA(1) ) 
        	            {
        	            case 158:
        	            	{
        	            		alt66=1;
        	            	}
        	                break;
        	            case 140:
        	            	{
        	            		alt66=2;
        	            	}
        	                break;

        	            default:
        	                if (BACKTRACKING>0)
        	                {
        	                    FAILEDFLAG = ANTLR3_TRUE;
        	                    return retval;
        	                }
        	                CONSTRUCTEX();
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	                EXCEPTION->message      = (void *)"";
        	                EXCEPTION->decisionNum  = 66;
        	                EXCEPTION->state        = 0;


        	                goto ruledatatype_nameEx;
        	            }

        	            switch (alt66) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:326:18: k_character
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_character_in_datatype_name2590);
        	        	        k_character214=k_character(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_character214.tree);

        	        	    }
        	        	    break;
        	        	case 2:
        	        	    // OraclePLSQL.g:326:32: r_char
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_r_char_in_datatype_name2594);
        	        	        r_char215=r_char(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_char215.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:326:41: ( k_varying )?
        	        {
        	            int alt67=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 235:
        	                	{
        	                		alt67=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt67) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:326:43: k_varying
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_varying_in_datatype_name2600);
        	        	        k_varying216=k_varying(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_varying216.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:326:56: ( LPAREN INTEGER RPAREN )?
        	        {
        	            int alt68=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt68=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt68) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:326:58: LPAREN INTEGER RPAREN
        	        	    {
        	        	        LPAREN217 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype_name2607); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN217_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN217));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN217_tree);
        	        	        }
        	        	        INTEGER218 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER, &FOLLOW_INTEGER_in_datatype_name2609); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        INTEGER218_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INTEGER218));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, INTEGER218_tree);
        	        	        }
        	        	        RPAREN219 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype_name2611); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN219_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN219));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN219_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 12:
        	    // OraclePLSQL.g:330:4: k_clob ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_clob_in_datatype_name2625);
        	        k_clob220=k_clob(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatype_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_clob220.tree);

        	        // OraclePLSQL.g:330:11: ( k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr ) )?
        	        {
        	            int alt70=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 158:
        	                	{
        	                		alt70=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt70) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:330:13: k_character r_set ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_character_in_datatype_name2629);
        	        	        k_character221=k_character(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_character221.tree);
        	        	        FOLLOWPUSH(FOLLOW_r_set_in_datatype_name2631);
        	        	        r_set222=r_set(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatype_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_set222.tree);

        	        	        // OraclePLSQL.g:330:31: ( identifier[T_UNKNOWN,0] | identifier[T_UNKNOWN,0] charset_attr )
        	        	        {
        	        	            int alt69=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	            case ID:
        	        	            	{
        	        	            		switch ( LA(2) ) 
        	        	            		{
        	        	            		case EOF:
        	        	            		case SEMI:
        	        	            		case COMMA:
        	        	            		case RPAREN:
        	        	            		case ASSIGN:
        	        	            		case K_USING:
        	        	            		case 132:
        	        	            		case 149:
        	        	            		case 151:
        	        	            		case 152:
        	        	            		case 164:
        	        	            		case 168:
        	        	            		case 175:
        	        	            		case 178:
        	        	            		case 183:
        	        	            		case 209:
        	        	            		case 220:
        	        	            		case 222:
        	        	            		case 227:
        	        	            			{
        	        	            				alt69=1;
        	        	            			}
        	        	            		    break;
        	        	            		case PERCENT:
        	        	            			{
        	        	            				alt69=2;
        	        	            			}
        	        	            		    break;

        	        	            		default:
        	        	            		    if (BACKTRACKING>0)
        	        	            		    {
        	        	            		        FAILEDFLAG = ANTLR3_TRUE;
        	        	            		        return retval;
        	        	            		    }
        	        	            		    CONSTRUCTEX();
        	        	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	            		    EXCEPTION->message      = (void *)"";
        	        	            		    EXCEPTION->decisionNum  = 69;
        	        	            		    EXCEPTION->state        = 1;


        	        	            		    goto ruledatatype_nameEx;
        	        	            		}

        	        	            	}
        	        	                break;

        	        	            default:
        	        	                if (BACKTRACKING>0)
        	        	                {
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
        	        	                    return retval;
        	        	                }
        	        	                CONSTRUCTEX();
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	        	                EXCEPTION->message      = (void *)"";
        	        	                EXCEPTION->decisionNum  = 69;
        	        	                EXCEPTION->state        = 0;


        	        	                goto ruledatatype_nameEx;
        	        	            }

        	        	            switch (alt69) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:330:33: identifier[T_UNKNOWN,0]
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2635);
        	        	        	        identifier223=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier223.tree);

        	        	        	    }
        	        	        	    break;
        	        	        	case 2:
        	        	        	    // OraclePLSQL.g:330:59: identifier[T_UNKNOWN,0] charset_attr
        	        	        	    {
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype_name2640);
        	        	        	        identifier224=identifier(ctx, T_UNKNOWN, 0);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier224.tree);
        	        	        	        FOLLOWPUSH(FOLLOW_charset_attr_in_datatype_name2643);
        	        	        	        charset_attr225=charset_attr(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatype_nameEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, charset_attr225.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruledatatype_nameEx; /* Prevent compiler warnings */
    ruledatatype_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(27, datatype_name_StartIndex); }

    return retval;
}
/* $ANTLR end datatype_name */

/** 
 * $ANTLR start datatype
 * OraclePLSQL.g:337:1: datatype : ( ( k_ref )? ( schema_name DOT ) ( object_attribute_name DOT )+ identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] rowtype_attr | ( k_ref )? datatype_name | ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? | ( k_ref )? ( schema_name DOT ) ( identifier[T_OBJECT_NAME,T_USE] DOT )+ identifier[T_DATATYPE_NAME,T_USE] | ( k_ref )? ( schema_name DOT )? identifier[T_DATATYPE_NAME,T_USE] ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? );
 */
static OraclePLSQLParser_datatype_return
datatype(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_datatype_return retval;
    ANTLR3_UINT32 datatype_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT228;
    pANTLR3_COMMON_TOKEN    DOT230;
    pANTLR3_COMMON_TOKEN    DOT232;
    pANTLR3_COMMON_TOKEN    DOT237;
    pANTLR3_COMMON_TOKEN    DOT239;
    pANTLR3_COMMON_TOKEN    DOT244;
    pANTLR3_COMMON_TOKEN    DOT249;
    pANTLR3_COMMON_TOKEN    LPAREN257;
    pANTLR3_COMMON_TOKEN    COMMA259;
    pANTLR3_COMMON_TOKEN    RPAREN261;
    pANTLR3_COMMON_TOKEN    DOT264;
    pANTLR3_COMMON_TOKEN    DOT266;
    pANTLR3_COMMON_TOKEN    DOT270;
    pANTLR3_COMMON_TOKEN    LPAREN272;
    pANTLR3_COMMON_TOKEN    COMMA274;
    pANTLR3_COMMON_TOKEN    RPAREN276;
    OraclePLSQLParser_k_ref_return k_ref226;
    #undef	RETURN_TYPE_k_ref226
    #define	RETURN_TYPE_k_ref226 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_schema_name_return schema_name227;
    #undef	RETURN_TYPE_schema_name227
    #define	RETURN_TYPE_schema_name227 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_object_attribute_name_return object_attribute_name229;
    #undef	RETURN_TYPE_object_attribute_name229
    #define	RETURN_TYPE_object_attribute_name229 OraclePLSQLParser_object_attribute_name_return

    OraclePLSQLParser_identifier_return identifier231;
    #undef	RETURN_TYPE_identifier231
    #define	RETURN_TYPE_identifier231 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_column_name_return column_name233;
    #undef	RETURN_TYPE_column_name233
    #define	RETURN_TYPE_column_name233 OraclePLSQLParser_column_name_return

    OraclePLSQLParser_type_attr_return type_attr234;
    #undef	RETURN_TYPE_type_attr234
    #define	RETURN_TYPE_type_attr234 OraclePLSQLParser_type_attr_return

    OraclePLSQLParser_k_ref_return k_ref235;
    #undef	RETURN_TYPE_k_ref235
    #define	RETURN_TYPE_k_ref235 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_schema_name_return schema_name236;
    #undef	RETURN_TYPE_schema_name236
    #define	RETURN_TYPE_schema_name236 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_identifier_return identifier238;
    #undef	RETURN_TYPE_identifier238
    #define	RETURN_TYPE_identifier238 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_column_name_return column_name240;
    #undef	RETURN_TYPE_column_name240
    #define	RETURN_TYPE_column_name240 OraclePLSQLParser_column_name_return

    OraclePLSQLParser_type_attr_return type_attr241;
    #undef	RETURN_TYPE_type_attr241
    #define	RETURN_TYPE_type_attr241 OraclePLSQLParser_type_attr_return

    OraclePLSQLParser_k_ref_return k_ref242;
    #undef	RETURN_TYPE_k_ref242
    #define	RETURN_TYPE_k_ref242 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_schema_name_return schema_name243;
    #undef	RETURN_TYPE_schema_name243
    #define	RETURN_TYPE_schema_name243 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_variable_name_ex_return variable_name_ex245;
    #undef	RETURN_TYPE_variable_name_ex245
    #define	RETURN_TYPE_variable_name_ex245 OraclePLSQLParser_variable_name_ex_return

    OraclePLSQLParser_type_attr_return type_attr246;
    #undef	RETURN_TYPE_type_attr246
    #define	RETURN_TYPE_type_attr246 OraclePLSQLParser_type_attr_return

    OraclePLSQLParser_k_ref_return k_ref247;
    #undef	RETURN_TYPE_k_ref247
    #define	RETURN_TYPE_k_ref247 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_schema_name_return schema_name248;
    #undef	RETURN_TYPE_schema_name248
    #define	RETURN_TYPE_schema_name248 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_identifier_return identifier250;
    #undef	RETURN_TYPE_identifier250
    #define	RETURN_TYPE_identifier250 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_rowtype_attr_return rowtype_attr251;
    #undef	RETURN_TYPE_rowtype_attr251
    #define	RETURN_TYPE_rowtype_attr251 OraclePLSQLParser_rowtype_attr_return

    OraclePLSQLParser_k_ref_return k_ref252;
    #undef	RETURN_TYPE_k_ref252
    #define	RETURN_TYPE_k_ref252 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_datatype_name_return datatype_name253;
    #undef	RETURN_TYPE_datatype_name253
    #define	RETURN_TYPE_datatype_name253 OraclePLSQLParser_datatype_name_return

    OraclePLSQLParser_k_ref_return k_ref254;
    #undef	RETURN_TYPE_k_ref254
    #define	RETURN_TYPE_k_ref254 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_k_date_return k_date255;
    #undef	RETURN_TYPE_k_date255
    #define	RETURN_TYPE_k_date255 OraclePLSQLParser_k_date_return

    OraclePLSQLParser_k_timestamp_return k_timestamp256;
    #undef	RETURN_TYPE_k_timestamp256
    #define	RETURN_TYPE_k_timestamp256 OraclePLSQLParser_k_timestamp_return

    OraclePLSQLParser_numeric_literal_return numeric_literal258;
    #undef	RETURN_TYPE_numeric_literal258
    #define	RETURN_TYPE_numeric_literal258 OraclePLSQLParser_numeric_literal_return

    OraclePLSQLParser_numeric_literal_return numeric_literal260;
    #undef	RETURN_TYPE_numeric_literal260
    #define	RETURN_TYPE_numeric_literal260 OraclePLSQLParser_numeric_literal_return

    OraclePLSQLParser_k_ref_return k_ref262;
    #undef	RETURN_TYPE_k_ref262
    #define	RETURN_TYPE_k_ref262 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_schema_name_return schema_name263;
    #undef	RETURN_TYPE_schema_name263
    #define	RETURN_TYPE_schema_name263 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_identifier_return identifier265;
    #undef	RETURN_TYPE_identifier265
    #define	RETURN_TYPE_identifier265 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier267;
    #undef	RETURN_TYPE_identifier267
    #define	RETURN_TYPE_identifier267 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_k_ref_return k_ref268;
    #undef	RETURN_TYPE_k_ref268
    #define	RETURN_TYPE_k_ref268 OraclePLSQLParser_k_ref_return

    OraclePLSQLParser_schema_name_return schema_name269;
    #undef	RETURN_TYPE_schema_name269
    #define	RETURN_TYPE_schema_name269 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_identifier_return identifier271;
    #undef	RETURN_TYPE_identifier271
    #define	RETURN_TYPE_identifier271 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_numeric_literal_return numeric_literal273;
    #undef	RETURN_TYPE_numeric_literal273
    #define	RETURN_TYPE_numeric_literal273 OraclePLSQLParser_numeric_literal_return

    OraclePLSQLParser_numeric_literal_return numeric_literal275;
    #undef	RETURN_TYPE_numeric_literal275
    #define	RETURN_TYPE_numeric_literal275 OraclePLSQLParser_numeric_literal_return

    pANTLR3_BASE_TREE DOT228_tree;
    pANTLR3_BASE_TREE DOT230_tree;
    pANTLR3_BASE_TREE DOT232_tree;
    pANTLR3_BASE_TREE DOT237_tree;
    pANTLR3_BASE_TREE DOT239_tree;
    pANTLR3_BASE_TREE DOT244_tree;
    pANTLR3_BASE_TREE DOT249_tree;
    pANTLR3_BASE_TREE LPAREN257_tree;
    pANTLR3_BASE_TREE COMMA259_tree;
    pANTLR3_BASE_TREE RPAREN261_tree;
    pANTLR3_BASE_TREE DOT264_tree;
    pANTLR3_BASE_TREE DOT266_tree;
    pANTLR3_BASE_TREE DOT270_tree;
    pANTLR3_BASE_TREE LPAREN272_tree;
    pANTLR3_BASE_TREE COMMA274_tree;
    pANTLR3_BASE_TREE RPAREN276_tree;

    /* Initialize rule variables
     */
    datatype_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(28)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT228       = NULL;
    DOT230       = NULL;
    DOT232       = NULL;
    DOT237       = NULL;
    DOT239       = NULL;
    DOT244       = NULL;
    DOT249       = NULL;
    LPAREN257       = NULL;
    COMMA259       = NULL;
    RPAREN261       = NULL;
    DOT264       = NULL;
    DOT266       = NULL;
    DOT270       = NULL;
    LPAREN272       = NULL;
    COMMA274       = NULL;
    RPAREN276       = NULL;
    k_ref226.tree = NULL;
    schema_name227.tree = NULL;
    object_attribute_name229.tree = NULL;
    identifier231.tree = NULL;
    column_name233.tree = NULL;
    type_attr234.tree = NULL;
    k_ref235.tree = NULL;
    schema_name236.tree = NULL;
    identifier238.tree = NULL;
    column_name240.tree = NULL;
    type_attr241.tree = NULL;
    k_ref242.tree = NULL;
    schema_name243.tree = NULL;
    variable_name_ex245.tree = NULL;
    type_attr246.tree = NULL;
    k_ref247.tree = NULL;
    schema_name248.tree = NULL;
    identifier250.tree = NULL;
    rowtype_attr251.tree = NULL;
    k_ref252.tree = NULL;
    datatype_name253.tree = NULL;
    k_ref254.tree = NULL;
    k_date255.tree = NULL;
    k_timestamp256.tree = NULL;
    numeric_literal258.tree = NULL;
    numeric_literal260.tree = NULL;
    k_ref262.tree = NULL;
    schema_name263.tree = NULL;
    identifier265.tree = NULL;
    identifier267.tree = NULL;
    k_ref268.tree = NULL;
    schema_name269.tree = NULL;
    identifier271.tree = NULL;
    numeric_literal273.tree = NULL;
    numeric_literal275.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT228_tree   = NULL;
    DOT230_tree   = NULL;
    DOT232_tree   = NULL;
    DOT237_tree   = NULL;
    DOT239_tree   = NULL;
    DOT244_tree   = NULL;
    DOT249_tree   = NULL;
    LPAREN257_tree   = NULL;
    COMMA259_tree   = NULL;
    RPAREN261_tree   = NULL;
    DOT264_tree   = NULL;
    DOT266_tree   = NULL;
    DOT270_tree   = NULL;
    LPAREN272_tree   = NULL;
    COMMA274_tree   = NULL;
    RPAREN276_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:338:5: ( ( k_ref )? ( schema_name DOT ) ( object_attribute_name DOT )+ identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr | ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] rowtype_attr | ( k_ref )? datatype_name | ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? | ( k_ref )? ( schema_name DOT ) ( identifier[T_OBJECT_NAME,T_USE] DOT )+ identifier[T_DATATYPE_NAME,T_USE] | ( k_ref )? ( schema_name DOT )? identifier[T_DATATYPE_NAME,T_USE] ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? )
            
            ANTLR3_UINT32 alt91;

            alt91=8;

            alt91 = cdfa91.predict(ctx, RECOGNIZER, ISTREAM, &cdfa91);
            if  (HASEXCEPTION())
            {
                goto ruledatatypeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            switch (alt91) 
            {
        	case 1:
        	    // OraclePLSQL.g:338:7: ( k_ref )? ( schema_name DOT ) ( object_attribute_name DOT )+ identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:338:7: ( k_ref )?
        	        {
        	            int alt72=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt72=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt72) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:338:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2675);
        	        	        k_ref226=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref226.tree);

        	        	    }
        	        	    break;

        	            }
        	        }
        	        // OraclePLSQL.g:338:18: ( schema_name DOT )
        	        // OraclePLSQL.g:338:19: schema_name DOT
        	        {
        	            FOLLOWPUSH(FOLLOW_schema_name_in_datatype2681);
        	            schema_name227=schema_name(ctx);

        	            FOLLOWPOP();
        	            if  (HASEXCEPTION())
        	            {
        	                goto ruledatatypeEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return retval;
        	            }
        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name227.tree);
        	            DOT228 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2683); 
        	            if  (HASEXCEPTION())
        	            {
        	                goto ruledatatypeEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return retval;
        	            }
        	            if ( BACKTRACKING==0 ) {
        	            DOT228_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT228));
        	            ADAPTOR->addChild(ADAPTOR, root_0, DOT228_tree);
        	            }

        	        }

        	        // OraclePLSQL.g:338:36: ( object_attribute_name DOT )+
        	        {
        	            int cnt73=0;

        	            for (;;)
        	            {
        	                int alt73=2;
        	        	switch ( LA(1) ) 
        	        	{
        	        	case ID:
        	        		{
        	        			switch ( LA(2) ) 
        	        			{
        	        			case DOT:
        	        				{
        	        					switch ( LA(3) ) 
        	        					{
        	        					case ID:
        	        						{
        	        							switch ( LA(4) ) 
        	        							{
        	        							case DOT:
        	        								{
        	        									alt73=1;
        	        								}
        	        							    break;

        	        							}

        	        						}
        	        					    break;

        	        					}

        	        				}
        	        			    break;

        	        			}

        	        		}
        	        	    break;

        	        	}

        	        	switch (alt73) 
        	        	{
        	        	    case 1:
        	        	        // OraclePLSQL.g:338:37: object_attribute_name DOT
        	        	        {
        	        	            FOLLOWPUSH(FOLLOW_object_attribute_name_in_datatype2687);
        	        	            object_attribute_name229=object_attribute_name(ctx);

        	        	            FOLLOWPOP();
        	        	            if  (HASEXCEPTION())
        	        	            {
        	        	                goto ruledatatypeEx;
        	        	            }
        	        	            if (HASFAILED())
        	        	            {
        	        	                return retval;
        	        	            }
        	        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, object_attribute_name229.tree);
        	        	            DOT230 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2689); 
        	        	            if  (HASEXCEPTION())
        	        	            {
        	        	                goto ruledatatypeEx;
        	        	            }
        	        	            if (HASFAILED())
        	        	            {
        	        	                return retval;
        	        	            }
        	        	            if ( BACKTRACKING==0 ) {
        	        	            DOT230_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT230));
        	        	            ADAPTOR->addChild(ADAPTOR, root_0, DOT230_tree);
        	        	            }

        	        	        }
        	        	        break;

        	        	    default:
        	        	    
        	        		if ( cnt73 >= 1 )
        	        		{
        	        		    goto loop73;
        	        		}
        	        		if (BACKTRACKING>0)
        	        		{
        	        		    FAILEDFLAG = ANTLR3_TRUE;
        	        		    return retval;
        	        		}
        	        		/* mismatchedSetEx()
        	        		 */
        	        		CONSTRUCTEX();
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


        	        		goto ruledatatypeEx;
        	        	}
        	        	cnt73++;
        	            }
        	            loop73: ;	/* Jump to here if this rule does not match */
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype2693);
        	        identifier231=identifier(ctx, T_TABLE_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier231.tree);
        	        DOT232 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2696); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        DOT232_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT232));
        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT232_tree);
        	        }
        	        FOLLOWPUSH(FOLLOW_column_name_in_datatype2698);
        	        column_name233=column_name(ctx, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, column_name233.tree);
        	        FOLLOWPUSH(FOLLOW_type_attr_in_datatype2701);
        	        type_attr234=type_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, type_attr234.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:339:4: ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:339:4: ( k_ref )?
        	        {
        	            int alt74=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt74=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt74) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:339:6: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2708);
        	        	        k_ref235=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref235.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:339:15: ( schema_name DOT )?
        	        {
        	            int alt75=2;
        	            switch ( LA(1) ) 
        	            {
        	                case ID:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case DOT:
        	                		    	{
        	                		    		switch ( LA(3) ) 
        	                		    		{
        	                		    		    case ID:
        	                		    		    	{
        	                		    		    		switch ( LA(4) ) 
        	                		    		    		{
        	                		    		    		    case DOT:
        	                		    		    		    	{
        	                		    		    		    		alt75=1;
        	                		    		    		    	}
        	                		    		    		        break;
        	                		    		    		}

        	                		    		    	}
        	                		    		        break;
        	                		    		}

        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt75) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:339:16: schema_name DOT
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_schema_name_in_datatype2714);
        	        	        schema_name236=schema_name(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name236.tree);
        	        	        DOT237 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2716); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        DOT237_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT237));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT237_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype2720);
        	        identifier238=identifier(ctx, T_TABLE_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier238.tree);
        	        DOT239 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2723); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        DOT239_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT239));
        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT239_tree);
        	        }
        	        FOLLOWPUSH(FOLLOW_column_name_in_datatype2725);
        	        column_name240=column_name(ctx, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, column_name240.tree);
        	        FOLLOWPUSH(FOLLOW_type_attr_in_datatype2728);
        	        type_attr241=type_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, type_attr241.tree);

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:340:7: ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:340:7: ( k_ref )?
        	        {
        	            int alt76=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt76=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt76) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:340:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2738);
        	        	        k_ref242=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref242.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:340:18: ( schema_name DOT )?
        	        {
        	            int alt77=2;
        	            switch ( LA(1) ) 
        	            {
        	                case ID:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case DOT:
        	                		    	{
        	                		    		alt77=1;
        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt77) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:340:19: schema_name DOT
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_schema_name_in_datatype2744);
        	        	        schema_name243=schema_name(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name243.tree);
        	        	        DOT244 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2746); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        DOT244_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT244));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT244_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_variable_name_ex_in_datatype2750);
        	        variable_name_ex245=variable_name_ex(ctx, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_name_ex245.tree);
        	        FOLLOWPUSH(FOLLOW_type_attr_in_datatype2753);
        	        type_attr246=type_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, type_attr246.tree);

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:341:7: ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] rowtype_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:341:7: ( k_ref )?
        	        {
        	            int alt78=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt78=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt78) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:341:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2763);
        	        	        k_ref247=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref247.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:341:18: ( schema_name DOT )?
        	        {
        	            int alt79=2;
        	            switch ( LA(1) ) 
        	            {
        	                case ID:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case DOT:
        	                		    	{
        	                		    		alt79=1;
        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt79) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:341:19: schema_name DOT
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_schema_name_in_datatype2769);
        	        	        schema_name248=schema_name(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name248.tree);
        	        	        DOT249 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2771); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        DOT249_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT249));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT249_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype2775);
        	        identifier250=identifier(ctx, T_TABLE_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier250.tree);
        	        FOLLOWPUSH(FOLLOW_rowtype_attr_in_datatype2778);
        	        rowtype_attr251=rowtype_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, rowtype_attr251.tree);

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:342:7: ( k_ref )? datatype_name
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:342:7: ( k_ref )?
        	        {
        	            int alt80=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt80=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt80) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:342:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2796);
        	        	        k_ref252=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref252.tree);

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_datatype_name_in_datatype2801);
        	        datatype_name253=datatype_name(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype_name253.tree);

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:343:7: ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:343:7: ( k_ref )?
        	        {
        	            int alt81=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt81=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt81) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:343:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2811);
        	        	        k_ref254=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref254.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:343:18: ( k_date | k_timestamp )
        	        {
        	            int alt82=2;
        	            switch ( LA(1) ) 
        	            {
        	            case 163:
        	            	{
        	            		alt82=1;
        	            	}
        	                break;
        	            case 128:
        	            	{
        	            		alt82=2;
        	            	}
        	                break;

        	            default:
        	                if (BACKTRACKING>0)
        	                {
        	                    FAILEDFLAG = ANTLR3_TRUE;
        	                    return retval;
        	                }
        	                CONSTRUCTEX();
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	                EXCEPTION->message      = (void *)"";
        	                EXCEPTION->decisionNum  = 82;
        	                EXCEPTION->state        = 0;


        	                goto ruledatatypeEx;
        	            }

        	            switch (alt82) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:343:19: k_date
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_date_in_datatype2817);
        	        	        k_date255=k_date(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_date255.tree);

        	        	    }
        	        	    break;
        	        	case 2:
        	        	    // OraclePLSQL.g:343:28: k_timestamp
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_timestamp_in_datatype2821);
        	        	        k_timestamp256=k_timestamp(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_timestamp256.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:343:41: ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )?
        	        {
        	            int alt84=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt84=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt84) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:343:43: LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN
        	        	    {
        	        	        LPAREN257 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype2826); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN257_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN257));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN257_tree);
        	        	        }
        	        	        FOLLOWPUSH(FOLLOW_numeric_literal_in_datatype2828);
        	        	        numeric_literal258=numeric_literal(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_literal258.tree);

        	        	        // OraclePLSQL.g:343:66: ( COMMA numeric_literal )?
        	        	        {
        	        	            int alt83=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	                case COMMA:
        	        	                	{
        	        	                		alt83=1;
        	        	                	}
        	        	                    break;
        	        	            }

        	        	            switch (alt83) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:343:68: COMMA numeric_literal
        	        	        	    {
        	        	        	        COMMA259 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_datatype2832); 
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatypeEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) {
        	        	        	        COMMA259_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA259));
        	        	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA259_tree);
        	        	        	        }
        	        	        	        FOLLOWPUSH(FOLLOW_numeric_literal_in_datatype2834);
        	        	        	        numeric_literal260=numeric_literal(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatypeEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_literal260.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }
        	        	        RPAREN261 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype2839); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN261_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN261));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN261_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:344:7: ( k_ref )? ( schema_name DOT ) ( identifier[T_OBJECT_NAME,T_USE] DOT )+ identifier[T_DATATYPE_NAME,T_USE]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:344:7: ( k_ref )?
        	        {
        	            int alt85=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt85=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt85) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:344:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2852);
        	        	        k_ref262=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref262.tree);

        	        	    }
        	        	    break;

        	            }
        	        }
        	        // OraclePLSQL.g:344:18: ( schema_name DOT )
        	        // OraclePLSQL.g:344:19: schema_name DOT
        	        {
        	            FOLLOWPUSH(FOLLOW_schema_name_in_datatype2858);
        	            schema_name263=schema_name(ctx);

        	            FOLLOWPOP();
        	            if  (HASEXCEPTION())
        	            {
        	                goto ruledatatypeEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return retval;
        	            }
        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name263.tree);
        	            DOT264 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2860); 
        	            if  (HASEXCEPTION())
        	            {
        	                goto ruledatatypeEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return retval;
        	            }
        	            if ( BACKTRACKING==0 ) {
        	            DOT264_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT264));
        	            ADAPTOR->addChild(ADAPTOR, root_0, DOT264_tree);
        	            }

        	        }

        	        // OraclePLSQL.g:344:36: ( identifier[T_OBJECT_NAME,T_USE] DOT )+
        	        {
        	            int cnt86=0;

        	            for (;;)
        	            {
        	                int alt86=2;
        	        	switch ( LA(1) ) 
        	        	{
        	        	case ID:
        	        		{
        	        			switch ( LA(2) ) 
        	        			{
        	        			case DOT:
        	        				{
        	        					alt86=1;
        	        				}
        	        			    break;

        	        			}

        	        		}
        	        	    break;

        	        	}

        	        	switch (alt86) 
        	        	{
        	        	    case 1:
        	        	        // OraclePLSQL.g:344:37: identifier[T_OBJECT_NAME,T_USE] DOT
        	        	        {
        	        	            FOLLOWPUSH(FOLLOW_identifier_in_datatype2864);
        	        	            identifier265=identifier(ctx, T_OBJECT_NAME, T_USE);

        	        	            FOLLOWPOP();
        	        	            if  (HASEXCEPTION())
        	        	            {
        	        	                goto ruledatatypeEx;
        	        	            }
        	        	            if (HASFAILED())
        	        	            {
        	        	                return retval;
        	        	            }
        	        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier265.tree);
        	        	            DOT266 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2867); 
        	        	            if  (HASEXCEPTION())
        	        	            {
        	        	                goto ruledatatypeEx;
        	        	            }
        	        	            if (HASFAILED())
        	        	            {
        	        	                return retval;
        	        	            }
        	        	            if ( BACKTRACKING==0 ) {
        	        	            DOT266_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT266));
        	        	            ADAPTOR->addChild(ADAPTOR, root_0, DOT266_tree);
        	        	            }

        	        	        }
        	        	        break;

        	        	    default:
        	        	    
        	        		if ( cnt86 >= 1 )
        	        		{
        	        		    goto loop86;
        	        		}
        	        		if (BACKTRACKING>0)
        	        		{
        	        		    FAILEDFLAG = ANTLR3_TRUE;
        	        		    return retval;
        	        		}
        	        		/* mismatchedSetEx()
        	        		 */
        	        		CONSTRUCTEX();
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


        	        		goto ruledatatypeEx;
        	        	}
        	        	cnt86++;
        	            }
        	            loop86: ;	/* Jump to here if this rule does not match */
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype2871);
        	        identifier267=identifier(ctx, T_DATATYPE_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier267.tree);

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:345:7: ( k_ref )? ( schema_name DOT )? identifier[T_DATATYPE_NAME,T_USE] ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:345:7: ( k_ref )?
        	        {
        	            int alt87=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 226:
        	                	{
        	                		alt87=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt87) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:345:9: k_ref
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_ref_in_datatype2882);
        	        	        k_ref268=k_ref(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_ref268.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	        // OraclePLSQL.g:345:18: ( schema_name DOT )?
        	        {
        	            int alt88=2;
        	            switch ( LA(1) ) 
        	            {
        	                case ID:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case DOT:
        	                		    	{
        	                		    		alt88=1;
        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt88) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:345:19: schema_name DOT
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_schema_name_in_datatype2888);
        	        	        schema_name269=schema_name(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name269.tree);
        	        	        DOT270 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_datatype2890); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        DOT270_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT270));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT270_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_datatype2894);
        	        identifier271=identifier(ctx, T_DATATYPE_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledatatypeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier271.tree);

        	        // OraclePLSQL.g:345:71: ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )?
        	        {
        	            int alt90=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		alt90=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt90) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:345:73: LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN
        	        	    {
        	        	        LPAREN272 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_datatype2899); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN272_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN272));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN272_tree);
        	        	        }
        	        	        FOLLOWPUSH(FOLLOW_numeric_literal_in_datatype2901);
        	        	        numeric_literal273=numeric_literal(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_literal273.tree);

        	        	        // OraclePLSQL.g:345:96: ( COMMA numeric_literal )?
        	        	        {
        	        	            int alt89=2;
        	        	            switch ( LA(1) ) 
        	        	            {
        	        	                case COMMA:
        	        	                	{
        	        	                		alt89=1;
        	        	                	}
        	        	                    break;
        	        	            }

        	        	            switch (alt89) 
        	        	            {
        	        	        	case 1:
        	        	        	    // OraclePLSQL.g:345:98: COMMA numeric_literal
        	        	        	    {
        	        	        	        COMMA274 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_datatype2905); 
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatypeEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) {
        	        	        	        COMMA274_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA274));
        	        	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA274_tree);
        	        	        	        }
        	        	        	        FOLLOWPUSH(FOLLOW_numeric_literal_in_datatype2907);
        	        	        	        numeric_literal275=numeric_literal(ctx);

        	        	        	        FOLLOWPOP();
        	        	        	        if  (HASEXCEPTION())
        	        	        	        {
        	        	        	            goto ruledatatypeEx;
        	        	        	        }
        	        	        	        if (HASFAILED())
        	        	        	        {
        	        	        	            return retval;
        	        	        	        }
        	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_literal275.tree);

        	        	        	    }
        	        	        	    break;

        	        	            }
        	        	        }
        	        	        RPAREN276 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_datatype2912); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruledatatypeEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN276_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN276));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN276_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruledatatypeEx; /* Prevent compiler warnings */
    ruledatatypeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(28, datatype_StartIndex); }

    return retval;
}
/* $ANTLR end datatype */

/** 
 * $ANTLR start function_declaration_or_definition
 * OraclePLSQL.g:348:1: function_declaration_or_definition : function_declaration_or_definition_sub -> ^( 't_function_decl' function_declaration_or_definition_sub ) ;
 */
static OraclePLSQLParser_function_declaration_or_definition_return
function_declaration_or_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_function_declaration_or_definition_return retval;
    ANTLR3_UINT32 function_declaration_or_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_function_declaration_or_definition_sub_return function_declaration_or_definition_sub277;
    #undef	RETURN_TYPE_function_declaration_or_definition_sub277
    #define	RETURN_TYPE_function_declaration_or_definition_sub277 OraclePLSQLParser_function_declaration_or_definition_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_function_declaration_or_definition_sub;
    /* Initialize rule variables
     */
    function_declaration_or_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(29)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    function_declaration_or_definition_sub277.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_function_declaration_or_definition_sub   = NULL;
    #define CREATE_stream_function_declaration_or_definition_sub  if (stream_function_declaration_or_definition_sub == NULL) {stream_function_declaration_or_definition_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule function_declaration_or_definition_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:348:36: ( function_declaration_or_definition_sub -> ^( 't_function_decl' function_declaration_or_definition_sub ) )
        // OraclePLSQL.g:348:38: function_declaration_or_definition_sub
        {
            FOLLOWPUSH(FOLLOW_function_declaration_or_definition_sub_in_function_declaration_or_definition2928);
            function_declaration_or_definition_sub277=function_declaration_or_definition_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefunction_declaration_or_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_function_declaration_or_definition_sub; stream_function_declaration_or_definition_sub->add(stream_function_declaration_or_definition_sub, function_declaration_or_definition_sub277.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_FUNCTION_DECL, function_declaration_or_definition_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 348:77: -> ^( 't_function_decl' function_declaration_or_definition_sub )
            	{
            	    // OraclePLSQL.g:348:80: ^( 't_function_decl' function_declaration_or_definition_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_FUNCTION_DECL, (pANTLR3_UINT8)"T_FUNCTION_DECL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_function_declaration_or_definition_sub == NULL ? NULL : stream_function_declaration_or_definition_sub->nextTree(stream_function_declaration_or_definition_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefunction_declaration_or_definitionEx; /* Prevent compiler warnings */
    rulefunction_declaration_or_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_function_declaration_or_definition_sub != NULL) stream_function_declaration_or_definition_sub->free(stream_function_declaration_or_definition_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(29, function_declaration_or_definition_StartIndex); }

    return retval;
}
/* $ANTLR end function_declaration_or_definition */

/** 
 * $ANTLR start function_declaration_or_definition_sub
 * OraclePLSQL.g:349:1: function_declaration_or_definition_sub : function_heading ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache )* ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )? ;
 */
static OraclePLSQLParser_function_declaration_or_definition_sub_return
function_declaration_or_definition_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_function_declaration_or_definition_sub_return retval;
    ANTLR3_UINT32 function_declaration_or_definition_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN282;
    pANTLR3_COMMON_TOKEN    set283;
    pANTLR3_COMMON_TOKEN    RPAREN284;
    pANTLR3_COMMON_TOKEN    ID292;
    OraclePLSQLParser_function_heading_return function_heading278;
    #undef	RETURN_TYPE_function_heading278
    #define	RETURN_TYPE_function_heading278 OraclePLSQLParser_function_heading_return

    OraclePLSQLParser_k_deterministic_return k_deterministic279;
    #undef	RETURN_TYPE_k_deterministic279
    #define	RETURN_TYPE_k_deterministic279 OraclePLSQLParser_k_deterministic_return

    OraclePLSQLParser_k_pipelined_return k_pipelined280;
    #undef	RETURN_TYPE_k_pipelined280
    #define	RETURN_TYPE_k_pipelined280 OraclePLSQLParser_k_pipelined_return

    OraclePLSQLParser_k_parallel_enable_return k_parallel_enable281;
    #undef	RETURN_TYPE_k_parallel_enable281
    #define	RETURN_TYPE_k_parallel_enable281 OraclePLSQLParser_k_parallel_enable_return

    OraclePLSQLParser_k_result_cache_return k_result_cache285;
    #undef	RETURN_TYPE_k_result_cache285
    #define	RETURN_TYPE_k_result_cache285 OraclePLSQLParser_k_result_cache_return

    OraclePLSQLParser_k_is_return k_is286;
    #undef	RETURN_TYPE_k_is286
    #define	RETURN_TYPE_k_is286 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as287;
    #undef	RETURN_TYPE_k_as287
    #define	RETURN_TYPE_k_as287 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_declare_section_return declare_section288;
    #undef	RETURN_TYPE_declare_section288
    #define	RETURN_TYPE_declare_section288 OraclePLSQLParser_declare_section_return

    OraclePLSQLParser_body_return body289;
    #undef	RETURN_TYPE_body289
    #define	RETURN_TYPE_body289 OraclePLSQLParser_body_return

    OraclePLSQLParser_exception_handler_return exception_handler290;
    #undef	RETURN_TYPE_exception_handler290
    #define	RETURN_TYPE_exception_handler290 OraclePLSQLParser_exception_handler_return

    OraclePLSQLParser_k_end_return k_end291;
    #undef	RETURN_TYPE_k_end291
    #define	RETURN_TYPE_k_end291 OraclePLSQLParser_k_end_return

    pANTLR3_BASE_TREE LPAREN282_tree;
    pANTLR3_BASE_TREE set283_tree;
    pANTLR3_BASE_TREE RPAREN284_tree;
    pANTLR3_BASE_TREE ID292_tree;

    /* Initialize rule variables
     */
    function_declaration_or_definition_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(30)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN282       = NULL;
    set283       = NULL;
    RPAREN284       = NULL;
    ID292       = NULL;
    function_heading278.tree = NULL;
    k_deterministic279.tree = NULL;
    k_pipelined280.tree = NULL;
    k_parallel_enable281.tree = NULL;
    k_result_cache285.tree = NULL;
    k_is286.tree = NULL;
    k_as287.tree = NULL;
    declare_section288.tree = NULL;
    body289.tree = NULL;
    exception_handler290.tree = NULL;
    k_end291.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN282_tree   = NULL;
    set283_tree   = NULL;
    RPAREN284_tree   = NULL;
    ID292_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:349:40: ( function_heading ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache )* ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )? )
        // OraclePLSQL.g:350:9: function_heading ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache )* ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_function_heading_in_function_declaration_or_definition_sub2951);
            function_heading278=function_heading(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefunction_declaration_or_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, function_heading278.tree);

            // OraclePLSQL.g:351:9: ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache )*

            for (;;)
            {
                int alt94=5;
                switch ( LA(1) ) 
                {
                case 209:
                	{
                		alt94=1;
                	}
                    break;
                case 222:
                	{
                		alt94=2;
                	}
                    break;
                case 220:
                	{
                		alt94=3;
                	}
                    break;
                case 227:
                	{
                		alt94=4;
                	}
                    break;

                }

                switch (alt94) 
                {
            	case 1:
            	    // OraclePLSQL.g:351:11: k_deterministic
            	    {
            	        FOLLOWPUSH(FOLLOW_k_deterministic_in_function_declaration_or_definition_sub2963);
            	        k_deterministic279=k_deterministic(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_deterministic279.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:351:29: k_pipelined
            	    {
            	        FOLLOWPUSH(FOLLOW_k_pipelined_in_function_declaration_or_definition_sub2967);
            	        k_pipelined280=k_pipelined(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_pipelined280.tree);

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:351:43: k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_parallel_enable_in_function_declaration_or_definition_sub2971);
            	        k_parallel_enable281=k_parallel_enable(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_parallel_enable281.tree);

            	        // OraclePLSQL.g:351:61: ( LPAREN (~ ( RPAREN ) )+ RPAREN )?
            	        {
            	            int alt93=2;
            	            switch ( LA(1) ) 
            	            {
            	                case LPAREN:
            	                	{
            	                		alt93=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt93) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:351:62: LPAREN (~ ( RPAREN ) )+ RPAREN
            	        	    {
            	        	        LPAREN282 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_function_declaration_or_definition_sub2974); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        LPAREN282_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN282));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN282_tree);
            	        	        }
            	        	        // OraclePLSQL.g:351:69: (~ ( RPAREN ) )+
            	        	        {
            	        	            int cnt92=0;

            	        	            for (;;)
            	        	            {
            	        	                int alt92=2;
            	        	        	switch ( LA(1) ) 
            	        	        	{
            	        	        	case T_UNKNOWN:
            	        	        	case T_RESERVED:
            	        	        	case T_SCHEMA_NAME:
            	        	        	case T_TRIGGER_NAME:
            	        	        	case T_PACKAGE_NAME:
            	        	        	case T_FUNCTION_NAME:
            	        	        	case T_PROCEDURE_NAME:
            	        	        	case T_PARAMETER_NAME:
            	        	        	case T_BINDVAR_NAME:
            	        	        	case T_VARIABLE_NAME:
            	        	        	case T_DATATYPE_NAME:
            	        	        	case T_CURSOR_NAME:
            	        	        	case T_TABLE_NAME:
            	        	        	case T_COLUMN_NAME:
            	        	        	case T_OBJECT_NAME:
            	        	        	case T_LABEL_NAME:
            	        	        	case T_EXCEPTION_NAME:
            	        	        	case T_DBLINK_NAME:
            	        	        	case T_DECL:
            	        	        	case T_USE:
            	        	        	case T_USEL:
            	        	        	case T_TYPE_DECL:
            	        	        	case T_SUBTYPE_DECL:
            	        	        	case T_CURSOR_DECL:
            	        	        	case T_VAR_DECL:
            	        	        	case T_CONST_DECL:
            	        	        	case T_EXC_DECL:
            	        	        	case T_FUNCTION_DECL:
            	        	        	case T_PROCEDURE_DECL:
            	        	        	case T_PRAGMA_DECL:
            	        	        	case T_DECL_BLOCK:
            	        	        	case T_BLOCK_BLOCK:
            	        	        	case T_PROCEDURE_BLOCK:
            	        	        	case T_FUNCTION_BLOCK:
            	        	        	case T_DECLARE_BLOCK:
            	        	        	case T_BEGIN_BLOCK:
            	        	        	case T_EXCEPTIONS_BLOCK:
            	        	        	case T_COMMIT:
            	        	        	case T_DELETE:
            	        	        	case T_INSERT:
            	        	        	case T_LOCK_TABLE:
            	        	        	case T_MERGE:
            	        	        	case T_ROLLBACK:
            	        	        	case T_SAVEPOINT:
            	        	        	case T_SELECT:
            	        	        	case T_SET_TRANSACTION:
            	        	        	case T_UPDATE:
            	        	        	case T_EXECUTE_IMMEDIATE:
            	        	        	case T_CASE:
            	        	        	case T_OPEN:
            	        	        	case T_CLOSE:
            	        	        	case T_CONTINUE:
            	        	        	case T_PIPE:
            	        	        	case T_GOTO:
            	        	        	case T_EXIT:
            	        	        	case T_RETURN:
            	        	        	case T_DECLARE:
            	        	        	case T_RAISE:
            	        	        	case T_FETCH:
            	        	        	case T_LOOP:
            	        	        	case T_WHILE:
            	        	        	case T_NULL_STAT:
            	        	        	case T_FOR:
            	        	        	case T_FORALL:
            	        	        	case T_IF:
            	        	        	case T_ELSIF:
            	        	        	case T_ELSE:
            	        	        	case T_ENDIF:
            	        	        	case T_ASSIGN:
            	        	        	case T_CALL:
            	        	        	case T_DECLARATION:
            	        	        	case T_STATEMENT:
            	        	        	case DIVIDE:
            	        	        	case SEMI:
            	        	        	case LPAREN:
            	        	        	case COMMA:
            	        	        	case K_IN:
            	        	        	case K_OUT:
            	        	        	case ASSIGN:
            	        	        	case ID:
            	        	        	case INTEGER:
            	        	        	case DOT:
            	        	        	case K_USING:
            	        	        	case DOUBLEDOT:
            	        	        	case LLABEL:
            	        	        	case RLABEL:
            	        	        	case COLON:
            	        	        	case AT_SIGN:
            	        	        	case EQ:
            	        	        	case LTH:
            	        	        	case GTH:
            	        	        	case MINUS:
            	        	        	case PLUS:
            	        	        	case DOUBLEVERTBAR:
            	        	        	case ASTERISK:
            	        	        	case REAL_NUMBER:
            	        	        	case QUOTED_STRING:
            	        	        	case ARROW:
            	        	        	case QSTRING:
            	        	        	case QS_ANGLE:
            	        	        	case QS_BRACE:
            	        	        	case QS_BRACK:
            	        	        	case QS_PAREN:
            	        	        	case QS_OTHER:
            	        	        	case QUOTE:
            	        	        	case QS_OTHER_CH:
            	        	        	case BINDVAR:
            	        	        	case DOUBLEQUOTED_STRING:
            	        	        	case NUM:
            	        	        	case POINT:
            	        	        	case RBRACK:
            	        	        	case LBRACK:
            	        	        	case PERCENT:
            	        	        	case VERTBAR:
            	        	        	case NOT_EQ:
            	        	        	case LEQ:
            	        	        	case GEQ:
            	        	        	case NUMBER_VALUE:
            	        	        	case WS:
            	        	        	case SL_COMMENT:
            	        	        	case ML_COMMENT:
            	        	        	case 126:
            	        	        	case 127:
            	        	        	case 128:
            	        	        	case 129:
            	        	        	case 130:
            	        	        	case 131:
            	        	        	case 132:
            	        	        	case 133:
            	        	        	case 134:
            	        	        	case 135:
            	        	        	case 136:
            	        	        	case 137:
            	        	        	case 138:
            	        	        	case 139:
            	        	        	case 140:
            	        	        	case 141:
            	        	        	case 142:
            	        	        	case 143:
            	        	        	case 144:
            	        	        	case 145:
            	        	        	case 146:
            	        	        	case 147:
            	        	        	case 148:
            	        	        	case 149:
            	        	        	case 150:
            	        	        	case 151:
            	        	        	case 152:
            	        	        	case 153:
            	        	        	case 154:
            	        	        	case 155:
            	        	        	case 156:
            	        	        	case 157:
            	        	        	case 158:
            	        	        	case 159:
            	        	        	case 160:
            	        	        	case 161:
            	        	        	case 162:
            	        	        	case 163:
            	        	        	case 164:
            	        	        	case 165:
            	        	        	case 166:
            	        	        	case 167:
            	        	        	case 168:
            	        	        	case 169:
            	        	        	case 170:
            	        	        	case 171:
            	        	        	case 172:
            	        	        	case 173:
            	        	        	case 174:
            	        	        	case 175:
            	        	        	case 176:
            	        	        	case 177:
            	        	        	case 178:
            	        	        	case 179:
            	        	        	case 180:
            	        	        	case 181:
            	        	        	case 182:
            	        	        	case 183:
            	        	        	case 184:
            	        	        	case 185:
            	        	        	case 186:
            	        	        	case 187:
            	        	        	case 188:
            	        	        	case 189:
            	        	        	case 190:
            	        	        	case 191:
            	        	        	case 192:
            	        	        	case 193:
            	        	        	case 194:
            	        	        	case 195:
            	        	        	case 196:
            	        	        	case 197:
            	        	        	case 198:
            	        	        	case 199:
            	        	        	case 200:
            	        	        	case 201:
            	        	        	case 202:
            	        	        	case 203:
            	        	        	case 204:
            	        	        	case 205:
            	        	        	case 206:
            	        	        	case 207:
            	        	        	case 208:
            	        	        	case 209:
            	        	        	case 210:
            	        	        	case 211:
            	        	        	case 212:
            	        	        	case 213:
            	        	        	case 214:
            	        	        	case 215:
            	        	        	case 216:
            	        	        	case 217:
            	        	        	case 218:
            	        	        	case 219:
            	        	        	case 220:
            	        	        	case 221:
            	        	        	case 222:
            	        	        	case 223:
            	        	        	case 224:
            	        	        	case 225:
            	        	        	case 226:
            	        	        	case 227:
            	        	        	case 228:
            	        	        	case 229:
            	        	        	case 230:
            	        	        	case 231:
            	        	        	case 232:
            	        	        	case 233:
            	        	        	case 234:
            	        	        	case 235:
            	        	        	case 236:
            	        	        	case 237:
            	        	        	case 238:
            	        	        	case 239:
            	        	        	case 240:
            	        	        	case 241:
            	        	        	case 242:
            	        	        	case 243:
            	        	        		{
            	        	        			alt92=1;
            	        	        		}
            	        	        	    break;

            	        	        	}

            	        	        	switch (alt92) 
            	        	        	{
            	        	        	    case 1:
            	        	        	        // OraclePLSQL.g:0:0: ~ ( RPAREN )
            	        	        	        {
            	        	        	            set283=(pANTLR3_COMMON_TOKEN)LT(1);
            	        	        	            if ( ((LA(1) >= T_UNKNOWN) && (LA(1) <= COMMA)) || ((LA(1) >= K_IN) && (LA(1) <= 243)) )
            	        	        	            {
            	        	        	                CONSUME();
            	        	        	                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set283)));
            	        	        	                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	        	        	            }
            	        	        	            else 
            	        	        	            {
            	        	        	                if (BACKTRACKING>0)
            	        	        	                {
            	        	        	                    FAILEDFLAG = ANTLR3_TRUE;
            	        	        	                    return retval;
            	        	        	                }
            	        	        	                CONSTRUCTEX();
            	        	        	                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	        	        	                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	        	        	                EXCEPTION->expectingSet = &FOLLOW_set_in_function_declaration_or_definition_sub2976;
            	        	        	                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_function_declaration_or_definition_sub2976);    goto rulefunction_declaration_or_definition_subEx;
            	        	        	            }


            	        	        	        }
            	        	        	        break;

            	        	        	    default:
            	        	        	    
            	        	        		if ( cnt92 >= 1 )
            	        	        		{
            	        	        		    goto loop92;
            	        	        		}
            	        	        		if (BACKTRACKING>0)
            	        	        		{
            	        	        		    FAILEDFLAG = ANTLR3_TRUE;
            	        	        		    return retval;
            	        	        		}
            	        	        		/* mismatchedSetEx()
            	        	        		 */
            	        	        		CONSTRUCTEX();
            	        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            	        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            	        	        		goto rulefunction_declaration_or_definition_subEx;
            	        	        	}
            	        	        	cnt92++;
            	        	            }
            	        	            loop92: ;	/* Jump to here if this rule does not match */
            	        	        }
            	        	        RPAREN284 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_function_declaration_or_definition_sub2982); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        RPAREN284_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN284));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN284_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 4:
            	    // OraclePLSQL.g:351:91: k_result_cache
            	    {
            	        FOLLOWPUSH(FOLLOW_k_result_cache_in_function_declaration_or_definition_sub2988);
            	        k_result_cache285=k_result_cache(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_result_cache285.tree);

            	    }
            	    break;

            	default:
            	    goto loop94;	/* break out of the loop */
            	    break;
                }
            }
            loop94: ; /* Jump out to here if this rule does not match */


            // OraclePLSQL.g:352:9: ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )?
            {
                int alt99=2;
                switch ( LA(1) ) 
                {
                    case 151:
                    case 178:
                    	{
                    		alt99=1;
                    	}
                        break;
                }

                switch (alt99) 
                {
            	case 1:
            	    // OraclePLSQL.g:352:11: ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )?
            	    {

            	        // OraclePLSQL.g:352:11: ( k_is | k_as )
            	        {
            	            int alt95=2;
            	            switch ( LA(1) ) 
            	            {
            	            case 178:
            	            	{
            	            		alt95=1;
            	            	}
            	                break;
            	            case 151:
            	            	{
            	            		alt95=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 95;
            	                EXCEPTION->state        = 0;


            	                goto rulefunction_declaration_or_definition_subEx;
            	            }

            	            switch (alt95) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:352:13: k_is
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_is_in_function_declaration_or_definition_sub3005);
            	        	        k_is286=k_is(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is286.tree);

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:352:20: k_as
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_as_in_function_declaration_or_definition_sub3009);
            	        	        k_as287=k_as(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as287.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	        // OraclePLSQL.g:352:27: ( declare_section )?
            	        {
            	            int alt96=2;
            	            switch ( LA(1) ) 
            	            {
            	                case K_OUT:
            	                case ID:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 196:
            	                case 208:
            	                case 214:
            	                case 223:
            	                case 224:
            	                case 233:
            	                	{
            	                		alt96=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt96) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: declare_section
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_declare_section_in_function_declaration_or_definition_sub3013);
            	        	        declare_section288=declare_section(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, declare_section288.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_body_in_function_declaration_or_definition_sub3016);
            	        body289=body(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, body289.tree);

            	        // OraclePLSQL.g:352:49: ( exception_handler )?
            	        {
            	            int alt97=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 212:
            	                	{
            	                		alt97=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt97) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: exception_handler
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_exception_handler_in_function_declaration_or_definition_sub3018);
            	        	        exception_handler290=exception_handler(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exception_handler290.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_end_in_function_declaration_or_definition_sub3021);
            	        k_end291=k_end(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefunction_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end291.tree);

            	        // OraclePLSQL.g:352:74: ( ID )?
            	        {
            	            int alt98=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                	{
            	                		alt98=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt98) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: ID
            	        	    {
            	        	        ID292 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_function_declaration_or_definition_sub3023); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefunction_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ID292_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID292));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ID292_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefunction_declaration_or_definition_subEx; /* Prevent compiler warnings */
    rulefunction_declaration_or_definition_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(30, function_declaration_or_definition_sub_StartIndex); }

    return retval;
}
/* $ANTLR end function_declaration_or_definition_sub */

/** 
 * $ANTLR start procedure_declaration_or_definition
 * OraclePLSQL.g:366:1: procedure_declaration_or_definition : procedure_declaration_or_definition_sub -> ^( 't_procedure_decl' procedure_declaration_or_definition_sub ) ;
 */
static OraclePLSQLParser_procedure_declaration_or_definition_return
procedure_declaration_or_definition(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_procedure_declaration_or_definition_return retval;
    ANTLR3_UINT32 procedure_declaration_or_definition_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_procedure_declaration_or_definition_sub_return procedure_declaration_or_definition_sub293;
    #undef	RETURN_TYPE_procedure_declaration_or_definition_sub293
    #define	RETURN_TYPE_procedure_declaration_or_definition_sub293 OraclePLSQLParser_procedure_declaration_or_definition_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_procedure_declaration_or_definition_sub;
    /* Initialize rule variables
     */
    procedure_declaration_or_definition_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(31)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    procedure_declaration_or_definition_sub293.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_procedure_declaration_or_definition_sub   = NULL;
    #define CREATE_stream_procedure_declaration_or_definition_sub  if (stream_procedure_declaration_or_definition_sub == NULL) {stream_procedure_declaration_or_definition_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule procedure_declaration_or_definition_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:366:37: ( procedure_declaration_or_definition_sub -> ^( 't_procedure_decl' procedure_declaration_or_definition_sub ) )
        // OraclePLSQL.g:366:39: procedure_declaration_or_definition_sub
        {
            FOLLOWPUSH(FOLLOW_procedure_declaration_or_definition_sub_in_procedure_declaration_or_definition3048);
            procedure_declaration_or_definition_sub293=procedure_declaration_or_definition_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleprocedure_declaration_or_definitionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_procedure_declaration_or_definition_sub; stream_procedure_declaration_or_definition_sub->add(stream_procedure_declaration_or_definition_sub, procedure_declaration_or_definition_sub293.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_PROCEDURE_DECL, procedure_declaration_or_definition_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 366:79: -> ^( 't_procedure_decl' procedure_declaration_or_definition_sub )
            	{
            	    // OraclePLSQL.g:366:82: ^( 't_procedure_decl' procedure_declaration_or_definition_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_PROCEDURE_DECL, (pANTLR3_UINT8)"T_PROCEDURE_DECL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_procedure_declaration_or_definition_sub == NULL ? NULL : stream_procedure_declaration_or_definition_sub->nextTree(stream_procedure_declaration_or_definition_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleprocedure_declaration_or_definitionEx; /* Prevent compiler warnings */
    ruleprocedure_declaration_or_definitionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_procedure_declaration_or_definition_sub != NULL) stream_procedure_declaration_or_definition_sub->free(stream_procedure_declaration_or_definition_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(31, procedure_declaration_or_definition_StartIndex); }

    return retval;
}
/* $ANTLR end procedure_declaration_or_definition */

/** 
 * $ANTLR start procedure_declaration_or_definition_sub
 * OraclePLSQL.g:367:1: procedure_declaration_or_definition_sub : procedure_heading ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )? ;
 */
static OraclePLSQLParser_procedure_declaration_or_definition_sub_return
procedure_declaration_or_definition_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_procedure_declaration_or_definition_sub_return retval;
    ANTLR3_UINT32 procedure_declaration_or_definition_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID301;
    OraclePLSQLParser_procedure_heading_return procedure_heading294;
    #undef	RETURN_TYPE_procedure_heading294
    #define	RETURN_TYPE_procedure_heading294 OraclePLSQLParser_procedure_heading_return

    OraclePLSQLParser_k_is_return k_is295;
    #undef	RETURN_TYPE_k_is295
    #define	RETURN_TYPE_k_is295 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as296;
    #undef	RETURN_TYPE_k_as296
    #define	RETURN_TYPE_k_as296 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_declare_section_return declare_section297;
    #undef	RETURN_TYPE_declare_section297
    #define	RETURN_TYPE_declare_section297 OraclePLSQLParser_declare_section_return

    OraclePLSQLParser_body_return body298;
    #undef	RETURN_TYPE_body298
    #define	RETURN_TYPE_body298 OraclePLSQLParser_body_return

    OraclePLSQLParser_exception_handler_return exception_handler299;
    #undef	RETURN_TYPE_exception_handler299
    #define	RETURN_TYPE_exception_handler299 OraclePLSQLParser_exception_handler_return

    OraclePLSQLParser_k_end_return k_end300;
    #undef	RETURN_TYPE_k_end300
    #define	RETURN_TYPE_k_end300 OraclePLSQLParser_k_end_return

    pANTLR3_BASE_TREE ID301_tree;

    /* Initialize rule variables
     */
    procedure_declaration_or_definition_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(32)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID301       = NULL;
    procedure_heading294.tree = NULL;
    k_is295.tree = NULL;
    k_as296.tree = NULL;
    declare_section297.tree = NULL;
    body298.tree = NULL;
    exception_handler299.tree = NULL;
    k_end300.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID301_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:367:41: ( procedure_heading ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )? )
        // OraclePLSQL.g:368:9: procedure_heading ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_procedure_heading_in_procedure_declaration_or_definition_sub3071);
            procedure_heading294=procedure_heading(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleprocedure_declaration_or_definition_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, procedure_heading294.tree);

            // OraclePLSQL.g:369:9: ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? )?
            {
                int alt104=2;
                switch ( LA(1) ) 
                {
                    case 151:
                    case 178:
                    	{
                    		alt104=1;
                    	}
                        break;
                }

                switch (alt104) 
                {
            	case 1:
            	    // OraclePLSQL.g:369:11: ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )?
            	    {

            	        // OraclePLSQL.g:369:11: ( k_is | k_as )
            	        {
            	            int alt100=2;
            	            switch ( LA(1) ) 
            	            {
            	            case 178:
            	            	{
            	            		alt100=1;
            	            	}
            	                break;
            	            case 151:
            	            	{
            	            		alt100=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 100;
            	                EXCEPTION->state        = 0;


            	                goto ruleprocedure_declaration_or_definition_subEx;
            	            }

            	            switch (alt100) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:369:13: k_is
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_is_in_procedure_declaration_or_definition_sub3085);
            	        	        k_is295=k_is(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleprocedure_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is295.tree);

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:369:20: k_as
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_as_in_procedure_declaration_or_definition_sub3089);
            	        	        k_as296=k_as(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleprocedure_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as296.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	        // OraclePLSQL.g:369:27: ( declare_section )?
            	        {
            	            int alt101=2;
            	            switch ( LA(1) ) 
            	            {
            	                case K_OUT:
            	                case ID:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 196:
            	                case 208:
            	                case 214:
            	                case 223:
            	                case 224:
            	                case 233:
            	                	{
            	                		alt101=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt101) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: declare_section
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_declare_section_in_procedure_declaration_or_definition_sub3093);
            	        	        declare_section297=declare_section(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleprocedure_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, declare_section297.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_body_in_procedure_declaration_or_definition_sub3096);
            	        body298=body(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleprocedure_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, body298.tree);

            	        // OraclePLSQL.g:369:49: ( exception_handler )?
            	        {
            	            int alt102=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 212:
            	                	{
            	                		alt102=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt102) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: exception_handler
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_exception_handler_in_procedure_declaration_or_definition_sub3098);
            	        	        exception_handler299=exception_handler(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleprocedure_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exception_handler299.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_end_in_procedure_declaration_or_definition_sub3101);
            	        k_end300=k_end(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleprocedure_declaration_or_definition_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end300.tree);

            	        // OraclePLSQL.g:369:74: ( ID )?
            	        {
            	            int alt103=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                	{
            	                		alt103=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt103) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: ID
            	        	    {
            	        	        ID301 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_procedure_declaration_or_definition_sub3103); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleprocedure_declaration_or_definition_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ID301_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID301));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ID301_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleprocedure_declaration_or_definition_subEx; /* Prevent compiler warnings */
    ruleprocedure_declaration_or_definition_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(32, procedure_declaration_or_definition_sub_StartIndex); }

    return retval;
}
/* $ANTLR end procedure_declaration_or_definition_sub */

/** 
 * $ANTLR start statement
 * OraclePLSQL.g:381:1: statement : ( label )* ( ( k_execute k_immediate )=> execute_immediate_statement | ( k_if )=> if_statement | ( k_case )=> case_statement | ( k_open )=> open_statement | ( k_close )=> close_statement | ( k_continue )=> continue_statement | ( k_pipe )=> pipe_row_statement | ( k_goto )=> goto_statement | ( k_exit )=> exit_statement | ( k_return )=> return_statement | ( k_declare | k_begin )=> plsql_block | ( k_raise )=> raise_statement | ( k_fetch )=> fetch_statement | ( k_loop )=> basic_loop_statement | ( k_while )=> while_loop_statement | ( k_null )=> null_statement | ( k_for )=> for_loop_statement | ( k_forall )=> forall_statement | ( k_commit | k_delete | k_insert | k_lock | k_rollback | k_savepoint | k_select | r_with | k_merge | r_set | k_update )=> sql_statement | assign_or_call_statement ) SEMI ;
 */
static OraclePLSQLParser_statement_return
statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_statement_return retval;
    ANTLR3_UINT32 statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    SEMI323;
    OraclePLSQLParser_label_return label302;
    #undef	RETURN_TYPE_label302
    #define	RETURN_TYPE_label302 OraclePLSQLParser_label_return

    OraclePLSQLParser_execute_immediate_statement_return execute_immediate_statement303;
    #undef	RETURN_TYPE_execute_immediate_statement303
    #define	RETURN_TYPE_execute_immediate_statement303 OraclePLSQLParser_execute_immediate_statement_return

    OraclePLSQLParser_if_statement_return if_statement304;
    #undef	RETURN_TYPE_if_statement304
    #define	RETURN_TYPE_if_statement304 OraclePLSQLParser_if_statement_return

    OraclePLSQLParser_case_statement_return case_statement305;
    #undef	RETURN_TYPE_case_statement305
    #define	RETURN_TYPE_case_statement305 OraclePLSQLParser_case_statement_return

    OraclePLSQLParser_open_statement_return open_statement306;
    #undef	RETURN_TYPE_open_statement306
    #define	RETURN_TYPE_open_statement306 OraclePLSQLParser_open_statement_return

    OraclePLSQLParser_close_statement_return close_statement307;
    #undef	RETURN_TYPE_close_statement307
    #define	RETURN_TYPE_close_statement307 OraclePLSQLParser_close_statement_return

    OraclePLSQLParser_continue_statement_return continue_statement308;
    #undef	RETURN_TYPE_continue_statement308
    #define	RETURN_TYPE_continue_statement308 OraclePLSQLParser_continue_statement_return

    OraclePLSQLParser_pipe_row_statement_return pipe_row_statement309;
    #undef	RETURN_TYPE_pipe_row_statement309
    #define	RETURN_TYPE_pipe_row_statement309 OraclePLSQLParser_pipe_row_statement_return

    OraclePLSQLParser_goto_statement_return goto_statement310;
    #undef	RETURN_TYPE_goto_statement310
    #define	RETURN_TYPE_goto_statement310 OraclePLSQLParser_goto_statement_return

    OraclePLSQLParser_exit_statement_return exit_statement311;
    #undef	RETURN_TYPE_exit_statement311
    #define	RETURN_TYPE_exit_statement311 OraclePLSQLParser_exit_statement_return

    OraclePLSQLParser_return_statement_return return_statement312;
    #undef	RETURN_TYPE_return_statement312
    #define	RETURN_TYPE_return_statement312 OraclePLSQLParser_return_statement_return

    OraclePLSQLParser_plsql_block_return plsql_block313;
    #undef	RETURN_TYPE_plsql_block313
    #define	RETURN_TYPE_plsql_block313 OraclePLSQLParser_plsql_block_return

    OraclePLSQLParser_raise_statement_return raise_statement314;
    #undef	RETURN_TYPE_raise_statement314
    #define	RETURN_TYPE_raise_statement314 OraclePLSQLParser_raise_statement_return

    OraclePLSQLParser_fetch_statement_return fetch_statement315;
    #undef	RETURN_TYPE_fetch_statement315
    #define	RETURN_TYPE_fetch_statement315 OraclePLSQLParser_fetch_statement_return

    OraclePLSQLParser_basic_loop_statement_return basic_loop_statement316;
    #undef	RETURN_TYPE_basic_loop_statement316
    #define	RETURN_TYPE_basic_loop_statement316 OraclePLSQLParser_basic_loop_statement_return

    OraclePLSQLParser_while_loop_statement_return while_loop_statement317;
    #undef	RETURN_TYPE_while_loop_statement317
    #define	RETURN_TYPE_while_loop_statement317 OraclePLSQLParser_while_loop_statement_return

    OraclePLSQLParser_null_statement_return null_statement318;
    #undef	RETURN_TYPE_null_statement318
    #define	RETURN_TYPE_null_statement318 OraclePLSQLParser_null_statement_return

    OraclePLSQLParser_for_loop_statement_return for_loop_statement319;
    #undef	RETURN_TYPE_for_loop_statement319
    #define	RETURN_TYPE_for_loop_statement319 OraclePLSQLParser_for_loop_statement_return

    OraclePLSQLParser_forall_statement_return forall_statement320;
    #undef	RETURN_TYPE_forall_statement320
    #define	RETURN_TYPE_forall_statement320 OraclePLSQLParser_forall_statement_return

    OraclePLSQLParser_sql_statement_return sql_statement321;
    #undef	RETURN_TYPE_sql_statement321
    #define	RETURN_TYPE_sql_statement321 OraclePLSQLParser_sql_statement_return

    OraclePLSQLParser_assign_or_call_statement_return assign_or_call_statement322;
    #undef	RETURN_TYPE_assign_or_call_statement322
    #define	RETURN_TYPE_assign_or_call_statement322 OraclePLSQLParser_assign_or_call_statement_return

    pANTLR3_BASE_TREE SEMI323_tree;

    /* Initialize rule variables
     */
    statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(33)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    SEMI323       = NULL;
    label302.tree = NULL;
    execute_immediate_statement303.tree = NULL;
    if_statement304.tree = NULL;
    case_statement305.tree = NULL;
    open_statement306.tree = NULL;
    close_statement307.tree = NULL;
    continue_statement308.tree = NULL;
    pipe_row_statement309.tree = NULL;
    goto_statement310.tree = NULL;
    exit_statement311.tree = NULL;
    return_statement312.tree = NULL;
    plsql_block313.tree = NULL;
    raise_statement314.tree = NULL;
    fetch_statement315.tree = NULL;
    basic_loop_statement316.tree = NULL;
    while_loop_statement317.tree = NULL;
    null_statement318.tree = NULL;
    for_loop_statement319.tree = NULL;
    forall_statement320.tree = NULL;
    sql_statement321.tree = NULL;
    assign_or_call_statement322.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    SEMI323_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:381:11: ( ( label )* ( ( k_execute k_immediate )=> execute_immediate_statement | ( k_if )=> if_statement | ( k_case )=> case_statement | ( k_open )=> open_statement | ( k_close )=> close_statement | ( k_continue )=> continue_statement | ( k_pipe )=> pipe_row_statement | ( k_goto )=> goto_statement | ( k_exit )=> exit_statement | ( k_return )=> return_statement | ( k_declare | k_begin )=> plsql_block | ( k_raise )=> raise_statement | ( k_fetch )=> fetch_statement | ( k_loop )=> basic_loop_statement | ( k_while )=> while_loop_statement | ( k_null )=> null_statement | ( k_for )=> for_loop_statement | ( k_forall )=> forall_statement | ( k_commit | k_delete | k_insert | k_lock | k_rollback | k_savepoint | k_select | r_with | k_merge | r_set | k_update )=> sql_statement | assign_or_call_statement ) SEMI )
        // OraclePLSQL.g:382:5: ( label )* ( ( k_execute k_immediate )=> execute_immediate_statement | ( k_if )=> if_statement | ( k_case )=> case_statement | ( k_open )=> open_statement | ( k_close )=> close_statement | ( k_continue )=> continue_statement | ( k_pipe )=> pipe_row_statement | ( k_goto )=> goto_statement | ( k_exit )=> exit_statement | ( k_return )=> return_statement | ( k_declare | k_begin )=> plsql_block | ( k_raise )=> raise_statement | ( k_fetch )=> fetch_statement | ( k_loop )=> basic_loop_statement | ( k_while )=> while_loop_statement | ( k_null )=> null_statement | ( k_for )=> for_loop_statement | ( k_forall )=> forall_statement | ( k_commit | k_delete | k_insert | k_lock | k_rollback | k_savepoint | k_select | r_with | k_merge | r_set | k_update )=> sql_statement | assign_or_call_statement ) SEMI
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:382:5: ( label )*

            for (;;)
            {
                int alt105=2;
                switch ( LA(1) ) 
                {
                case LLABEL:
                	{
                		alt105=1;
                	}
                    break;

                }

                switch (alt105) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: label
            	    {
            	        FOLLOWPUSH(FOLLOW_label_in_statement3134);
            	        label302=label(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, label302.tree);

            	    }
            	    break;

            	default:
            	    goto loop105;	/* break out of the loop */
            	    break;
                }
            }
            loop105: ; /* Jump out to here if this rule does not match */


            // OraclePLSQL.g:383:5: ( ( k_execute k_immediate )=> execute_immediate_statement | ( k_if )=> if_statement | ( k_case )=> case_statement | ( k_open )=> open_statement | ( k_close )=> close_statement | ( k_continue )=> continue_statement | ( k_pipe )=> pipe_row_statement | ( k_goto )=> goto_statement | ( k_exit )=> exit_statement | ( k_return )=> return_statement | ( k_declare | k_begin )=> plsql_block | ( k_raise )=> raise_statement | ( k_fetch )=> fetch_statement | ( k_loop )=> basic_loop_statement | ( k_while )=> while_loop_statement | ( k_null )=> null_statement | ( k_for )=> for_loop_statement | ( k_forall )=> forall_statement | ( k_commit | k_delete | k_insert | k_lock | k_rollback | k_savepoint | k_select | r_with | k_merge | r_set | k_update )=> sql_statement | assign_or_call_statement )
            {
                int alt106=20;

                {
                    int LA106_0 = LA(1);
                    if ( (synpred157_OraclePLSQL(ctx)) && (LA106_0 == 131)) 
                    {
                        alt106=1;
                    }
                    else if ( (synpred158_OraclePLSQL(ctx)) && (LA106_0 == 174)) 
                    {
                        alt106=2;
                    }
                    else if ( (synpred159_OraclePLSQL(ctx)) && (LA106_0 == 157)) 
                    {
                        alt106=3;
                    }
                    else if ( (synpred160_OraclePLSQL(ctx)) && (LA106_0 == 135)) 
                    {
                        alt106=4;
                    }
                    else if ( (synpred161_OraclePLSQL(ctx)) && (LA106_0 == 205)) 
                    {
                        alt106=5;
                    }
                    else if ( (synpred162_OraclePLSQL(ctx)) && (LA106_0 == 207)) 
                    {
                        alt106=6;
                    }
                    else if ( (synpred163_OraclePLSQL(ctx)) && (LA106_0 == 221)) 
                    {
                        alt106=7;
                    }
                    else if ( (synpred164_OraclePLSQL(ctx)) && (LA106_0 == 173)) 
                    {
                        alt106=8;
                    }
                    else if ( (synpred165_OraclePLSQL(ctx)) && (LA106_0 == 213)) 
                    {
                        alt106=9;
                    }
                    else if ( (synpred166_OraclePLSQL(ctx)) && (LA106_0 == 228)) 
                    {
                        alt106=10;
                    }
                    else if ( (synpred168_OraclePLSQL(ctx)) && (LA106_0 == 138)) 
                    {
                        alt106=11;
                    }
                    else if ( (synpred168_OraclePLSQL(ctx)) && (LA106_0 == 139)) 
                    {
                        alt106=11;
                    }
                    else if ( (synpred169_OraclePLSQL(ctx)) && (LA106_0 == 134)) 
                    {
                        alt106=12;
                    }
                    else if ( (synpred170_OraclePLSQL(ctx)) && (LA106_0 == 170)) 
                    {
                        alt106=13;
                    }
                    else if ( (synpred171_OraclePLSQL(ctx)) && (LA106_0 == 126)) 
                    {
                        alt106=14;
                    }
                    else if ( (synpred172_OraclePLSQL(ctx)) && (LA106_0 == 198)) 
                    {
                        alt106=15;
                    }
                    else if ( (synpred173_OraclePLSQL(ctx)) && (LA106_0 == 184)) 
                    {
                        alt106=16;
                    }
                    else if ( (synpred174_OraclePLSQL(ctx)) && (LA106_0 == 171)) 
                    {
                        alt106=17;
                    }
                    else if ( (synpred175_OraclePLSQL(ctx)) && (LA106_0 == 172)) 
                    {
                        alt106=18;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 161)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 133)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 176)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 181)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 187)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 188)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == LPAREN)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 189)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 148)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 216)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 144)) 
                    {
                        alt106=19;
                    }
                    else if ( (synpred186_OraclePLSQL(ctx)) && (LA106_0 == 197)) 
                    {
                        alt106=19;
                    }
                    else if ( (LA106_0 == K_OUT || LA106_0 == ID || LA106_0 == COLON || LA106_0 == BINDVAR || ((LA106_0 >= 127) && (LA106_0 <= 130)))) 
                    {
                        alt106=20;
                    }
                    else 
                    {
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                    
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 106;
                        EXCEPTION->state        = 0;


                        goto rulestatementEx;
                    }
                }
                switch (alt106) 
                {
            	case 1:
            	    // OraclePLSQL.g:383:7: ( k_execute k_immediate )=> execute_immediate_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_execute_immediate_statement_in_statement3151);
            	        execute_immediate_statement303=execute_immediate_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, execute_immediate_statement303.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:384:4: ( k_if )=> if_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_if_statement_in_statement3162);
            	        if_statement304=if_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, if_statement304.tree);

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:385:4: ( k_case )=> case_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_case_statement_in_statement3173);
            	        case_statement305=case_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, case_statement305.tree);

            	    }
            	    break;
            	case 4:
            	    // OraclePLSQL.g:386:7: ( k_open )=> open_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_open_statement_in_statement3187);
            	        open_statement306=open_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, open_statement306.tree);

            	    }
            	    break;
            	case 5:
            	    // OraclePLSQL.g:387:4: ( k_close )=> close_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_close_statement_in_statement3210);
            	        close_statement307=close_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, close_statement307.tree);

            	    }
            	    break;
            	case 6:
            	    // OraclePLSQL.g:388:7: ( k_continue )=> continue_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_continue_statement_in_statement3224);
            	        continue_statement308=continue_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, continue_statement308.tree);

            	    }
            	    break;
            	case 7:
            	    // OraclePLSQL.g:389:7: ( k_pipe )=> pipe_row_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_pipe_row_statement_in_statement3238);
            	        pipe_row_statement309=pipe_row_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, pipe_row_statement309.tree);

            	    }
            	    break;
            	case 8:
            	    // OraclePLSQL.g:390:7: ( k_goto )=> goto_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_goto_statement_in_statement3252);
            	        goto_statement310=goto_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, goto_statement310.tree);

            	    }
            	    break;
            	case 9:
            	    // OraclePLSQL.g:391:7: ( k_exit )=> exit_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_exit_statement_in_statement3267);
            	        exit_statement311=exit_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exit_statement311.tree);

            	    }
            	    break;
            	case 10:
            	    // OraclePLSQL.g:392:7: ( k_return )=> return_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_return_statement_in_statement3281);
            	        return_statement312=return_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, return_statement312.tree);

            	    }
            	    break;
            	case 11:
            	    // OraclePLSQL.g:393:7: ( k_declare | k_begin )=> plsql_block
            	    {
            	        FOLLOWPUSH(FOLLOW_plsql_block_in_statement3299);
            	        plsql_block313=plsql_block(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, plsql_block313.tree);

            	    }
            	    break;
            	case 12:
            	    // OraclePLSQL.g:394:7: ( k_raise )=> raise_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_raise_statement_in_statement3313);
            	        raise_statement314=raise_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, raise_statement314.tree);

            	    }
            	    break;
            	case 13:
            	    // OraclePLSQL.g:395:7: ( k_fetch )=> fetch_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_fetch_statement_in_statement3327);
            	        fetch_statement315=fetch_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, fetch_statement315.tree);

            	    }
            	    break;
            	case 14:
            	    // OraclePLSQL.g:396:7: ( k_loop )=> basic_loop_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_basic_loop_statement_in_statement3341);
            	        basic_loop_statement316=basic_loop_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, basic_loop_statement316.tree);

            	    }
            	    break;
            	case 15:
            	    // OraclePLSQL.g:397:7: ( k_while )=> while_loop_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_while_loop_statement_in_statement3355);
            	        while_loop_statement317=while_loop_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, while_loop_statement317.tree);

            	    }
            	    break;
            	case 16:
            	    // OraclePLSQL.g:398:7: ( k_null )=> null_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_null_statement_in_statement3369);
            	        null_statement318=null_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, null_statement318.tree);

            	    }
            	    break;
            	case 17:
            	    // OraclePLSQL.g:399:7: ( k_for )=> for_loop_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_for_loop_statement_in_statement3383);
            	        for_loop_statement319=for_loop_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, for_loop_statement319.tree);

            	    }
            	    break;
            	case 18:
            	    // OraclePLSQL.g:400:7: ( k_forall )=> forall_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_forall_statement_in_statement3397);
            	        forall_statement320=forall_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, forall_statement320.tree);

            	    }
            	    break;
            	case 19:
            	    // OraclePLSQL.g:401:7: ( k_commit | k_delete | k_insert | k_lock | k_rollback | k_savepoint | k_select | r_with | k_merge | r_set | k_update )=> sql_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_sql_statement_in_statement3452);
            	        sql_statement321=sql_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, sql_statement321.tree);

            	    }
            	    break;
            	case 20:
            	    // OraclePLSQL.g:404:7: assign_or_call_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_assign_or_call_statement_in_statement3474);
            	        assign_or_call_statement322=assign_or_call_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulestatementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, assign_or_call_statement322.tree);

            	    }
            	    break;

                }
            }
            SEMI323 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_statement3486); 
            if  (HASEXCEPTION())
            {
                goto rulestatementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            SEMI323_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI323));
            ADAPTOR->addChild(ADAPTOR, root_0, SEMI323_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulestatementEx; /* Prevent compiler warnings */
    rulestatementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(33, statement_StartIndex); }

    return retval;
}
/* $ANTLR end statement */

/** 
 * $ANTLR start lvalue
 * OraclePLSQL.g:409:1: lvalue : call_first[T_USEL] ( DOT call_next[T_USEL] )* ;
 */
static OraclePLSQLParser_lvalue_return
lvalue(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_lvalue_return retval;
    ANTLR3_UINT32 lvalue_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT325;
    OraclePLSQLParser_call_first_return call_first324;
    #undef	RETURN_TYPE_call_first324
    #define	RETURN_TYPE_call_first324 OraclePLSQLParser_call_first_return

    OraclePLSQLParser_call_next_return call_next326;
    #undef	RETURN_TYPE_call_next326
    #define	RETURN_TYPE_call_next326 OraclePLSQLParser_call_next_return

    pANTLR3_BASE_TREE DOT325_tree;

    /* Initialize rule variables
     */
    lvalue_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(34)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT325       = NULL;
    call_first324.tree = NULL;
    call_next326.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT325_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:410:5: ( call_first[T_USEL] ( DOT call_next[T_USEL] )* )
        // OraclePLSQL.g:410:7: call_first[T_USEL] ( DOT call_next[T_USEL] )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_call_first_in_lvalue3511);
            call_first324=call_first(ctx, T_USEL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelvalueEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_first324.tree);

            // OraclePLSQL.g:410:26: ( DOT call_next[T_USEL] )*

            for (;;)
            {
                int alt107=2;
                switch ( LA(1) ) 
                {
                case DOT:
                	{
                		switch ( LA(2) ) 
                		{
                		case 133:
                			{
                				{
                				   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                				    */
                				    int LA107_3 = LA(3);
                				    if ( (synpred187_OraclePLSQL(ctx))) 
                				    {
                				        alt107=1;
                				    }

                				}
                			}
                		    break;
                		case ID:
                		case 127:
                		case 128:
                		case 129:
                		case 130:
                		case 131:
                		case 132:
                		case 134:
                		case 135:
                		case 136:
                			{
                				alt107=1;
                			}
                		    break;

                		}

                	}
                    break;

                }

                switch (alt107) 
                {
            	case 1:
            	    // OraclePLSQL.g:410:28: DOT call_next[T_USEL]
            	    {
            	        DOT325 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_lvalue3516); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulelvalueEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT325_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT325));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT325_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_call_next_in_lvalue3518);
            	        call_next326=call_next(ctx, T_USEL);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulelvalueEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_next326.tree);

            	    }
            	    break;

            	default:
            	    goto loop107;	/* break out of the loop */
            	    break;
                }
            }
            loop107: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulelvalueEx; /* Prevent compiler warnings */
    rulelvalueEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(34, lvalue_StartIndex); }

    return retval;
}
/* $ANTLR end lvalue */

/** 
 * $ANTLR start assign_or_call_statement
 * OraclePLSQL.g:413:1: assign_or_call_statement : ( lvalue DOT delete_call -> ^( 't_call' lvalue DOT delete_call ) | lvalue ASSIGN expression -> ^( 't_assign' lvalue ASSIGN expression ) | lvalue -> ^( 't_call' lvalue ) );
 */
static OraclePLSQLParser_assign_or_call_statement_return
assign_or_call_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_assign_or_call_statement_return retval;
    ANTLR3_UINT32 assign_or_call_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT328;
    pANTLR3_COMMON_TOKEN    ASSIGN331;
    OraclePLSQLParser_lvalue_return lvalue327;
    #undef	RETURN_TYPE_lvalue327
    #define	RETURN_TYPE_lvalue327 OraclePLSQLParser_lvalue_return

    OraclePLSQLParser_delete_call_return delete_call329;
    #undef	RETURN_TYPE_delete_call329
    #define	RETURN_TYPE_delete_call329 OraclePLSQLParser_delete_call_return

    OraclePLSQLParser_lvalue_return lvalue330;
    #undef	RETURN_TYPE_lvalue330
    #define	RETURN_TYPE_lvalue330 OraclePLSQLParser_lvalue_return

    OraclePLSQLParser_expression_return expression332;
    #undef	RETURN_TYPE_expression332
    #define	RETURN_TYPE_expression332 OraclePLSQLParser_expression_return

    OraclePLSQLParser_lvalue_return lvalue333;
    #undef	RETURN_TYPE_lvalue333
    #define	RETURN_TYPE_lvalue333 OraclePLSQLParser_lvalue_return

    pANTLR3_BASE_TREE DOT328_tree;
    pANTLR3_BASE_TREE ASSIGN331_tree;
    pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_DOT;
    pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ASSIGN;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_expression;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_lvalue;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_delete_call;
    /* Initialize rule variables
     */
    assign_or_call_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(35)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT328       = NULL;
    ASSIGN331       = NULL;
    lvalue327.tree = NULL;
    delete_call329.tree = NULL;
    lvalue330.tree = NULL;
    expression332.tree = NULL;
    lvalue333.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT328_tree   = NULL;
    ASSIGN331_tree   = NULL;

    stream_DOT   = NULL;
    #define CREATE_stream_DOT  if (stream_DOT == NULL) {stream_DOT = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token DOT"); } 
    stream_ASSIGN   = NULL;
    #define CREATE_stream_ASSIGN  if (stream_ASSIGN == NULL) {stream_ASSIGN = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ASSIGN"); } 
    stream_expression   = NULL;
    #define CREATE_stream_expression  if (stream_expression == NULL) {stream_expression = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule expression"); }
    stream_lvalue   = NULL;
    #define CREATE_stream_lvalue  if (stream_lvalue == NULL) {stream_lvalue = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule lvalue"); }
    stream_delete_call   = NULL;
    #define CREATE_stream_delete_call  if (stream_delete_call == NULL) {stream_delete_call = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule delete_call"); }

    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:414:5: ( lvalue DOT delete_call -> ^( 't_call' lvalue DOT delete_call ) | lvalue ASSIGN expression -> ^( 't_assign' lvalue ASSIGN expression ) | lvalue -> ^( 't_call' lvalue ) )
            
            ANTLR3_UINT32 alt108;

            alt108=3;

            switch ( LA(1) ) 
            {
            case BINDVAR:
            	{

            		{
            		    int LA108_1 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 1;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case COLON:
            	{

            		{
            		    int LA108_2 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 2;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case ID:
            	{

            		{
            		    int LA108_3 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 3;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case 127:
            	{

            		{
            		    int LA108_4 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 4;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case 128:
            	{

            		{
            		    int LA108_5 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 5;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case K_OUT:
            	{

            		{
            		    int LA108_6 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 6;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case 129:
            	{

            		{
            		    int LA108_7 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 7;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;
            case 130:
            	{

            		{
            		    int LA108_8 = LA(2);
            		    if ( (synpred188_OraclePLSQL(ctx))) 
            		    {
            		        alt108=1;
            		    }
            		    else if ( (synpred189_OraclePLSQL(ctx))) 
            		    {
            		        alt108=2;
            		    }
            		    else if ( (ANTLR3_TRUE)) 
            		    {
            		        alt108=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 108;
            		        EXCEPTION->state        = 8;


            		        goto ruleassign_or_call_statementEx;
            		    }
            		}
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 108;
                EXCEPTION->state        = 0;


                goto ruleassign_or_call_statementEx;
            }

            switch (alt108) 
            {
        	case 1:
        	    // OraclePLSQL.g:414:7: lvalue DOT delete_call
        	    {
        	        FOLLOWPUSH(FOLLOW_lvalue_in_assign_or_call_statement3539);
        	        lvalue327=lvalue(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_lvalue; stream_lvalue->add(stream_lvalue, lvalue327.tree, NULL); }
        	        DOT328 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_assign_or_call_statement3541); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        } 
        	        if ( BACKTRACKING==0 ) { CREATE_stream_DOT; stream_DOT->add(stream_DOT, DOT328, NULL); }

        	        FOLLOWPUSH(FOLLOW_delete_call_in_assign_or_call_statement3543);
        	        delete_call329=delete_call(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_delete_call; stream_delete_call->add(stream_delete_call, delete_call329.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : delete_call, lvalue, DOT, T_CALL
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 414:32: -> ^( 't_call' lvalue DOT delete_call )
        	        	{
        	        	    // OraclePLSQL.g:414:35: ^( 't_call' lvalue DOT delete_call )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CALL, (pANTLR3_UINT8)"T_CALL"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_lvalue == NULL ? NULL : stream_lvalue->nextTree(stream_lvalue));
        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_DOT == NULL ? NULL : stream_DOT->nextNode(stream_DOT));
        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_delete_call == NULL ? NULL : stream_delete_call->nextTree(stream_delete_call));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:415:7: lvalue ASSIGN expression
        	    {
        	        FOLLOWPUSH(FOLLOW_lvalue_in_assign_or_call_statement3565);
        	        lvalue330=lvalue(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_lvalue; stream_lvalue->add(stream_lvalue, lvalue330.tree, NULL); }
        	        ASSIGN331 = (pANTLR3_COMMON_TOKEN) MATCHT(ASSIGN, &FOLLOW_ASSIGN_in_assign_or_call_statement3567); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        } 
        	        if ( BACKTRACKING==0 ) { CREATE_stream_ASSIGN; stream_ASSIGN->add(stream_ASSIGN, ASSIGN331, NULL); }

        	        FOLLOWPUSH(FOLLOW_expression_in_assign_or_call_statement3569);
        	        expression332=expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_expression; stream_expression->add(stream_expression, expression332.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : lvalue, ASSIGN, T_ASSIGN, expression
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 415:32: -> ^( 't_assign' lvalue ASSIGN expression )
        	        	{
        	        	    // OraclePLSQL.g:415:35: ^( 't_assign' lvalue ASSIGN expression )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_ASSIGN, (pANTLR3_UINT8)"T_ASSIGN"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_lvalue == NULL ? NULL : stream_lvalue->nextTree(stream_lvalue));
        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_ASSIGN == NULL ? NULL : stream_ASSIGN->nextNode(stream_ASSIGN));
        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_expression == NULL ? NULL : stream_expression->nextTree(stream_expression));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:416:7: lvalue
        	    {
        	        FOLLOWPUSH(FOLLOW_lvalue_in_assign_or_call_statement3589);
        	        lvalue333=lvalue(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleassign_or_call_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_lvalue; stream_lvalue->add(stream_lvalue, lvalue333.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : T_CALL, lvalue
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 416:32: -> ^( 't_call' lvalue )
        	        	{
        	        	    // OraclePLSQL.g:416:35: ^( 't_call' lvalue )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CALL, (pANTLR3_UINT8)"T_CALL"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_lvalue == NULL ? NULL : stream_lvalue->nextTree(stream_lvalue));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleassign_or_call_statementEx; /* Prevent compiler warnings */
    ruleassign_or_call_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_DOT != NULL) stream_DOT->free(stream_DOT);
        if (stream_ASSIGN != NULL) stream_ASSIGN->free(stream_ASSIGN);
        if (stream_expression != NULL) stream_expression->free(stream_expression);
        if (stream_lvalue != NULL) stream_lvalue->free(stream_lvalue);
        if (stream_delete_call != NULL) stream_delete_call->free(stream_delete_call);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(35, assign_or_call_statement_StartIndex); }

    return retval;
}
/* $ANTLR end assign_or_call_statement */

/** 
 * $ANTLR start call_first
 * OraclePLSQL.g:419:1: call_first[int usageType] : ( bindvar | variable_name[usageType] ) ( dblink_name )? ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )? ;
 */
static OraclePLSQLParser_call_first_return
call_first(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_call_first_return retval;
    ANTLR3_UINT32 call_first_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN337;
    pANTLR3_COMMON_TOKEN    COMMA339;
    pANTLR3_COMMON_TOKEN    RPAREN341;
    OraclePLSQLParser_bindvar_return bindvar334;
    #undef	RETURN_TYPE_bindvar334
    #define	RETURN_TYPE_bindvar334 OraclePLSQLParser_bindvar_return

    OraclePLSQLParser_variable_name_return variable_name335;
    #undef	RETURN_TYPE_variable_name335
    #define	RETURN_TYPE_variable_name335 OraclePLSQLParser_variable_name_return

    OraclePLSQLParser_dblink_name_return dblink_name336;
    #undef	RETURN_TYPE_dblink_name336
    #define	RETURN_TYPE_dblink_name336 OraclePLSQLParser_dblink_name_return

    OraclePLSQLParser_parameter_return parameter338;
    #undef	RETURN_TYPE_parameter338
    #define	RETURN_TYPE_parameter338 OraclePLSQLParser_parameter_return

    OraclePLSQLParser_parameter_return parameter340;
    #undef	RETURN_TYPE_parameter340
    #define	RETURN_TYPE_parameter340 OraclePLSQLParser_parameter_return

    pANTLR3_BASE_TREE LPAREN337_tree;
    pANTLR3_BASE_TREE COMMA339_tree;
    pANTLR3_BASE_TREE RPAREN341_tree;

    /* Initialize rule variables
     */
    call_first_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(36)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN337       = NULL;
    COMMA339       = NULL;
    RPAREN341       = NULL;
    bindvar334.tree = NULL;
    variable_name335.tree = NULL;
    dblink_name336.tree = NULL;
    parameter338.tree = NULL;
    parameter340.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN337_tree   = NULL;
    COMMA339_tree   = NULL;
    RPAREN341_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:420:5: ( ( bindvar | variable_name[usageType] ) ( dblink_name )? ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )? )
        // OraclePLSQL.g:420:7: ( bindvar | variable_name[usageType] ) ( dblink_name )? ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:420:7: ( bindvar | variable_name[usageType] )
            {
                int alt109=2;
                switch ( LA(1) ) 
                {
                case COLON:
                case BINDVAR:
                	{
                		alt109=1;
                	}
                    break;
                case K_OUT:
                case ID:
                case 127:
                case 128:
                case 129:
                case 130:
                	{
                		alt109=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 109;
                    EXCEPTION->state        = 0;


                    goto rulecall_firstEx;
                }

                switch (alt109) 
                {
            	case 1:
            	    // OraclePLSQL.g:420:8: bindvar
            	    {
            	        FOLLOWPUSH(FOLLOW_bindvar_in_call_first3634);
            	        bindvar334=bindvar(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_firstEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bindvar334.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:420:18: variable_name[usageType]
            	    {
            	        FOLLOWPUSH(FOLLOW_variable_name_in_call_first3638);
            	        variable_name335=variable_name(ctx, usageType);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_firstEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_name335.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:420:45: ( dblink_name )?
            {
                int alt110=2;
                switch ( LA(1) ) 
                {
                    case AT_SIGN:
                    	{
                    		alt110=1;
                    	}
                        break;
                }

                switch (alt110) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: dblink_name
            	    {
            	        FOLLOWPUSH(FOLLOW_dblink_name_in_call_first3643);
            	        dblink_name336=dblink_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_firstEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, dblink_name336.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:420:58: ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )?
            {
                int alt113=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case RPAREN:
                    		    case K_OUT:
                    		    case ID:
                    		    case INTEGER:
                    		    case COLON:
                    		    case MINUS:
                    		    case PLUS:
                    		    case REAL_NUMBER:
                    		    case QUOTED_STRING:
                    		    case BINDVAR:
                    		    case 127:
                    		    case 128:
                    		    case 129:
                    		    case 130:
                    		    case 157:
                    		    case 163:
                    		    case 169:
                    		    case 183:
                    		    case 184:
                    		    case 190:
                    		    case 194:
                    		    case 199:
                    		    case 200:
                    		    case 201:
                    		    case 203:
                    		    case 232:
                    		    	{
                    		    		alt113=1;
                    		    	}
                    		        break;
                    		    case LPAREN:
                    		    	{
                    		    		switch ( LA(3) ) 
                    		    		{
                    		    		    case K_OUT:
                    		    		    case ID:
                    		    		    case INTEGER:
                    		    		    case COLON:
                    		    		    case MINUS:
                    		    		    case PLUS:
                    		    		    case REAL_NUMBER:
                    		    		    case QUOTED_STRING:
                    		    		    case BINDVAR:
                    		    		    case 127:
                    		    		    case 128:
                    		    		    case 129:
                    		    		    case 130:
                    		    		    case 157:
                    		    		    case 163:
                    		    		    case 169:
                    		    		    case 183:
                    		    		    case 184:
                    		    		    case 190:
                    		    		    case 194:
                    		    		    case 199:
                    		    		    case 200:
                    		    		    case 201:
                    		    		    case 203:
                    		    		    case 232:
                    		    		    	{
                    		    		    		alt113=1;
                    		    		    	}
                    		    		        break;
                    		    		    case LPAREN:
                    		    		    	{
                    		    		    		switch ( LA(4) ) 
                    		    		    		{
                    		    		    		    case K_OUT:
                    		    		    		    case ID:
                    		    		    		    case INTEGER:
                    		    		    		    case COLON:
                    		    		    		    case MINUS:
                    		    		    		    case PLUS:
                    		    		    		    case REAL_NUMBER:
                    		    		    		    case QUOTED_STRING:
                    		    		    		    case BINDVAR:
                    		    		    		    case 127:
                    		    		    		    case 128:
                    		    		    		    case 129:
                    		    		    		    case 130:
                    		    		    		    case 157:
                    		    		    		    case 163:
                    		    		    		    case 169:
                    		    		    		    case 183:
                    		    		    		    case 184:
                    		    		    		    case 190:
                    		    		    		    case 194:
                    		    		    		    case 199:
                    		    		    		    case 200:
                    		    		    		    case 201:
                    		    		    		    case 203:
                    		    		    		    case 232:
                    		    		    		    	{
                    		    		    		    		alt113=1;
                    		    		    		    	}
                    		    		    		        break;
                    		    		    		    case LPAREN:
                    		    		    		    	{
                    		    		    		    		switch ( LA(5) ) 
                    		    		    		    		{
                    		    		    		    		    case K_OUT:
                    		    		    		    		    case ID:
                    		    		    		    		    case INTEGER:
                    		    		    		    		    case COLON:
                    		    		    		    		    case MINUS:
                    		    		    		    		    case PLUS:
                    		    		    		    		    case REAL_NUMBER:
                    		    		    		    		    case QUOTED_STRING:
                    		    		    		    		    case BINDVAR:
                    		    		    		    		    case 127:
                    		    		    		    		    case 128:
                    		    		    		    		    case 129:
                    		    		    		    		    case 130:
                    		    		    		    		    case 157:
                    		    		    		    		    case 163:
                    		    		    		    		    case 169:
                    		    		    		    		    case 183:
                    		    		    		    		    case 184:
                    		    		    		    		    case 190:
                    		    		    		    		    case 194:
                    		    		    		    		    case 199:
                    		    		    		    		    case 200:
                    		    		    		    		    case 201:
                    		    		    		    		    case 203:
                    		    		    		    		    case 232:
                    		    		    		    		    	{
                    		    		    		    		    		alt113=1;
                    		    		    		    		    	}
                    		    		    		    		        break;
                    		    		    		    		    case LPAREN:
                    		    		    		    		    	{
                    		    		    		    		    		{
                    		    		    		    		    		    int LA113_7 = LA(6);
                    		    		    		    		    		    if ( (synpred194_OraclePLSQL(ctx))) 
                    		    		    		    		    		    {
                    		    		    		    		    		        alt113=1;
                    		    		    		    		    		    }
                    		    		    		    		    		}
                    		    		    		    		    	}
                    		    		    		    		        break;
                    		    		    		    		}

                    		    		    		    	}
                    		    		    		        break;
                    		    		    		}

                    		    		    	}
                    		    		        break;
                    		    		}

                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt113) 
                {
            	case 1:
            	    // OraclePLSQL.g:420:60: LPAREN ( parameter ( COMMA parameter )* )? RPAREN
            	    {
            	        LPAREN337 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_call_first3648); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_firstEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        LPAREN337_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN337));
            	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN337_tree);
            	        }

            	        // OraclePLSQL.g:420:67: ( parameter ( COMMA parameter )* )?
            	        {
            	            int alt112=2;
            	            switch ( LA(1) ) 
            	            {
            	                case LPAREN:
            	                case K_OUT:
            	                case ID:
            	                case INTEGER:
            	                case COLON:
            	                case MINUS:
            	                case PLUS:
            	                case REAL_NUMBER:
            	                case QUOTED_STRING:
            	                case BINDVAR:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 157:
            	                case 163:
            	                case 169:
            	                case 183:
            	                case 184:
            	                case 190:
            	                case 194:
            	                case 199:
            	                case 200:
            	                case 201:
            	                case 203:
            	                case 232:
            	                	{
            	                		alt112=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt112) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:420:69: parameter ( COMMA parameter )*
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_parameter_in_call_first3652);
            	        	        parameter338=parameter(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecall_firstEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter338.tree);

            	        	        // OraclePLSQL.g:420:79: ( COMMA parameter )*

            	        	        for (;;)
            	        	        {
            	        	            int alt111=2;
            	        	            switch ( LA(1) ) 
            	        	            {
            	        	            case COMMA:
            	        	            	{
            	        	            		alt111=1;
            	        	            	}
            	        	                break;

            	        	            }

            	        	            switch (alt111) 
            	        	            {
            	        	        	case 1:
            	        	        	    // OraclePLSQL.g:420:81: COMMA parameter
            	        	        	    {
            	        	        	        COMMA339 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_call_first3656); 
            	        	        	        if  (HASEXCEPTION())
            	        	        	        {
            	        	        	            goto rulecall_firstEx;
            	        	        	        }
            	        	        	        if (HASFAILED())
            	        	        	        {
            	        	        	            return retval;
            	        	        	        }
            	        	        	        if ( BACKTRACKING==0 ) {
            	        	        	        COMMA339_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA339));
            	        	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA339_tree);
            	        	        	        }
            	        	        	        FOLLOWPUSH(FOLLOW_parameter_in_call_first3658);
            	        	        	        parameter340=parameter(ctx);

            	        	        	        FOLLOWPOP();
            	        	        	        if  (HASEXCEPTION())
            	        	        	        {
            	        	        	            goto rulecall_firstEx;
            	        	        	        }
            	        	        	        if (HASFAILED())
            	        	        	        {
            	        	        	            return retval;
            	        	        	        }
            	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter340.tree);

            	        	        	    }
            	        	        	    break;

            	        	        	default:
            	        	        	    goto loop111;	/* break out of the loop */
            	        	        	    break;
            	        	            }
            	        	        }
            	        	        loop111: ; /* Jump out to here if this rule does not match */


            	        	    }
            	        	    break;

            	            }
            	        }
            	        RPAREN341 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_call_first3666); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_firstEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        RPAREN341_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN341));
            	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN341_tree);
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecall_firstEx; /* Prevent compiler warnings */
    rulecall_firstEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(36, call_first_StartIndex); }

    return retval;
}
/* $ANTLR end call_first */

/** 
 * $ANTLR start call_next
 * OraclePLSQL.g:423:1: call_next[int usageType] : ( variable_name_ex[usageType] ) ( dblink_name )? ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )? ;
 */
static OraclePLSQLParser_call_next_return
call_next(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_call_next_return retval;
    ANTLR3_UINT32 call_next_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN344;
    pANTLR3_COMMON_TOKEN    COMMA346;
    pANTLR3_COMMON_TOKEN    RPAREN348;
    OraclePLSQLParser_variable_name_ex_return variable_name_ex342;
    #undef	RETURN_TYPE_variable_name_ex342
    #define	RETURN_TYPE_variable_name_ex342 OraclePLSQLParser_variable_name_ex_return

    OraclePLSQLParser_dblink_name_return dblink_name343;
    #undef	RETURN_TYPE_dblink_name343
    #define	RETURN_TYPE_dblink_name343 OraclePLSQLParser_dblink_name_return

    OraclePLSQLParser_parameter_return parameter345;
    #undef	RETURN_TYPE_parameter345
    #define	RETURN_TYPE_parameter345 OraclePLSQLParser_parameter_return

    OraclePLSQLParser_parameter_return parameter347;
    #undef	RETURN_TYPE_parameter347
    #define	RETURN_TYPE_parameter347 OraclePLSQLParser_parameter_return

    pANTLR3_BASE_TREE LPAREN344_tree;
    pANTLR3_BASE_TREE COMMA346_tree;
    pANTLR3_BASE_TREE RPAREN348_tree;

    /* Initialize rule variables
     */
    call_next_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(37)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN344       = NULL;
    COMMA346       = NULL;
    RPAREN348       = NULL;
    variable_name_ex342.tree = NULL;
    dblink_name343.tree = NULL;
    parameter345.tree = NULL;
    parameter347.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN344_tree   = NULL;
    COMMA346_tree   = NULL;
    RPAREN348_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:424:5: ( ( variable_name_ex[usageType] ) ( dblink_name )? ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )? )
        // OraclePLSQL.g:424:7: ( variable_name_ex[usageType] ) ( dblink_name )? ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            // OraclePLSQL.g:424:7: ( variable_name_ex[usageType] )
            // OraclePLSQL.g:424:8: variable_name_ex[usageType]
            {
                FOLLOWPUSH(FOLLOW_variable_name_ex_in_call_next3688);
                variable_name_ex342=variable_name_ex(ctx, usageType);

                FOLLOWPOP();
                if  (HASEXCEPTION())
                {
                    goto rulecall_nextEx;
                }
                if (HASFAILED())
                {
                    return retval;
                }
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_name_ex342.tree);

            }


            // OraclePLSQL.g:424:37: ( dblink_name )?
            {
                int alt114=2;
                switch ( LA(1) ) 
                {
                    case AT_SIGN:
                    	{
                    		alt114=1;
                    	}
                        break;
                }

                switch (alt114) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: dblink_name
            	    {
            	        FOLLOWPUSH(FOLLOW_dblink_name_in_call_next3692);
            	        dblink_name343=dblink_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_nextEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, dblink_name343.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:424:50: ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )?
            {
                int alt117=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case RPAREN:
                    		    case K_OUT:
                    		    case ID:
                    		    case INTEGER:
                    		    case COLON:
                    		    case MINUS:
                    		    case PLUS:
                    		    case REAL_NUMBER:
                    		    case QUOTED_STRING:
                    		    case BINDVAR:
                    		    case 127:
                    		    case 128:
                    		    case 129:
                    		    case 130:
                    		    case 157:
                    		    case 163:
                    		    case 169:
                    		    case 183:
                    		    case 184:
                    		    case 190:
                    		    case 194:
                    		    case 199:
                    		    case 200:
                    		    case 201:
                    		    case 203:
                    		    case 232:
                    		    	{
                    		    		alt117=1;
                    		    	}
                    		        break;
                    		    case LPAREN:
                    		    	{
                    		    		switch ( LA(3) ) 
                    		    		{
                    		    		    case K_OUT:
                    		    		    case ID:
                    		    		    case INTEGER:
                    		    		    case COLON:
                    		    		    case MINUS:
                    		    		    case PLUS:
                    		    		    case REAL_NUMBER:
                    		    		    case QUOTED_STRING:
                    		    		    case BINDVAR:
                    		    		    case 127:
                    		    		    case 128:
                    		    		    case 129:
                    		    		    case 130:
                    		    		    case 157:
                    		    		    case 163:
                    		    		    case 169:
                    		    		    case 183:
                    		    		    case 184:
                    		    		    case 190:
                    		    		    case 194:
                    		    		    case 199:
                    		    		    case 200:
                    		    		    case 201:
                    		    		    case 203:
                    		    		    case 232:
                    		    		    	{
                    		    		    		alt117=1;
                    		    		    	}
                    		    		        break;
                    		    		    case LPAREN:
                    		    		    	{
                    		    		    		switch ( LA(4) ) 
                    		    		    		{
                    		    		    		    case K_OUT:
                    		    		    		    case ID:
                    		    		    		    case INTEGER:
                    		    		    		    case COLON:
                    		    		    		    case MINUS:
                    		    		    		    case PLUS:
                    		    		    		    case REAL_NUMBER:
                    		    		    		    case QUOTED_STRING:
                    		    		    		    case BINDVAR:
                    		    		    		    case 127:
                    		    		    		    case 128:
                    		    		    		    case 129:
                    		    		    		    case 130:
                    		    		    		    case 157:
                    		    		    		    case 163:
                    		    		    		    case 169:
                    		    		    		    case 183:
                    		    		    		    case 184:
                    		    		    		    case 190:
                    		    		    		    case 194:
                    		    		    		    case 199:
                    		    		    		    case 200:
                    		    		    		    case 201:
                    		    		    		    case 203:
                    		    		    		    case 232:
                    		    		    		    	{
                    		    		    		    		alt117=1;
                    		    		    		    	}
                    		    		    		        break;
                    		    		    		    case LPAREN:
                    		    		    		    	{
                    		    		    		    		switch ( LA(5) ) 
                    		    		    		    		{
                    		    		    		    		    case K_OUT:
                    		    		    		    		    case ID:
                    		    		    		    		    case INTEGER:
                    		    		    		    		    case COLON:
                    		    		    		    		    case MINUS:
                    		    		    		    		    case PLUS:
                    		    		    		    		    case REAL_NUMBER:
                    		    		    		    		    case QUOTED_STRING:
                    		    		    		    		    case BINDVAR:
                    		    		    		    		    case 127:
                    		    		    		    		    case 128:
                    		    		    		    		    case 129:
                    		    		    		    		    case 130:
                    		    		    		    		    case 157:
                    		    		    		    		    case 163:
                    		    		    		    		    case 169:
                    		    		    		    		    case 183:
                    		    		    		    		    case 184:
                    		    		    		    		    case 190:
                    		    		    		    		    case 194:
                    		    		    		    		    case 199:
                    		    		    		    		    case 200:
                    		    		    		    		    case 201:
                    		    		    		    		    case 203:
                    		    		    		    		    case 232:
                    		    		    		    		    	{
                    		    		    		    		    		alt117=1;
                    		    		    		    		    	}
                    		    		    		    		        break;
                    		    		    		    		    case LPAREN:
                    		    		    		    		    	{
                    		    		    		    		    		{
                    		    		    		    		    		    int LA117_7 = LA(6);
                    		    		    		    		    		    if ( (synpred198_OraclePLSQL(ctx))) 
                    		    		    		    		    		    {
                    		    		    		    		    		        alt117=1;
                    		    		    		    		    		    }
                    		    		    		    		    		}
                    		    		    		    		    	}
                    		    		    		    		        break;
                    		    		    		    		}

                    		    		    		    	}
                    		    		    		        break;
                    		    		    		}

                    		    		    	}
                    		    		        break;
                    		    		}

                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt117) 
                {
            	case 1:
            	    // OraclePLSQL.g:424:52: LPAREN ( parameter ( COMMA parameter )* )? RPAREN
            	    {
            	        LPAREN344 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_call_next3697); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_nextEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        LPAREN344_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN344));
            	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN344_tree);
            	        }

            	        // OraclePLSQL.g:424:59: ( parameter ( COMMA parameter )* )?
            	        {
            	            int alt116=2;
            	            switch ( LA(1) ) 
            	            {
            	                case LPAREN:
            	                case K_OUT:
            	                case ID:
            	                case INTEGER:
            	                case COLON:
            	                case MINUS:
            	                case PLUS:
            	                case REAL_NUMBER:
            	                case QUOTED_STRING:
            	                case BINDVAR:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 157:
            	                case 163:
            	                case 169:
            	                case 183:
            	                case 184:
            	                case 190:
            	                case 194:
            	                case 199:
            	                case 200:
            	                case 201:
            	                case 203:
            	                case 232:
            	                	{
            	                		alt116=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt116) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:424:61: parameter ( COMMA parameter )*
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_parameter_in_call_next3701);
            	        	        parameter345=parameter(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecall_nextEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter345.tree);

            	        	        // OraclePLSQL.g:424:71: ( COMMA parameter )*

            	        	        for (;;)
            	        	        {
            	        	            int alt115=2;
            	        	            switch ( LA(1) ) 
            	        	            {
            	        	            case COMMA:
            	        	            	{
            	        	            		alt115=1;
            	        	            	}
            	        	                break;

            	        	            }

            	        	            switch (alt115) 
            	        	            {
            	        	        	case 1:
            	        	        	    // OraclePLSQL.g:424:73: COMMA parameter
            	        	        	    {
            	        	        	        COMMA346 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_call_next3705); 
            	        	        	        if  (HASEXCEPTION())
            	        	        	        {
            	        	        	            goto rulecall_nextEx;
            	        	        	        }
            	        	        	        if (HASFAILED())
            	        	        	        {
            	        	        	            return retval;
            	        	        	        }
            	        	        	        if ( BACKTRACKING==0 ) {
            	        	        	        COMMA346_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA346));
            	        	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA346_tree);
            	        	        	        }
            	        	        	        FOLLOWPUSH(FOLLOW_parameter_in_call_next3707);
            	        	        	        parameter347=parameter(ctx);

            	        	        	        FOLLOWPOP();
            	        	        	        if  (HASEXCEPTION())
            	        	        	        {
            	        	        	            goto rulecall_nextEx;
            	        	        	        }
            	        	        	        if (HASFAILED())
            	        	        	        {
            	        	        	            return retval;
            	        	        	        }
            	        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter347.tree);

            	        	        	    }
            	        	        	    break;

            	        	        	default:
            	        	        	    goto loop115;	/* break out of the loop */
            	        	        	    break;
            	        	            }
            	        	        }
            	        	        loop115: ; /* Jump out to here if this rule does not match */


            	        	    }
            	        	    break;

            	            }
            	        }
            	        RPAREN348 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_call_next3715); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_nextEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        RPAREN348_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN348));
            	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN348_tree);
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecall_nextEx; /* Prevent compiler warnings */
    rulecall_nextEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(37, call_next_StartIndex); }

    return retval;
}
/* $ANTLR end call_next */

/** 
 * $ANTLR start delete_call
 * OraclePLSQL.g:427:1: delete_call : k_delete ( LPAREN ( parameter )? RPAREN )? ;
 */
static OraclePLSQLParser_delete_call_return
delete_call(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_delete_call_return retval;
    ANTLR3_UINT32 delete_call_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN350;
    pANTLR3_COMMON_TOKEN    RPAREN352;
    OraclePLSQLParser_k_delete_return k_delete349;
    #undef	RETURN_TYPE_k_delete349
    #define	RETURN_TYPE_k_delete349 OraclePLSQLParser_k_delete_return

    OraclePLSQLParser_parameter_return parameter351;
    #undef	RETURN_TYPE_parameter351
    #define	RETURN_TYPE_parameter351 OraclePLSQLParser_parameter_return

    pANTLR3_BASE_TREE LPAREN350_tree;
    pANTLR3_BASE_TREE RPAREN352_tree;

    /* Initialize rule variables
     */
    delete_call_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(38)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN350       = NULL;
    RPAREN352       = NULL;
    k_delete349.tree = NULL;
    parameter351.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN350_tree   = NULL;
    RPAREN352_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:428:5: ( k_delete ( LPAREN ( parameter )? RPAREN )? )
        // OraclePLSQL.g:428:7: k_delete ( LPAREN ( parameter )? RPAREN )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_delete_in_delete_call3735);
            k_delete349=k_delete(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruledelete_callEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_delete349.tree);

            // OraclePLSQL.g:428:16: ( LPAREN ( parameter )? RPAREN )?
            {
                int alt119=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case RPAREN:
                    		    case K_OUT:
                    		    case ID:
                    		    case INTEGER:
                    		    case COLON:
                    		    case MINUS:
                    		    case PLUS:
                    		    case REAL_NUMBER:
                    		    case QUOTED_STRING:
                    		    case BINDVAR:
                    		    case 127:
                    		    case 128:
                    		    case 129:
                    		    case 130:
                    		    case 157:
                    		    case 163:
                    		    case 169:
                    		    case 183:
                    		    case 184:
                    		    case 190:
                    		    case 194:
                    		    case 199:
                    		    case 200:
                    		    case 201:
                    		    case 203:
                    		    case 232:
                    		    	{
                    		    		alt119=1;
                    		    	}
                    		        break;
                    		    case LPAREN:
                    		    	{
                    		    		switch ( LA(3) ) 
                    		    		{
                    		    		    case K_OUT:
                    		    		    case ID:
                    		    		    case INTEGER:
                    		    		    case COLON:
                    		    		    case MINUS:
                    		    		    case PLUS:
                    		    		    case REAL_NUMBER:
                    		    		    case QUOTED_STRING:
                    		    		    case BINDVAR:
                    		    		    case 127:
                    		    		    case 128:
                    		    		    case 129:
                    		    		    case 130:
                    		    		    case 157:
                    		    		    case 163:
                    		    		    case 169:
                    		    		    case 183:
                    		    		    case 184:
                    		    		    case 190:
                    		    		    case 194:
                    		    		    case 199:
                    		    		    case 200:
                    		    		    case 201:
                    		    		    case 203:
                    		    		    case 232:
                    		    		    	{
                    		    		    		alt119=1;
                    		    		    	}
                    		    		        break;
                    		    		    case LPAREN:
                    		    		    	{
                    		    		    		switch ( LA(4) ) 
                    		    		    		{
                    		    		    		    case K_OUT:
                    		    		    		    case ID:
                    		    		    		    case INTEGER:
                    		    		    		    case COLON:
                    		    		    		    case MINUS:
                    		    		    		    case PLUS:
                    		    		    		    case REAL_NUMBER:
                    		    		    		    case QUOTED_STRING:
                    		    		    		    case BINDVAR:
                    		    		    		    case 127:
                    		    		    		    case 128:
                    		    		    		    case 129:
                    		    		    		    case 130:
                    		    		    		    case 157:
                    		    		    		    case 163:
                    		    		    		    case 169:
                    		    		    		    case 183:
                    		    		    		    case 184:
                    		    		    		    case 190:
                    		    		    		    case 194:
                    		    		    		    case 199:
                    		    		    		    case 200:
                    		    		    		    case 201:
                    		    		    		    case 203:
                    		    		    		    case 232:
                    		    		    		    	{
                    		    		    		    		alt119=1;
                    		    		    		    	}
                    		    		    		        break;
                    		    		    		    case LPAREN:
                    		    		    		    	{
                    		    		    		    		switch ( LA(5) ) 
                    		    		    		    		{
                    		    		    		    		    case K_OUT:
                    		    		    		    		    case ID:
                    		    		    		    		    case INTEGER:
                    		    		    		    		    case COLON:
                    		    		    		    		    case MINUS:
                    		    		    		    		    case PLUS:
                    		    		    		    		    case REAL_NUMBER:
                    		    		    		    		    case QUOTED_STRING:
                    		    		    		    		    case BINDVAR:
                    		    		    		    		    case 127:
                    		    		    		    		    case 128:
                    		    		    		    		    case 129:
                    		    		    		    		    case 130:
                    		    		    		    		    case 157:
                    		    		    		    		    case 163:
                    		    		    		    		    case 169:
                    		    		    		    		    case 183:
                    		    		    		    		    case 184:
                    		    		    		    		    case 190:
                    		    		    		    		    case 194:
                    		    		    		    		    case 199:
                    		    		    		    		    case 200:
                    		    		    		    		    case 201:
                    		    		    		    		    case 203:
                    		    		    		    		    case 232:
                    		    		    		    		    	{
                    		    		    		    		    		alt119=1;
                    		    		    		    		    	}
                    		    		    		    		        break;
                    		    		    		    		    case LPAREN:
                    		    		    		    		    	{
                    		    		    		    		    		{
                    		    		    		    		    		    int LA119_7 = LA(6);
                    		    		    		    		    		    if ( (synpred200_OraclePLSQL(ctx))) 
                    		    		    		    		    		    {
                    		    		    		    		    		        alt119=1;
                    		    		    		    		    		    }
                    		    		    		    		    		}
                    		    		    		    		    	}
                    		    		    		    		        break;
                    		    		    		    		}

                    		    		    		    	}
                    		    		    		        break;
                    		    		    		}

                    		    		    	}
                    		    		        break;
                    		    		}

                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt119) 
                {
            	case 1:
            	    // OraclePLSQL.g:428:18: LPAREN ( parameter )? RPAREN
            	    {
            	        LPAREN350 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_delete_call3739); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledelete_callEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        LPAREN350_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN350));
            	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN350_tree);
            	        }

            	        // OraclePLSQL.g:428:25: ( parameter )?
            	        {
            	            int alt118=2;
            	            switch ( LA(1) ) 
            	            {
            	                case LPAREN:
            	                case K_OUT:
            	                case ID:
            	                case INTEGER:
            	                case COLON:
            	                case MINUS:
            	                case PLUS:
            	                case REAL_NUMBER:
            	                case QUOTED_STRING:
            	                case BINDVAR:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 157:
            	                case 163:
            	                case 169:
            	                case 183:
            	                case 184:
            	                case 190:
            	                case 194:
            	                case 199:
            	                case 200:
            	                case 201:
            	                case 203:
            	                case 232:
            	                	{
            	                		alt118=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt118) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: parameter
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_parameter_in_delete_call3741);
            	        	        parameter351=parameter(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruledelete_callEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter351.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        RPAREN352 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_delete_call3744); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledelete_callEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        RPAREN352_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN352));
            	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN352_tree);
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruledelete_callEx; /* Prevent compiler warnings */
    ruledelete_callEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(38, delete_call_StartIndex); }

    return retval;
}
/* $ANTLR end delete_call */

/** 
 * $ANTLR start basic_loop_statement
 * OraclePLSQL.g:431:1: basic_loop_statement : basic_loop_statement_sub -> ^( 't_loop' basic_loop_statement_sub ) ;
 */
static OraclePLSQLParser_basic_loop_statement_return
basic_loop_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_basic_loop_statement_return retval;
    ANTLR3_UINT32 basic_loop_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_basic_loop_statement_sub_return basic_loop_statement_sub353;
    #undef	RETURN_TYPE_basic_loop_statement_sub353
    #define	RETURN_TYPE_basic_loop_statement_sub353 OraclePLSQLParser_basic_loop_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_basic_loop_statement_sub;
    /* Initialize rule variables
     */
    basic_loop_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(39)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    basic_loop_statement_sub353.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_basic_loop_statement_sub   = NULL;
    #define CREATE_stream_basic_loop_statement_sub  if (stream_basic_loop_statement_sub == NULL) {stream_basic_loop_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule basic_loop_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:431:22: ( basic_loop_statement_sub -> ^( 't_loop' basic_loop_statement_sub ) )
        // OraclePLSQL.g:431:24: basic_loop_statement_sub
        {
            FOLLOWPUSH(FOLLOW_basic_loop_statement_sub_in_basic_loop_statement3760);
            basic_loop_statement_sub353=basic_loop_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebasic_loop_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_basic_loop_statement_sub; stream_basic_loop_statement_sub->add(stream_basic_loop_statement_sub, basic_loop_statement_sub353.tree, NULL); }

             
            /* AST REWRITE
             * elements          : basic_loop_statement_sub, T_LOOP
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 431:49: -> ^( 't_loop' basic_loop_statement_sub )
            	{
            	    // OraclePLSQL.g:431:51: ^( 't_loop' basic_loop_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_LOOP, (pANTLR3_UINT8)"T_LOOP"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_basic_loop_statement_sub == NULL ? NULL : stream_basic_loop_statement_sub->nextTree(stream_basic_loop_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulebasic_loop_statementEx; /* Prevent compiler warnings */
    rulebasic_loop_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_basic_loop_statement_sub != NULL) stream_basic_loop_statement_sub->free(stream_basic_loop_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(39, basic_loop_statement_StartIndex); }

    return retval;
}
/* $ANTLR end basic_loop_statement */

/** 
 * $ANTLR start basic_loop_statement_sub
 * OraclePLSQL.g:432:1: basic_loop_statement_sub : k_loop ( statement )+ k_end k_loop ( label_name )? ;
 */
static OraclePLSQLParser_basic_loop_statement_sub_return
basic_loop_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_basic_loop_statement_sub_return retval;
    ANTLR3_UINT32 basic_loop_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_loop_return k_loop354;
    #undef	RETURN_TYPE_k_loop354
    #define	RETURN_TYPE_k_loop354 OraclePLSQLParser_k_loop_return

    OraclePLSQLParser_statement_return statement355;
    #undef	RETURN_TYPE_statement355
    #define	RETURN_TYPE_statement355 OraclePLSQLParser_statement_return

    OraclePLSQLParser_k_end_return k_end356;
    #undef	RETURN_TYPE_k_end356
    #define	RETURN_TYPE_k_end356 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_k_loop_return k_loop357;
    #undef	RETURN_TYPE_k_loop357
    #define	RETURN_TYPE_k_loop357 OraclePLSQLParser_k_loop_return

    OraclePLSQLParser_label_name_return label_name358;
    #undef	RETURN_TYPE_label_name358
    #define	RETURN_TYPE_label_name358 OraclePLSQLParser_label_name_return


    /* Initialize rule variables
     */
    basic_loop_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(40)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_loop354.tree = NULL;
    statement355.tree = NULL;
    k_end356.tree = NULL;
    k_loop357.tree = NULL;
    label_name358.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:432:26: ( k_loop ( statement )+ k_end k_loop ( label_name )? )
        // OraclePLSQL.g:432:28: k_loop ( statement )+ k_end k_loop ( label_name )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_loop_in_basic_loop_statement_sub3774);
            k_loop354=k_loop(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebasic_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_loop354.tree);
            // OraclePLSQL.g:432:35: ( statement )+
            {
                int cnt120=0;

                for (;;)
                {
                    int alt120=2;
            	switch ( LA(1) ) 
            	{
            	case LPAREN:
            	case K_OUT:
            	case ID:
            	case LLABEL:
            	case COLON:
            	case BINDVAR:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 133:
            	case 134:
            	case 135:
            	case 138:
            	case 139:
            	case 144:
            	case 148:
            	case 157:
            	case 161:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 176:
            	case 181:
            	case 184:
            	case 187:
            	case 188:
            	case 189:
            	case 197:
            	case 198:
            	case 205:
            	case 207:
            	case 213:
            	case 216:
            	case 221:
            	case 228:
            		{
            			alt120=1;
            		}
            	    break;

            	}

            	switch (alt120) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: statement
            	        {
            	            FOLLOWPUSH(FOLLOW_statement_in_basic_loop_statement_sub3776);
            	            statement355=statement(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulebasic_loop_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, statement355.tree);

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt120 >= 1 )
            		{
            		    goto loop120;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto rulebasic_loop_statement_subEx;
            	}
            	cnt120++;
                }
                loop120: ;	/* Jump to here if this rule does not match */
            }
            FOLLOWPUSH(FOLLOW_k_end_in_basic_loop_statement_sub3779);
            k_end356=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebasic_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end356.tree);
            FOLLOWPUSH(FOLLOW_k_loop_in_basic_loop_statement_sub3781);
            k_loop357=k_loop(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebasic_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_loop357.tree);

            // OraclePLSQL.g:432:59: ( label_name )?
            {
                int alt121=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt121=1;
                    	}
                        break;
                }

                switch (alt121) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: label_name
            	    {
            	        FOLLOWPUSH(FOLLOW_label_name_in_basic_loop_statement_sub3783);
            	        label_name358=label_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebasic_loop_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, label_name358.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulebasic_loop_statement_subEx; /* Prevent compiler warnings */
    rulebasic_loop_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(40, basic_loop_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end basic_loop_statement_sub */

/** 
 * $ANTLR start case_statement
 * OraclePLSQL.g:434:1: case_statement : case_statement_sub -> ^( 't_case' case_statement_sub ) ;
 */
static OraclePLSQLParser_case_statement_return
case_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_case_statement_return retval;
    ANTLR3_UINT32 case_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_case_statement_sub_return case_statement_sub359;
    #undef	RETURN_TYPE_case_statement_sub359
    #define	RETURN_TYPE_case_statement_sub359 OraclePLSQLParser_case_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_case_statement_sub;
    /* Initialize rule variables
     */
    case_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(41)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    case_statement_sub359.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_case_statement_sub   = NULL;
    #define CREATE_stream_case_statement_sub  if (stream_case_statement_sub == NULL) {stream_case_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule case_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:434:16: ( case_statement_sub -> ^( 't_case' case_statement_sub ) )
        // OraclePLSQL.g:434:18: case_statement_sub
        {
            FOLLOWPUSH(FOLLOW_case_statement_sub_in_case_statement3793);
            case_statement_sub359=case_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecase_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_case_statement_sub; stream_case_statement_sub->add(stream_case_statement_sub, case_statement_sub359.tree, NULL); }

             
            /* AST REWRITE
             * elements          : case_statement_sub, T_CASE
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 434:37: -> ^( 't_case' case_statement_sub )
            	{
            	    // OraclePLSQL.g:434:39: ^( 't_case' case_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CASE, (pANTLR3_UINT8)"T_CASE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_case_statement_sub == NULL ? NULL : stream_case_statement_sub->nextTree(stream_case_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecase_statementEx; /* Prevent compiler warnings */
    rulecase_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_case_statement_sub != NULL) stream_case_statement_sub->free(stream_case_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(41, case_statement_StartIndex); }

    return retval;
}
/* $ANTLR end case_statement */

/** 
 * $ANTLR start case_statement_sub
 * OraclePLSQL.g:435:1: case_statement_sub : k_case ( expression )? ( k_when expression k_then ( ( statement )+ | expression ) )+ ( k_else ( ( statement )+ | expression ) )? k_end ( k_case )? ;
 */
static OraclePLSQLParser_case_statement_sub_return
case_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_case_statement_sub_return retval;
    ANTLR3_UINT32 case_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_case_return k_case360;
    #undef	RETURN_TYPE_k_case360
    #define	RETURN_TYPE_k_case360 OraclePLSQLParser_k_case_return

    OraclePLSQLParser_expression_return expression361;
    #undef	RETURN_TYPE_expression361
    #define	RETURN_TYPE_expression361 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_when_return k_when362;
    #undef	RETURN_TYPE_k_when362
    #define	RETURN_TYPE_k_when362 OraclePLSQLParser_k_when_return

    OraclePLSQLParser_expression_return expression363;
    #undef	RETURN_TYPE_expression363
    #define	RETURN_TYPE_expression363 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_then_return k_then364;
    #undef	RETURN_TYPE_k_then364
    #define	RETURN_TYPE_k_then364 OraclePLSQLParser_k_then_return

    OraclePLSQLParser_statement_return statement365;
    #undef	RETURN_TYPE_statement365
    #define	RETURN_TYPE_statement365 OraclePLSQLParser_statement_return

    OraclePLSQLParser_expression_return expression366;
    #undef	RETURN_TYPE_expression366
    #define	RETURN_TYPE_expression366 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_else_return k_else367;
    #undef	RETURN_TYPE_k_else367
    #define	RETURN_TYPE_k_else367 OraclePLSQLParser_k_else_return

    OraclePLSQLParser_statement_return statement368;
    #undef	RETURN_TYPE_statement368
    #define	RETURN_TYPE_statement368 OraclePLSQLParser_statement_return

    OraclePLSQLParser_expression_return expression369;
    #undef	RETURN_TYPE_expression369
    #define	RETURN_TYPE_expression369 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_end_return k_end370;
    #undef	RETURN_TYPE_k_end370
    #define	RETURN_TYPE_k_end370 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_k_case_return k_case371;
    #undef	RETURN_TYPE_k_case371
    #define	RETURN_TYPE_k_case371 OraclePLSQLParser_k_case_return


    /* Initialize rule variables
     */
    case_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(42)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_case360.tree = NULL;
    expression361.tree = NULL;
    k_when362.tree = NULL;
    expression363.tree = NULL;
    k_then364.tree = NULL;
    statement365.tree = NULL;
    expression366.tree = NULL;
    k_else367.tree = NULL;
    statement368.tree = NULL;
    expression369.tree = NULL;
    k_end370.tree = NULL;
    k_case371.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:435:20: ( k_case ( expression )? ( k_when expression k_then ( ( statement )+ | expression ) )+ ( k_else ( ( statement )+ | expression ) )? k_end ( k_case )? )
        // OraclePLSQL.g:436:9: k_case ( expression )? ( k_when expression k_then ( ( statement )+ | expression ) )+ ( k_else ( ( statement )+ | expression ) )? k_end ( k_case )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_case_in_case_statement_sub3815);
            k_case360=k_case(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecase_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_case360.tree);

            // OraclePLSQL.g:436:16: ( expression )?
            {
                int alt122=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    case K_OUT:
                    case ID:
                    case INTEGER:
                    case COLON:
                    case MINUS:
                    case PLUS:
                    case REAL_NUMBER:
                    case QUOTED_STRING:
                    case BINDVAR:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 157:
                    case 163:
                    case 169:
                    case 183:
                    case 184:
                    case 190:
                    case 194:
                    case 199:
                    case 200:
                    case 201:
                    case 203:
                    case 232:
                    	{
                    		alt122=1;
                    	}
                        break;
                }

                switch (alt122) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: expression
            	    {
            	        FOLLOWPUSH(FOLLOW_expression_in_case_statement_sub3817);
            	        expression361=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecase_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression361.tree);

            	    }
            	    break;

                }
            }
            // OraclePLSQL.g:437:9: ( k_when expression k_then ( ( statement )+ | expression ) )+
            {
                int cnt125=0;

                for (;;)
                {
                    int alt125=2;
            	switch ( LA(1) ) 
            	{
            	case 236:
            		{
            			alt125=1;
            		}
            	    break;

            	}

            	switch (alt125) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:437:11: k_when expression k_then ( ( statement )+ | expression )
            	        {
            	            FOLLOWPUSH(FOLLOW_k_when_in_case_statement_sub3830);
            	            k_when362=k_when(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulecase_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_when362.tree);
            	            FOLLOWPUSH(FOLLOW_expression_in_case_statement_sub3832);
            	            expression363=expression(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulecase_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression363.tree);
            	            FOLLOWPUSH(FOLLOW_k_then_in_case_statement_sub3834);
            	            k_then364=k_then(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulecase_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_then364.tree);

            	            // OraclePLSQL.g:437:36: ( ( statement )+ | expression )
            	            {
            	                int alt124=2;
            	                switch ( LA(1) ) 
            	                {
            	                case LLABEL:
            	                case 126:
            	                case 131:
            	                case 133:
            	                case 134:
            	                case 135:
            	                case 138:
            	                case 139:
            	                case 144:
            	                case 148:
            	                case 161:
            	                case 170:
            	                case 171:
            	                case 172:
            	                case 173:
            	                case 174:
            	                case 176:
            	                case 181:
            	                case 187:
            	                case 188:
            	                case 189:
            	                case 197:
            	                case 198:
            	                case 205:
            	                case 207:
            	                case 213:
            	                case 216:
            	                case 221:
            	                case 228:
            	                	{
            	                		alt124=1;
            	                	}
            	                    break;
            	                case 157:
            	                	{

            	                		{
            	                		    int LA124_4 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 4;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case 184:
            	                	{

            	                		{
            	                		    int LA124_18 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 18;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case LPAREN:
            	                	{

            	                		{
            	                		    int LA124_27 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 27;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case BINDVAR:
            	                	{

            	                		{
            	                		    int LA124_33 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 33;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case COLON:
            	                	{

            	                		{
            	                		    int LA124_34 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 34;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case ID:
            	                	{

            	                		{
            	                		    int LA124_35 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 35;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case 127:
            	                	{

            	                		{
            	                		    int LA124_36 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 36;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case 128:
            	                	{

            	                		{
            	                		    int LA124_37 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 37;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case K_OUT:
            	                	{

            	                		{
            	                		    int LA124_38 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 38;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case 129:
            	                	{

            	                		{
            	                		    int LA124_39 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 39;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case 130:
            	                	{

            	                		{
            	                		    int LA124_40 = LA(2);
            	                		    if ( (synpred205_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt124=1;
            	                		    }
            	                		    else if ( (ANTLR3_TRUE)) 
            	                		    {
            	                		        alt124=2;
            	                		    }
            	                		    else 
            	                		    {
            	                		        if (BACKTRACKING>0)
            	                		        {
            	                		            FAILEDFLAG = ANTLR3_TRUE;
            	                		            return retval;
            	                		        }
            	                		    
            	                		        CONSTRUCTEX();
            	                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                		        EXCEPTION->message      = (void *)"";
            	                		        EXCEPTION->decisionNum  = 124;
            	                		        EXCEPTION->state        = 40;


            	                		        goto rulecase_statement_subEx;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	                case INTEGER:
            	                case MINUS:
            	                case PLUS:
            	                case REAL_NUMBER:
            	                case QUOTED_STRING:
            	                case 163:
            	                case 169:
            	                case 183:
            	                case 190:
            	                case 194:
            	                case 199:
            	                case 200:
            	                case 201:
            	                case 203:
            	                case 232:
            	                	{
            	                		alt124=2;
            	                	}
            	                    break;

            	                default:
            	                    if (BACKTRACKING>0)
            	                    {
            	                        FAILEDFLAG = ANTLR3_TRUE;
            	                        return retval;
            	                    }
            	                    CONSTRUCTEX();
            	                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                    EXCEPTION->message      = (void *)"";
            	                    EXCEPTION->decisionNum  = 124;
            	                    EXCEPTION->state        = 0;


            	                    goto rulecase_statement_subEx;
            	                }

            	                switch (alt124) 
            	                {
            	            	case 1:
            	            	    // OraclePLSQL.g:437:38: ( statement )+
            	            	    {
            	            	        // OraclePLSQL.g:437:38: ( statement )+
            	            	        {
            	            	            int cnt123=0;

            	            	            for (;;)
            	            	            {
            	            	                int alt123=2;
            	            	        	switch ( LA(1) ) 
            	            	        	{
            	            	        	case LPAREN:
            	            	        	case K_OUT:
            	            	        	case ID:
            	            	        	case LLABEL:
            	            	        	case COLON:
            	            	        	case BINDVAR:
            	            	        	case 126:
            	            	        	case 127:
            	            	        	case 128:
            	            	        	case 129:
            	            	        	case 130:
            	            	        	case 131:
            	            	        	case 133:
            	            	        	case 134:
            	            	        	case 135:
            	            	        	case 138:
            	            	        	case 139:
            	            	        	case 144:
            	            	        	case 148:
            	            	        	case 157:
            	            	        	case 161:
            	            	        	case 170:
            	            	        	case 171:
            	            	        	case 172:
            	            	        	case 173:
            	            	        	case 174:
            	            	        	case 176:
            	            	        	case 181:
            	            	        	case 184:
            	            	        	case 187:
            	            	        	case 188:
            	            	        	case 189:
            	            	        	case 197:
            	            	        	case 198:
            	            	        	case 205:
            	            	        	case 207:
            	            	        	case 213:
            	            	        	case 216:
            	            	        	case 221:
            	            	        	case 228:
            	            	        		{
            	            	        			alt123=1;
            	            	        		}
            	            	        	    break;

            	            	        	}

            	            	        	switch (alt123) 
            	            	        	{
            	            	        	    case 1:
            	            	        	        // OraclePLSQL.g:0:0: statement
            	            	        	        {
            	            	        	            FOLLOWPUSH(FOLLOW_statement_in_case_statement_sub3838);
            	            	        	            statement365=statement(ctx);

            	            	        	            FOLLOWPOP();
            	            	        	            if  (HASEXCEPTION())
            	            	        	            {
            	            	        	                goto rulecase_statement_subEx;
            	            	        	            }
            	            	        	            if (HASFAILED())
            	            	        	            {
            	            	        	                return retval;
            	            	        	            }
            	            	        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, statement365.tree);

            	            	        	        }
            	            	        	        break;

            	            	        	    default:
            	            	        	    
            	            	        		if ( cnt123 >= 1 )
            	            	        		{
            	            	        		    goto loop123;
            	            	        		}
            	            	        		if (BACKTRACKING>0)
            	            	        		{
            	            	        		    FAILEDFLAG = ANTLR3_TRUE;
            	            	        		    return retval;
            	            	        		}
            	            	        		/* mismatchedSetEx()
            	            	        		 */
            	            	        		CONSTRUCTEX();
            	            	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            	            	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            	            	        		goto rulecase_statement_subEx;
            	            	        	}
            	            	        	cnt123++;
            	            	            }
            	            	            loop123: ;	/* Jump to here if this rule does not match */
            	            	        }

            	            	    }
            	            	    break;
            	            	case 2:
            	            	    // OraclePLSQL.g:437:51: expression
            	            	    {
            	            	        FOLLOWPUSH(FOLLOW_expression_in_case_statement_sub3843);
            	            	        expression366=expression(ctx);

            	            	        FOLLOWPOP();
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto rulecase_statement_subEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression366.tree);

            	            	    }
            	            	    break;

            	                }
            	            }

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt125 >= 1 )
            		{
            		    goto loop125;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto rulecase_statement_subEx;
            	}
            	cnt125++;
                }
                loop125: ;	/* Jump to here if this rule does not match */
            }

            // OraclePLSQL.g:438:9: ( k_else ( ( statement )+ | expression ) )?
            {
                int alt128=2;
                switch ( LA(1) ) 
                {
                    case 166:
                    	{
                    		alt128=1;
                    	}
                        break;
                }

                switch (alt128) 
                {
            	case 1:
            	    // OraclePLSQL.g:438:11: k_else ( ( statement )+ | expression )
            	    {
            	        FOLLOWPUSH(FOLLOW_k_else_in_case_statement_sub3859);
            	        k_else367=k_else(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecase_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_else367.tree);

            	        // OraclePLSQL.g:438:18: ( ( statement )+ | expression )
            	        {
            	            int alt127=2;
            	            switch ( LA(1) ) 
            	            {
            	            case LLABEL:
            	            case 126:
            	            case 131:
            	            case 133:
            	            case 134:
            	            case 135:
            	            case 138:
            	            case 139:
            	            case 144:
            	            case 148:
            	            case 161:
            	            case 170:
            	            case 171:
            	            case 172:
            	            case 173:
            	            case 174:
            	            case 176:
            	            case 181:
            	            case 187:
            	            case 188:
            	            case 189:
            	            case 197:
            	            case 198:
            	            case 205:
            	            case 207:
            	            case 213:
            	            case 216:
            	            case 221:
            	            case 228:
            	            	{
            	            		alt127=1;
            	            	}
            	                break;
            	            case 157:
            	            	{

            	            		{
            	            		    int LA127_4 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 4;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case 184:
            	            	{

            	            		{
            	            		    int LA127_18 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 18;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case LPAREN:
            	            	{

            	            		{
            	            		    int LA127_27 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 27;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case BINDVAR:
            	            	{

            	            		{
            	            		    int LA127_33 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 33;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case COLON:
            	            	{

            	            		{
            	            		    int LA127_34 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 34;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case ID:
            	            	{

            	            		{
            	            		    int LA127_35 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 35;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case 127:
            	            	{

            	            		{
            	            		    int LA127_36 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 36;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case 128:
            	            	{

            	            		{
            	            		    int LA127_37 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 37;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case K_OUT:
            	            	{

            	            		{
            	            		    int LA127_38 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 38;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case 129:
            	            	{

            	            		{
            	            		    int LA127_39 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 39;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case 130:
            	            	{

            	            		{
            	            		    int LA127_40 = LA(2);
            	            		    if ( (synpred208_OraclePLSQL(ctx))) 
            	            		    {
            	            		        alt127=1;
            	            		    }
            	            		    else if ( (ANTLR3_TRUE)) 
            	            		    {
            	            		        alt127=2;
            	            		    }
            	            		    else 
            	            		    {
            	            		        if (BACKTRACKING>0)
            	            		        {
            	            		            FAILEDFLAG = ANTLR3_TRUE;
            	            		            return retval;
            	            		        }
            	            		    
            	            		        CONSTRUCTEX();
            	            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		        EXCEPTION->message      = (void *)"";
            	            		        EXCEPTION->decisionNum  = 127;
            	            		        EXCEPTION->state        = 40;


            	            		        goto rulecase_statement_subEx;
            	            		    }
            	            		}
            	            	}
            	                break;
            	            case INTEGER:
            	            case MINUS:
            	            case PLUS:
            	            case REAL_NUMBER:
            	            case QUOTED_STRING:
            	            case 163:
            	            case 169:
            	            case 183:
            	            case 190:
            	            case 194:
            	            case 199:
            	            case 200:
            	            case 201:
            	            case 203:
            	            case 232:
            	            	{
            	            		alt127=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 127;
            	                EXCEPTION->state        = 0;


            	                goto rulecase_statement_subEx;
            	            }

            	            switch (alt127) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:438:20: ( statement )+
            	        	    {
            	        	        // OraclePLSQL.g:438:20: ( statement )+
            	        	        {
            	        	            int cnt126=0;

            	        	            for (;;)
            	        	            {
            	        	                int alt126=2;
            	        	        	switch ( LA(1) ) 
            	        	        	{
            	        	        	case LPAREN:
            	        	        	case K_OUT:
            	        	        	case ID:
            	        	        	case LLABEL:
            	        	        	case COLON:
            	        	        	case BINDVAR:
            	        	        	case 126:
            	        	        	case 127:
            	        	        	case 128:
            	        	        	case 129:
            	        	        	case 130:
            	        	        	case 131:
            	        	        	case 133:
            	        	        	case 134:
            	        	        	case 135:
            	        	        	case 138:
            	        	        	case 139:
            	        	        	case 144:
            	        	        	case 148:
            	        	        	case 157:
            	        	        	case 161:
            	        	        	case 170:
            	        	        	case 171:
            	        	        	case 172:
            	        	        	case 173:
            	        	        	case 174:
            	        	        	case 176:
            	        	        	case 181:
            	        	        	case 184:
            	        	        	case 187:
            	        	        	case 188:
            	        	        	case 189:
            	        	        	case 197:
            	        	        	case 198:
            	        	        	case 205:
            	        	        	case 207:
            	        	        	case 213:
            	        	        	case 216:
            	        	        	case 221:
            	        	        	case 228:
            	        	        		{
            	        	        			alt126=1;
            	        	        		}
            	        	        	    break;

            	        	        	}

            	        	        	switch (alt126) 
            	        	        	{
            	        	        	    case 1:
            	        	        	        // OraclePLSQL.g:0:0: statement
            	        	        	        {
            	        	        	            FOLLOWPUSH(FOLLOW_statement_in_case_statement_sub3863);
            	        	        	            statement368=statement(ctx);

            	        	        	            FOLLOWPOP();
            	        	        	            if  (HASEXCEPTION())
            	        	        	            {
            	        	        	                goto rulecase_statement_subEx;
            	        	        	            }
            	        	        	            if (HASFAILED())
            	        	        	            {
            	        	        	                return retval;
            	        	        	            }
            	        	        	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, statement368.tree);

            	        	        	        }
            	        	        	        break;

            	        	        	    default:
            	        	        	    
            	        	        		if ( cnt126 >= 1 )
            	        	        		{
            	        	        		    goto loop126;
            	        	        		}
            	        	        		if (BACKTRACKING>0)
            	        	        		{
            	        	        		    FAILEDFLAG = ANTLR3_TRUE;
            	        	        		    return retval;
            	        	        		}
            	        	        		/* mismatchedSetEx()
            	        	        		 */
            	        	        		CONSTRUCTEX();
            	        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            	        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            	        	        		goto rulecase_statement_subEx;
            	        	        	}
            	        	        	cnt126++;
            	        	            }
            	        	            loop126: ;	/* Jump to here if this rule does not match */
            	        	        }

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:438:33: expression
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_expression_in_case_statement_sub3868);
            	        	        expression369=expression(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecase_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression369.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_end_in_case_statement_sub3882);
            k_end370=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecase_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end370.tree);

            // OraclePLSQL.g:439:15: ( k_case )?
            {
                int alt129=2;
                switch ( LA(1) ) 
                {
                    case 157:
                    	{
                    		alt129=1;
                    	}
                        break;
                }

                switch (alt129) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: k_case
            	    {
            	        FOLLOWPUSH(FOLLOW_k_case_in_case_statement_sub3884);
            	        k_case371=k_case(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecase_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_case371.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecase_statement_subEx; /* Prevent compiler warnings */
    rulecase_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(42, case_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end case_statement_sub */

/** 
 * $ANTLR start close_statement
 * OraclePLSQL.g:442:1: close_statement : close_statement_sub -> ^( 't_close' close_statement_sub ) ;
 */
static OraclePLSQLParser_close_statement_return
close_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_close_statement_return retval;
    ANTLR3_UINT32 close_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_close_statement_sub_return close_statement_sub372;
    #undef	RETURN_TYPE_close_statement_sub372
    #define	RETURN_TYPE_close_statement_sub372 OraclePLSQLParser_close_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_close_statement_sub;
    /* Initialize rule variables
     */
    close_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(43)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    close_statement_sub372.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_close_statement_sub   = NULL;
    #define CREATE_stream_close_statement_sub  if (stream_close_statement_sub == NULL) {stream_close_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule close_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:442:17: ( close_statement_sub -> ^( 't_close' close_statement_sub ) )
        // OraclePLSQL.g:442:19: close_statement_sub
        {
            FOLLOWPUSH(FOLLOW_close_statement_sub_in_close_statement3898);
            close_statement_sub372=close_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleclose_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_close_statement_sub; stream_close_statement_sub->add(stream_close_statement_sub, close_statement_sub372.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_CLOSE, close_statement_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 442:39: -> ^( 't_close' close_statement_sub )
            	{
            	    // OraclePLSQL.g:442:41: ^( 't_close' close_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CLOSE, (pANTLR3_UINT8)"T_CLOSE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_close_statement_sub == NULL ? NULL : stream_close_statement_sub->nextTree(stream_close_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleclose_statementEx; /* Prevent compiler warnings */
    ruleclose_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_close_statement_sub != NULL) stream_close_statement_sub->free(stream_close_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(43, close_statement_StartIndex); }

    return retval;
}
/* $ANTLR end close_statement */

/** 
 * $ANTLR start close_statement_sub
 * OraclePLSQL.g:443:1: close_statement_sub : k_close cursor_name ;
 */
static OraclePLSQLParser_close_statement_sub_return
close_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_close_statement_sub_return retval;
    ANTLR3_UINT32 close_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_close_return k_close373;
    #undef	RETURN_TYPE_k_close373
    #define	RETURN_TYPE_k_close373 OraclePLSQLParser_k_close_return

    OraclePLSQLParser_cursor_name_return cursor_name374;
    #undef	RETURN_TYPE_cursor_name374
    #define	RETURN_TYPE_cursor_name374 OraclePLSQLParser_cursor_name_return


    /* Initialize rule variables
     */
    close_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(44)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_close373.tree = NULL;
    cursor_name374.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:443:21: ( k_close cursor_name )
        // OraclePLSQL.g:443:23: k_close cursor_name
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_close_in_close_statement_sub3912);
            k_close373=k_close(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleclose_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_close373.tree);
            FOLLOWPUSH(FOLLOW_cursor_name_in_close_statement_sub3914);
            cursor_name374=cursor_name(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleclose_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, cursor_name374.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleclose_statement_subEx; /* Prevent compiler warnings */
    ruleclose_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(44, close_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end close_statement_sub */

/** 
 * $ANTLR start continue_statement
 * OraclePLSQL.g:445:1: continue_statement : continue_statement_sub -> ^( 't_continue' continue_statement_sub ) ;
 */
static OraclePLSQLParser_continue_statement_return
continue_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_continue_statement_return retval;
    ANTLR3_UINT32 continue_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_continue_statement_sub_return continue_statement_sub375;
    #undef	RETURN_TYPE_continue_statement_sub375
    #define	RETURN_TYPE_continue_statement_sub375 OraclePLSQLParser_continue_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_continue_statement_sub;
    /* Initialize rule variables
     */
    continue_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(45)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    continue_statement_sub375.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_continue_statement_sub   = NULL;
    #define CREATE_stream_continue_statement_sub  if (stream_continue_statement_sub == NULL) {stream_continue_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule continue_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:445:19: ( continue_statement_sub -> ^( 't_continue' continue_statement_sub ) )
        // OraclePLSQL.g:445:21: continue_statement_sub
        {
            FOLLOWPUSH(FOLLOW_continue_statement_sub_in_continue_statement3922);
            continue_statement_sub375=continue_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecontinue_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_continue_statement_sub; stream_continue_statement_sub->add(stream_continue_statement_sub, continue_statement_sub375.tree, NULL); }

             
            /* AST REWRITE
             * elements          : continue_statement_sub, T_CONTINUE
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 445:44: -> ^( 't_continue' continue_statement_sub )
            	{
            	    // OraclePLSQL.g:445:46: ^( 't_continue' continue_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_CONTINUE, (pANTLR3_UINT8)"T_CONTINUE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_continue_statement_sub == NULL ? NULL : stream_continue_statement_sub->nextTree(stream_continue_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecontinue_statementEx; /* Prevent compiler warnings */
    rulecontinue_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_continue_statement_sub != NULL) stream_continue_statement_sub->free(stream_continue_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(45, continue_statement_StartIndex); }

    return retval;
}
/* $ANTLR end continue_statement */

/** 
 * $ANTLR start continue_statement_sub
 * OraclePLSQL.g:446:1: continue_statement_sub : k_continue (lbl= ID )? ( k_when expression )? ;
 */
static OraclePLSQLParser_continue_statement_sub_return
continue_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_continue_statement_sub_return retval;
    ANTLR3_UINT32 continue_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    lbl;
    OraclePLSQLParser_k_continue_return k_continue376;
    #undef	RETURN_TYPE_k_continue376
    #define	RETURN_TYPE_k_continue376 OraclePLSQLParser_k_continue_return

    OraclePLSQLParser_k_when_return k_when377;
    #undef	RETURN_TYPE_k_when377
    #define	RETURN_TYPE_k_when377 OraclePLSQLParser_k_when_return

    OraclePLSQLParser_expression_return expression378;
    #undef	RETURN_TYPE_expression378
    #define	RETURN_TYPE_expression378 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE lbl_tree;

    /* Initialize rule variables
     */
    continue_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(46)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    lbl       = NULL;
    k_continue376.tree = NULL;
    k_when377.tree = NULL;
    expression378.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    lbl_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:446:24: ( k_continue (lbl= ID )? ( k_when expression )? )
        // OraclePLSQL.g:446:26: k_continue (lbl= ID )? ( k_when expression )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_continue_in_continue_statement_sub3936);
            k_continue376=k_continue(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecontinue_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_continue376.tree);

            // OraclePLSQL.g:446:37: (lbl= ID )?
            {
                int alt130=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt130=1;
                    	}
                        break;
                }

                switch (alt130) 
                {
            	case 1:
            	    // OraclePLSQL.g:446:39: lbl= ID
            	    {
            	        lbl = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_continue_statement_sub3942); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecontinue_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        lbl_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, lbl));
            	        ADAPTOR->addChild(ADAPTOR, root_0, lbl_tree);
            	        }

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:446:49: ( k_when expression )?
            {
                int alt131=2;
                switch ( LA(1) ) 
                {
                    case 236:
                    	{
                    		alt131=1;
                    	}
                        break;
                }

                switch (alt131) 
                {
            	case 1:
            	    // OraclePLSQL.g:446:51: k_when expression
            	    {
            	        FOLLOWPUSH(FOLLOW_k_when_in_continue_statement_sub3949);
            	        k_when377=k_when(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecontinue_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_when377.tree);
            	        FOLLOWPUSH(FOLLOW_expression_in_continue_statement_sub3951);
            	        expression378=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecontinue_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression378.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecontinue_statement_subEx; /* Prevent compiler warnings */
    rulecontinue_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(46, continue_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end continue_statement_sub */

/** 
 * $ANTLR start execute_immediate_statement
 * OraclePLSQL.g:448:1: execute_immediate_statement : execute_immediate_statement_sub -> ^( 't_execute_immediate' execute_immediate_statement_sub ) ;
 */
static OraclePLSQLParser_execute_immediate_statement_return
execute_immediate_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_execute_immediate_statement_return retval;
    ANTLR3_UINT32 execute_immediate_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_execute_immediate_statement_sub_return execute_immediate_statement_sub379;
    #undef	RETURN_TYPE_execute_immediate_statement_sub379
    #define	RETURN_TYPE_execute_immediate_statement_sub379 OraclePLSQLParser_execute_immediate_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_execute_immediate_statement_sub;
    /* Initialize rule variables
     */
    execute_immediate_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(47)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    execute_immediate_statement_sub379.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_execute_immediate_statement_sub   = NULL;
    #define CREATE_stream_execute_immediate_statement_sub  if (stream_execute_immediate_statement_sub == NULL) {stream_execute_immediate_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule execute_immediate_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:448:29: ( execute_immediate_statement_sub -> ^( 't_execute_immediate' execute_immediate_statement_sub ) )
        // OraclePLSQL.g:448:31: execute_immediate_statement_sub
        {
            FOLLOWPUSH(FOLLOW_execute_immediate_statement_sub_in_execute_immediate_statement3963);
            execute_immediate_statement_sub379=execute_immediate_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexecute_immediate_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_execute_immediate_statement_sub; stream_execute_immediate_statement_sub->add(stream_execute_immediate_statement_sub, execute_immediate_statement_sub379.tree, NULL); }

             
            /* AST REWRITE
             * elements          : execute_immediate_statement_sub, T_EXECUTE_IMMEDIATE
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 448:63: -> ^( 't_execute_immediate' execute_immediate_statement_sub )
            	{
            	    // OraclePLSQL.g:448:65: ^( 't_execute_immediate' execute_immediate_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_EXECUTE_IMMEDIATE, (pANTLR3_UINT8)"T_EXECUTE_IMMEDIATE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_execute_immediate_statement_sub == NULL ? NULL : stream_execute_immediate_statement_sub->nextTree(stream_execute_immediate_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexecute_immediate_statementEx; /* Prevent compiler warnings */
    ruleexecute_immediate_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_execute_immediate_statement_sub != NULL) stream_execute_immediate_statement_sub->free(stream_execute_immediate_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(47, execute_immediate_statement_StartIndex); }

    return retval;
}
/* $ANTLR end execute_immediate_statement */

/** 
 * $ANTLR start execute_immediate_statement_sub
 * OraclePLSQL.g:449:1: execute_immediate_statement_sub : k_execute k_immediate expression ( ( into_clause | bulk_collect_into_clause ) ( using_clause )? | using_clause ( dynamic_returning_clause )? | dynamic_returning_clause )? ;
 */
static OraclePLSQLParser_execute_immediate_statement_sub_return
execute_immediate_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_execute_immediate_statement_sub_return retval;
    ANTLR3_UINT32 execute_immediate_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_execute_return k_execute380;
    #undef	RETURN_TYPE_k_execute380
    #define	RETURN_TYPE_k_execute380 OraclePLSQLParser_k_execute_return

    OraclePLSQLParser_k_immediate_return k_immediate381;
    #undef	RETURN_TYPE_k_immediate381
    #define	RETURN_TYPE_k_immediate381 OraclePLSQLParser_k_immediate_return

    OraclePLSQLParser_expression_return expression382;
    #undef	RETURN_TYPE_expression382
    #define	RETURN_TYPE_expression382 OraclePLSQLParser_expression_return

    OraclePLSQLParser_into_clause_return into_clause383;
    #undef	RETURN_TYPE_into_clause383
    #define	RETURN_TYPE_into_clause383 OraclePLSQLParser_into_clause_return

    OraclePLSQLParser_bulk_collect_into_clause_return bulk_collect_into_clause384;
    #undef	RETURN_TYPE_bulk_collect_into_clause384
    #define	RETURN_TYPE_bulk_collect_into_clause384 OraclePLSQLParser_bulk_collect_into_clause_return

    OraclePLSQLParser_using_clause_return using_clause385;
    #undef	RETURN_TYPE_using_clause385
    #define	RETURN_TYPE_using_clause385 OraclePLSQLParser_using_clause_return

    OraclePLSQLParser_using_clause_return using_clause386;
    #undef	RETURN_TYPE_using_clause386
    #define	RETURN_TYPE_using_clause386 OraclePLSQLParser_using_clause_return

    OraclePLSQLParser_dynamic_returning_clause_return dynamic_returning_clause387;
    #undef	RETURN_TYPE_dynamic_returning_clause387
    #define	RETURN_TYPE_dynamic_returning_clause387 OraclePLSQLParser_dynamic_returning_clause_return

    OraclePLSQLParser_dynamic_returning_clause_return dynamic_returning_clause388;
    #undef	RETURN_TYPE_dynamic_returning_clause388
    #define	RETURN_TYPE_dynamic_returning_clause388 OraclePLSQLParser_dynamic_returning_clause_return


    /* Initialize rule variables
     */
    execute_immediate_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(48)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_execute380.tree = NULL;
    k_immediate381.tree = NULL;
    expression382.tree = NULL;
    into_clause383.tree = NULL;
    bulk_collect_into_clause384.tree = NULL;
    using_clause385.tree = NULL;
    using_clause386.tree = NULL;
    dynamic_returning_clause387.tree = NULL;
    dynamic_returning_clause388.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:449:33: ( k_execute k_immediate expression ( ( into_clause | bulk_collect_into_clause ) ( using_clause )? | using_clause ( dynamic_returning_clause )? | dynamic_returning_clause )? )
        // OraclePLSQL.g:450:9: k_execute k_immediate expression ( ( into_clause | bulk_collect_into_clause ) ( using_clause )? | using_clause ( dynamic_returning_clause )? | dynamic_returning_clause )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_execute_in_execute_immediate_statement_sub3985);
            k_execute380=k_execute(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexecute_immediate_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_execute380.tree);
            FOLLOWPUSH(FOLLOW_k_immediate_in_execute_immediate_statement_sub3987);
            k_immediate381=k_immediate(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexecute_immediate_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_immediate381.tree);
            FOLLOWPUSH(FOLLOW_expression_in_execute_immediate_statement_sub3989);
            expression382=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexecute_immediate_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression382.tree);

            // OraclePLSQL.g:450:42: ( ( into_clause | bulk_collect_into_clause ) ( using_clause )? | using_clause ( dynamic_returning_clause )? | dynamic_returning_clause )?
            {
                int alt135=4;
                switch ( LA(1) ) 
                {
                    case 155:
                    case 177:
                    	{
                    		alt135=1;
                    	}
                        break;
                    case K_USING:
                    	{
                    		alt135=2;
                    	}
                        break;
                    case 228:
                    case 229:
                    	{
                    		alt135=3;
                    	}
                        break;
                }

                switch (alt135) 
                {
            	case 1:
            	    // OraclePLSQL.g:451:9: ( into_clause | bulk_collect_into_clause ) ( using_clause )?
            	    {

            	        // OraclePLSQL.g:451:9: ( into_clause | bulk_collect_into_clause )
            	        {
            	            int alt132=2;
            	            switch ( LA(1) ) 
            	            {
            	            case 177:
            	            	{
            	            		alt132=1;
            	            	}
            	                break;
            	            case 155:
            	            	{
            	            		alt132=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 132;
            	                EXCEPTION->state        = 0;


            	                goto ruleexecute_immediate_statement_subEx;
            	            }

            	            switch (alt132) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:451:11: into_clause
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_into_clause_in_execute_immediate_statement_sub4003);
            	        	        into_clause383=into_clause(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleexecute_immediate_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, into_clause383.tree);

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:451:25: bulk_collect_into_clause
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_bulk_collect_into_clause_in_execute_immediate_statement_sub4007);
            	        	        bulk_collect_into_clause384=bulk_collect_into_clause(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleexecute_immediate_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bulk_collect_into_clause384.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	        // OraclePLSQL.g:451:51: ( using_clause )?
            	        {
            	            int alt133=2;
            	            switch ( LA(1) ) 
            	            {
            	                case K_USING:
            	                	{
            	                		alt133=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt133) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: using_clause
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_using_clause_in_execute_immediate_statement_sub4010);
            	        	        using_clause385=using_clause(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleexecute_immediate_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, using_clause385.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:452:11: using_clause ( dynamic_returning_clause )?
            	    {
            	        FOLLOWPUSH(FOLLOW_using_clause_in_execute_immediate_statement_sub4023);
            	        using_clause386=using_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexecute_immediate_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, using_clause386.tree);

            	        // OraclePLSQL.g:452:24: ( dynamic_returning_clause )?
            	        {
            	            int alt134=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 228:
            	                case 229:
            	                	{
            	                		alt134=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt134) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: dynamic_returning_clause
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4025);
            	        	        dynamic_returning_clause387=dynamic_returning_clause(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleexecute_immediate_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, dynamic_returning_clause387.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:453:11: dynamic_returning_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_dynamic_returning_clause_in_execute_immediate_statement_sub4038);
            	        dynamic_returning_clause388=dynamic_returning_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexecute_immediate_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, dynamic_returning_clause388.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexecute_immediate_statement_subEx; /* Prevent compiler warnings */
    ruleexecute_immediate_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(48, execute_immediate_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end execute_immediate_statement_sub */

/** 
 * $ANTLR start exit_statement
 * OraclePLSQL.g:457:1: exit_statement : exit_statement_sub -> ^( 't_exit' exit_statement_sub ) ;
 */
static OraclePLSQLParser_exit_statement_return
exit_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_exit_statement_return retval;
    ANTLR3_UINT32 exit_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_exit_statement_sub_return exit_statement_sub389;
    #undef	RETURN_TYPE_exit_statement_sub389
    #define	RETURN_TYPE_exit_statement_sub389 OraclePLSQLParser_exit_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_exit_statement_sub;
    /* Initialize rule variables
     */
    exit_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(49)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    exit_statement_sub389.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_exit_statement_sub   = NULL;
    #define CREATE_stream_exit_statement_sub  if (stream_exit_statement_sub == NULL) {stream_exit_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule exit_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:457:16: ( exit_statement_sub -> ^( 't_exit' exit_statement_sub ) )
        // OraclePLSQL.g:457:18: exit_statement_sub
        {
            FOLLOWPUSH(FOLLOW_exit_statement_sub_in_exit_statement4062);
            exit_statement_sub389=exit_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexit_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_exit_statement_sub; stream_exit_statement_sub->add(stream_exit_statement_sub, exit_statement_sub389.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_EXIT, exit_statement_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 457:37: -> ^( 't_exit' exit_statement_sub )
            	{
            	    // OraclePLSQL.g:457:39: ^( 't_exit' exit_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_EXIT, (pANTLR3_UINT8)"T_EXIT"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_exit_statement_sub == NULL ? NULL : stream_exit_statement_sub->nextTree(stream_exit_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexit_statementEx; /* Prevent compiler warnings */
    ruleexit_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_exit_statement_sub != NULL) stream_exit_statement_sub->free(stream_exit_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(49, exit_statement_StartIndex); }

    return retval;
}
/* $ANTLR end exit_statement */

/** 
 * $ANTLR start exit_statement_sub
 * OraclePLSQL.g:458:1: exit_statement_sub : k_exit (lbl= ID )? ( k_when expression )? ;
 */
static OraclePLSQLParser_exit_statement_sub_return
exit_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_exit_statement_sub_return retval;
    ANTLR3_UINT32 exit_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    lbl;
    OraclePLSQLParser_k_exit_return k_exit390;
    #undef	RETURN_TYPE_k_exit390
    #define	RETURN_TYPE_k_exit390 OraclePLSQLParser_k_exit_return

    OraclePLSQLParser_k_when_return k_when391;
    #undef	RETURN_TYPE_k_when391
    #define	RETURN_TYPE_k_when391 OraclePLSQLParser_k_when_return

    OraclePLSQLParser_expression_return expression392;
    #undef	RETURN_TYPE_expression392
    #define	RETURN_TYPE_expression392 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE lbl_tree;

    /* Initialize rule variables
     */
    exit_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(50)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    lbl       = NULL;
    k_exit390.tree = NULL;
    k_when391.tree = NULL;
    expression392.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    lbl_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:458:20: ( k_exit (lbl= ID )? ( k_when expression )? )
        // OraclePLSQL.g:458:22: k_exit (lbl= ID )? ( k_when expression )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_exit_in_exit_statement_sub4076);
            k_exit390=k_exit(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexit_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_exit390.tree);

            // OraclePLSQL.g:458:29: (lbl= ID )?
            {
                int alt136=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt136=1;
                    	}
                        break;
                }

                switch (alt136) 
                {
            	case 1:
            	    // OraclePLSQL.g:458:31: lbl= ID
            	    {
            	        lbl = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_exit_statement_sub4082); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexit_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        lbl_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, lbl));
            	        ADAPTOR->addChild(ADAPTOR, root_0, lbl_tree);
            	        }

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:458:41: ( k_when expression )?
            {
                int alt137=2;
                switch ( LA(1) ) 
                {
                    case 236:
                    	{
                    		alt137=1;
                    	}
                        break;
                }

                switch (alt137) 
                {
            	case 1:
            	    // OraclePLSQL.g:458:43: k_when expression
            	    {
            	        FOLLOWPUSH(FOLLOW_k_when_in_exit_statement_sub4089);
            	        k_when391=k_when(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexit_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_when391.tree);
            	        FOLLOWPUSH(FOLLOW_expression_in_exit_statement_sub4091);
            	        expression392=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexit_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression392.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexit_statement_subEx; /* Prevent compiler warnings */
    ruleexit_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(50, exit_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end exit_statement_sub */

/** 
 * $ANTLR start fetch_statement
 * OraclePLSQL.g:460:1: fetch_statement : fetch_statement_sub -> ^( 't_fetch' fetch_statement_sub ) ;
 */
static OraclePLSQLParser_fetch_statement_return
fetch_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_fetch_statement_return retval;
    ANTLR3_UINT32 fetch_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_fetch_statement_sub_return fetch_statement_sub393;
    #undef	RETURN_TYPE_fetch_statement_sub393
    #define	RETURN_TYPE_fetch_statement_sub393 OraclePLSQLParser_fetch_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_fetch_statement_sub;
    /* Initialize rule variables
     */
    fetch_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(51)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    fetch_statement_sub393.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_fetch_statement_sub   = NULL;
    #define CREATE_stream_fetch_statement_sub  if (stream_fetch_statement_sub == NULL) {stream_fetch_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule fetch_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:460:17: ( fetch_statement_sub -> ^( 't_fetch' fetch_statement_sub ) )
        // OraclePLSQL.g:460:19: fetch_statement_sub
        {
            FOLLOWPUSH(FOLLOW_fetch_statement_sub_in_fetch_statement4103);
            fetch_statement_sub393=fetch_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefetch_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_fetch_statement_sub; stream_fetch_statement_sub->add(stream_fetch_statement_sub, fetch_statement_sub393.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_FETCH, fetch_statement_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 460:39: -> ^( 't_fetch' fetch_statement_sub )
            	{
            	    // OraclePLSQL.g:460:41: ^( 't_fetch' fetch_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_FETCH, (pANTLR3_UINT8)"T_FETCH"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_fetch_statement_sub == NULL ? NULL : stream_fetch_statement_sub->nextTree(stream_fetch_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefetch_statementEx; /* Prevent compiler warnings */
    rulefetch_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_fetch_statement_sub != NULL) stream_fetch_statement_sub->free(stream_fetch_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(51, fetch_statement_StartIndex); }

    return retval;
}
/* $ANTLR end fetch_statement */

/** 
 * $ANTLR start fetch_statement_sub
 * OraclePLSQL.g:461:1: fetch_statement_sub : k_fetch qual_id ( into_clause | bulk_collect_into_clause ( k_limit numeric_expression )? ) ;
 */
static OraclePLSQLParser_fetch_statement_sub_return
fetch_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_fetch_statement_sub_return retval;
    ANTLR3_UINT32 fetch_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_fetch_return k_fetch394;
    #undef	RETURN_TYPE_k_fetch394
    #define	RETURN_TYPE_k_fetch394 OraclePLSQLParser_k_fetch_return

    OraclePLSQLParser_qual_id_return qual_id395;
    #undef	RETURN_TYPE_qual_id395
    #define	RETURN_TYPE_qual_id395 OraclePLSQLParser_qual_id_return

    OraclePLSQLParser_into_clause_return into_clause396;
    #undef	RETURN_TYPE_into_clause396
    #define	RETURN_TYPE_into_clause396 OraclePLSQLParser_into_clause_return

    OraclePLSQLParser_bulk_collect_into_clause_return bulk_collect_into_clause397;
    #undef	RETURN_TYPE_bulk_collect_into_clause397
    #define	RETURN_TYPE_bulk_collect_into_clause397 OraclePLSQLParser_bulk_collect_into_clause_return

    OraclePLSQLParser_k_limit_return k_limit398;
    #undef	RETURN_TYPE_k_limit398
    #define	RETURN_TYPE_k_limit398 OraclePLSQLParser_k_limit_return

    OraclePLSQLParser_numeric_expression_return numeric_expression399;
    #undef	RETURN_TYPE_numeric_expression399
    #define	RETURN_TYPE_numeric_expression399 OraclePLSQLParser_numeric_expression_return


    /* Initialize rule variables
     */
    fetch_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(52)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_fetch394.tree = NULL;
    qual_id395.tree = NULL;
    into_clause396.tree = NULL;
    bulk_collect_into_clause397.tree = NULL;
    k_limit398.tree = NULL;
    numeric_expression399.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:461:21: ( k_fetch qual_id ( into_clause | bulk_collect_into_clause ( k_limit numeric_expression )? ) )
        // OraclePLSQL.g:461:23: k_fetch qual_id ( into_clause | bulk_collect_into_clause ( k_limit numeric_expression )? )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_fetch_in_fetch_statement_sub4117);
            k_fetch394=k_fetch(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefetch_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_fetch394.tree);
            FOLLOWPUSH(FOLLOW_qual_id_in_fetch_statement_sub4119);
            qual_id395=qual_id(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefetch_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, qual_id395.tree);

            // OraclePLSQL.g:461:39: ( into_clause | bulk_collect_into_clause ( k_limit numeric_expression )? )
            {
                int alt139=2;
                switch ( LA(1) ) 
                {
                case 177:
                	{
                		alt139=1;
                	}
                    break;
                case 155:
                	{
                		alt139=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 139;
                    EXCEPTION->state        = 0;


                    goto rulefetch_statement_subEx;
                }

                switch (alt139) 
                {
            	case 1:
            	    // OraclePLSQL.g:461:41: into_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_into_clause_in_fetch_statement_sub4123);
            	        into_clause396=into_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefetch_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, into_clause396.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:461:55: bulk_collect_into_clause ( k_limit numeric_expression )?
            	    {
            	        FOLLOWPUSH(FOLLOW_bulk_collect_into_clause_in_fetch_statement_sub4127);
            	        bulk_collect_into_clause397=bulk_collect_into_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefetch_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bulk_collect_into_clause397.tree);

            	        // OraclePLSQL.g:461:80: ( k_limit numeric_expression )?
            	        {
            	            int alt138=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 180:
            	                	{
            	                		alt138=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt138) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:461:82: k_limit numeric_expression
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_limit_in_fetch_statement_sub4131);
            	        	        k_limit398=k_limit(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefetch_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_limit398.tree);
            	        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_fetch_statement_sub4133);
            	        	        numeric_expression399=numeric_expression(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulefetch_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_expression399.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefetch_statement_subEx; /* Prevent compiler warnings */
    rulefetch_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(52, fetch_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end fetch_statement_sub */

/** 
 * $ANTLR start into_clause
 * OraclePLSQL.g:463:1: into_clause : k_into lvalue ( COMMA lvalue )* ;
 */
static OraclePLSQLParser_into_clause_return
into_clause(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_into_clause_return retval;
    ANTLR3_UINT32 into_clause_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    COMMA402;
    OraclePLSQLParser_k_into_return k_into400;
    #undef	RETURN_TYPE_k_into400
    #define	RETURN_TYPE_k_into400 OraclePLSQLParser_k_into_return

    OraclePLSQLParser_lvalue_return lvalue401;
    #undef	RETURN_TYPE_lvalue401
    #define	RETURN_TYPE_lvalue401 OraclePLSQLParser_lvalue_return

    OraclePLSQLParser_lvalue_return lvalue403;
    #undef	RETURN_TYPE_lvalue403
    #define	RETURN_TYPE_lvalue403 OraclePLSQLParser_lvalue_return

    pANTLR3_BASE_TREE COMMA402_tree;

    /* Initialize rule variables
     */
    into_clause_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(53)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    COMMA402       = NULL;
    k_into400.tree = NULL;
    lvalue401.tree = NULL;
    lvalue403.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    COMMA402_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:463:13: ( k_into lvalue ( COMMA lvalue )* )
        // OraclePLSQL.g:464:9: k_into lvalue ( COMMA lvalue )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_into_in_into_clause4159);
            k_into400=k_into(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleinto_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_into400.tree);
            FOLLOWPUSH(FOLLOW_lvalue_in_into_clause4161);
            lvalue401=lvalue(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleinto_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, lvalue401.tree);

            // OraclePLSQL.g:464:23: ( COMMA lvalue )*

            for (;;)
            {
                int alt140=2;
                switch ( LA(1) ) 
                {
                case COMMA:
                	{
                		alt140=1;
                	}
                    break;

                }

                switch (alt140) 
                {
            	case 1:
            	    // OraclePLSQL.g:464:25: COMMA lvalue
            	    {
            	        COMMA402 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_into_clause4165); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleinto_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        COMMA402_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA402));
            	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA402_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_lvalue_in_into_clause4167);
            	        lvalue403=lvalue(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleinto_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, lvalue403.tree);

            	    }
            	    break;

            	default:
            	    goto loop140;	/* break out of the loop */
            	    break;
                }
            }
            loop140: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleinto_clauseEx; /* Prevent compiler warnings */
    ruleinto_clauseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(53, into_clause_StartIndex); }

    return retval;
}
/* $ANTLR end into_clause */

/** 
 * $ANTLR start bulk_collect_into_clause
 * OraclePLSQL.g:467:1: bulk_collect_into_clause : k_bulk k_collect k_into lvalue ( COMMA lvalue )* ;
 */
static OraclePLSQLParser_bulk_collect_into_clause_return
bulk_collect_into_clause(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_bulk_collect_into_clause_return retval;
    ANTLR3_UINT32 bulk_collect_into_clause_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    COMMA408;
    OraclePLSQLParser_k_bulk_return k_bulk404;
    #undef	RETURN_TYPE_k_bulk404
    #define	RETURN_TYPE_k_bulk404 OraclePLSQLParser_k_bulk_return

    OraclePLSQLParser_k_collect_return k_collect405;
    #undef	RETURN_TYPE_k_collect405
    #define	RETURN_TYPE_k_collect405 OraclePLSQLParser_k_collect_return

    OraclePLSQLParser_k_into_return k_into406;
    #undef	RETURN_TYPE_k_into406
    #define	RETURN_TYPE_k_into406 OraclePLSQLParser_k_into_return

    OraclePLSQLParser_lvalue_return lvalue407;
    #undef	RETURN_TYPE_lvalue407
    #define	RETURN_TYPE_lvalue407 OraclePLSQLParser_lvalue_return

    OraclePLSQLParser_lvalue_return lvalue409;
    #undef	RETURN_TYPE_lvalue409
    #define	RETURN_TYPE_lvalue409 OraclePLSQLParser_lvalue_return

    pANTLR3_BASE_TREE COMMA408_tree;

    /* Initialize rule variables
     */
    bulk_collect_into_clause_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(54)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    COMMA408       = NULL;
    k_bulk404.tree = NULL;
    k_collect405.tree = NULL;
    k_into406.tree = NULL;
    lvalue407.tree = NULL;
    lvalue409.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    COMMA408_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:467:26: ( k_bulk k_collect k_into lvalue ( COMMA lvalue )* )
        // OraclePLSQL.g:468:9: k_bulk k_collect k_into lvalue ( COMMA lvalue )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_bulk_in_bulk_collect_into_clause4195);
            k_bulk404=k_bulk(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebulk_collect_into_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_bulk404.tree);
            FOLLOWPUSH(FOLLOW_k_collect_in_bulk_collect_into_clause4197);
            k_collect405=k_collect(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebulk_collect_into_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_collect405.tree);
            FOLLOWPUSH(FOLLOW_k_into_in_bulk_collect_into_clause4199);
            k_into406=k_into(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebulk_collect_into_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_into406.tree);
            FOLLOWPUSH(FOLLOW_lvalue_in_bulk_collect_into_clause4201);
            lvalue407=lvalue(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebulk_collect_into_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, lvalue407.tree);

            // OraclePLSQL.g:468:40: ( COMMA lvalue )*

            for (;;)
            {
                int alt141=2;
                switch ( LA(1) ) 
                {
                case COMMA:
                	{
                		alt141=1;
                	}
                    break;

                }

                switch (alt141) 
                {
            	case 1:
            	    // OraclePLSQL.g:468:42: COMMA lvalue
            	    {
            	        COMMA408 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_bulk_collect_into_clause4205); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebulk_collect_into_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        COMMA408_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA408));
            	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA408_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_lvalue_in_bulk_collect_into_clause4207);
            	        lvalue409=lvalue(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebulk_collect_into_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, lvalue409.tree);

            	    }
            	    break;

            	default:
            	    goto loop141;	/* break out of the loop */
            	    break;
                }
            }
            loop141: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulebulk_collect_into_clauseEx; /* Prevent compiler warnings */
    rulebulk_collect_into_clauseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(54, bulk_collect_into_clause_StartIndex); }

    return retval;
}
/* $ANTLR end bulk_collect_into_clause */

/** 
 * $ANTLR start using_clause
 * OraclePLSQL.g:471:1: using_clause : K_USING ( param_modifiers )? expression ( COMMA ( param_modifiers )? expression )* ;
 */
static OraclePLSQLParser_using_clause_return
using_clause(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_using_clause_return retval;
    ANTLR3_UINT32 using_clause_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    K_USING410;
    pANTLR3_COMMON_TOKEN    COMMA413;
    OraclePLSQLParser_param_modifiers_return param_modifiers411;
    #undef	RETURN_TYPE_param_modifiers411
    #define	RETURN_TYPE_param_modifiers411 OraclePLSQLParser_param_modifiers_return

    OraclePLSQLParser_expression_return expression412;
    #undef	RETURN_TYPE_expression412
    #define	RETURN_TYPE_expression412 OraclePLSQLParser_expression_return

    OraclePLSQLParser_param_modifiers_return param_modifiers414;
    #undef	RETURN_TYPE_param_modifiers414
    #define	RETURN_TYPE_param_modifiers414 OraclePLSQLParser_param_modifiers_return

    OraclePLSQLParser_expression_return expression415;
    #undef	RETURN_TYPE_expression415
    #define	RETURN_TYPE_expression415 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE K_USING410_tree;
    pANTLR3_BASE_TREE COMMA413_tree;

    /* Initialize rule variables
     */
    using_clause_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(55)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    K_USING410       = NULL;
    COMMA413       = NULL;
    param_modifiers411.tree = NULL;
    expression412.tree = NULL;
    param_modifiers414.tree = NULL;
    expression415.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    K_USING410_tree   = NULL;
    COMMA413_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:471:14: ( K_USING ( param_modifiers )? expression ( COMMA ( param_modifiers )? expression )* )
        // OraclePLSQL.g:472:9: K_USING ( param_modifiers )? expression ( COMMA ( param_modifiers )? expression )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            K_USING410 = (pANTLR3_COMMON_TOKEN) MATCHT(K_USING, &FOLLOW_K_USING_in_using_clause4231); 
            if  (HASEXCEPTION())
            {
                goto ruleusing_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            K_USING410_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_USING410));
            ADAPTOR->addChild(ADAPTOR, root_0, K_USING410_tree);
            }

            // OraclePLSQL.g:472:17: ( param_modifiers )?
            {
                int alt142=2;
                switch ( LA(1) ) 
                {
                    case K_IN:
                    	{
                    		alt142=1;
                    	}
                        break;
                    case K_OUT:
                    	{
                    		{
                    		    int LA142_2 = LA(2);
                    		    if ( (synpred225_OraclePLSQL(ctx))) 
                    		    {
                    		        alt142=1;
                    		    }
                    		}
                    	}
                        break;
                }

                switch (alt142) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: param_modifiers
            	    {
            	        FOLLOWPUSH(FOLLOW_param_modifiers_in_using_clause4233);
            	        param_modifiers411=param_modifiers(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleusing_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, param_modifiers411.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_expression_in_using_clause4236);
            expression412=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleusing_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression412.tree);

            // OraclePLSQL.g:472:45: ( COMMA ( param_modifiers )? expression )*

            for (;;)
            {
                int alt144=2;
                switch ( LA(1) ) 
                {
                case COMMA:
                	{
                		alt144=1;
                	}
                    break;

                }

                switch (alt144) 
                {
            	case 1:
            	    // OraclePLSQL.g:472:47: COMMA ( param_modifiers )? expression
            	    {
            	        COMMA413 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_using_clause4240); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleusing_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        COMMA413_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA413));
            	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA413_tree);
            	        }

            	        // OraclePLSQL.g:472:53: ( param_modifiers )?
            	        {
            	            int alt143=2;
            	            switch ( LA(1) ) 
            	            {
            	                case K_IN:
            	                	{
            	                		alt143=1;
            	                	}
            	                    break;
            	                case K_OUT:
            	                	{
            	                		{
            	                		    int LA143_2 = LA(2);
            	                		    if ( (synpred226_OraclePLSQL(ctx))) 
            	                		    {
            	                		        alt143=1;
            	                		    }
            	                		}
            	                	}
            	                    break;
            	            }

            	            switch (alt143) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: param_modifiers
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_param_modifiers_in_using_clause4242);
            	        	        param_modifiers414=param_modifiers(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleusing_clauseEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, param_modifiers414.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_expression_in_using_clause4245);
            	        expression415=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleusing_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression415.tree);

            	    }
            	    break;

            	default:
            	    goto loop144;	/* break out of the loop */
            	    break;
                }
            }
            loop144: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleusing_clauseEx; /* Prevent compiler warnings */
    ruleusing_clauseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(55, using_clause_StartIndex); }

    return retval;
}
/* $ANTLR end using_clause */

/** 
 * $ANTLR start param_modifiers
 * OraclePLSQL.g:475:1: param_modifiers : ( K_IN ( K_OUT )? | K_OUT );
 */
static OraclePLSQLParser_param_modifiers_return
param_modifiers(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_param_modifiers_return retval;
    ANTLR3_UINT32 param_modifiers_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    K_IN416;
    pANTLR3_COMMON_TOKEN    K_OUT417;
    pANTLR3_COMMON_TOKEN    K_OUT418;

    pANTLR3_BASE_TREE K_IN416_tree;
    pANTLR3_BASE_TREE K_OUT417_tree;
    pANTLR3_BASE_TREE K_OUT418_tree;

    /* Initialize rule variables
     */
    param_modifiers_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(56)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    K_IN416       = NULL;
    K_OUT417       = NULL;
    K_OUT418       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    K_IN416_tree   = NULL;
    K_OUT417_tree   = NULL;
    K_OUT418_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:476:2: ( K_IN ( K_OUT )? | K_OUT )
            
            ANTLR3_UINT32 alt146;

            alt146=2;

            switch ( LA(1) ) 
            {
            case K_IN:
            	{
            		alt146=1;
            	}
                break;
            case K_OUT:
            	{
            		alt146=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 146;
                EXCEPTION->state        = 0;


                goto ruleparam_modifiersEx;
            }

            switch (alt146) 
            {
        	case 1:
        	    // OraclePLSQL.g:476:4: K_IN ( K_OUT )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        K_IN416 = (pANTLR3_COMMON_TOKEN) MATCHT(K_IN, &FOLLOW_K_IN_in_param_modifiers4262); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparam_modifiersEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        K_IN416_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_IN416));
        	        ADAPTOR->addChild(ADAPTOR, root_0, K_IN416_tree);
        	        }

        	        // OraclePLSQL.g:476:9: ( K_OUT )?
        	        {
        	            int alt145=2;
        	            switch ( LA(1) ) 
        	            {
        	                case K_OUT:
        	                	{
        	                		{
        	                		    int LA145_1 = LA(2);
        	                		    if ( (synpred228_OraclePLSQL(ctx))) 
        	                		    {
        	                		        alt145=1;
        	                		    }
        	                		}
        	                	}
        	                    break;
        	            }

        	            switch (alt145) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:0:0: K_OUT
        	        	    {
        	        	        K_OUT417 = (pANTLR3_COMMON_TOKEN) MATCHT(K_OUT, &FOLLOW_K_OUT_in_param_modifiers4264); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleparam_modifiersEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        K_OUT417_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_OUT417));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, K_OUT417_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:476:18: K_OUT
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        K_OUT418 = (pANTLR3_COMMON_TOKEN) MATCHT(K_OUT, &FOLLOW_K_OUT_in_param_modifiers4269); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparam_modifiersEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        K_OUT418_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_OUT418));
        	        ADAPTOR->addChild(ADAPTOR, root_0, K_OUT418_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleparam_modifiersEx; /* Prevent compiler warnings */
    ruleparam_modifiersEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(56, param_modifiers_StartIndex); }

    return retval;
}
/* $ANTLR end param_modifiers */

/** 
 * $ANTLR start dynamic_returning_clause
 * OraclePLSQL.g:479:1: dynamic_returning_clause : ( k_returning | k_return ) ( into_clause | bulk_collect_into_clause ) ;
 */
static OraclePLSQLParser_dynamic_returning_clause_return
dynamic_returning_clause(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_dynamic_returning_clause_return retval;
    ANTLR3_UINT32 dynamic_returning_clause_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_returning_return k_returning419;
    #undef	RETURN_TYPE_k_returning419
    #define	RETURN_TYPE_k_returning419 OraclePLSQLParser_k_returning_return

    OraclePLSQLParser_k_return_return k_return420;
    #undef	RETURN_TYPE_k_return420
    #define	RETURN_TYPE_k_return420 OraclePLSQLParser_k_return_return

    OraclePLSQLParser_into_clause_return into_clause421;
    #undef	RETURN_TYPE_into_clause421
    #define	RETURN_TYPE_into_clause421 OraclePLSQLParser_into_clause_return

    OraclePLSQLParser_bulk_collect_into_clause_return bulk_collect_into_clause422;
    #undef	RETURN_TYPE_bulk_collect_into_clause422
    #define	RETURN_TYPE_bulk_collect_into_clause422 OraclePLSQLParser_bulk_collect_into_clause_return


    /* Initialize rule variables
     */
    dynamic_returning_clause_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(57)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_returning419.tree = NULL;
    k_return420.tree = NULL;
    into_clause421.tree = NULL;
    bulk_collect_into_clause422.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:479:26: ( ( k_returning | k_return ) ( into_clause | bulk_collect_into_clause ) )
        // OraclePLSQL.g:480:9: ( k_returning | k_return ) ( into_clause | bulk_collect_into_clause )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:480:9: ( k_returning | k_return )
            {
                int alt147=2;
                switch ( LA(1) ) 
                {
                case 229:
                	{
                		alt147=1;
                	}
                    break;
                case 228:
                	{
                		alt147=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 147;
                    EXCEPTION->state        = 0;


                    goto ruledynamic_returning_clauseEx;
                }

                switch (alt147) 
                {
            	case 1:
            	    // OraclePLSQL.g:480:11: k_returning
            	    {
            	        FOLLOWPUSH(FOLLOW_k_returning_in_dynamic_returning_clause4289);
            	        k_returning419=k_returning(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledynamic_returning_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_returning419.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:480:25: k_return
            	    {
            	        FOLLOWPUSH(FOLLOW_k_return_in_dynamic_returning_clause4293);
            	        k_return420=k_return(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledynamic_returning_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_return420.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:480:36: ( into_clause | bulk_collect_into_clause )
            {
                int alt148=2;
                switch ( LA(1) ) 
                {
                case 177:
                	{
                		alt148=1;
                	}
                    break;
                case 155:
                	{
                		alt148=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 148;
                    EXCEPTION->state        = 0;


                    goto ruledynamic_returning_clauseEx;
                }

                switch (alt148) 
                {
            	case 1:
            	    // OraclePLSQL.g:480:38: into_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_into_clause_in_dynamic_returning_clause4299);
            	        into_clause421=into_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledynamic_returning_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, into_clause421.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:480:52: bulk_collect_into_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_bulk_collect_into_clause_in_dynamic_returning_clause4303);
            	        bulk_collect_into_clause422=bulk_collect_into_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledynamic_returning_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bulk_collect_into_clause422.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruledynamic_returning_clauseEx; /* Prevent compiler warnings */
    ruledynamic_returning_clauseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(57, dynamic_returning_clause_StartIndex); }

    return retval;
}
/* $ANTLR end dynamic_returning_clause */

/** 
 * $ANTLR start for_loop_statement
 * OraclePLSQL.g:483:1: for_loop_statement : for_loop_statement_sub -> ^( 't_for' for_loop_statement_sub ) ;
 */
static OraclePLSQLParser_for_loop_statement_return
for_loop_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_for_loop_statement_return retval;
    ANTLR3_UINT32 for_loop_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_for_loop_statement_sub_return for_loop_statement_sub423;
    #undef	RETURN_TYPE_for_loop_statement_sub423
    #define	RETURN_TYPE_for_loop_statement_sub423 OraclePLSQLParser_for_loop_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_for_loop_statement_sub;
    /* Initialize rule variables
     */
    for_loop_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(58)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    for_loop_statement_sub423.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_for_loop_statement_sub   = NULL;
    #define CREATE_stream_for_loop_statement_sub  if (stream_for_loop_statement_sub == NULL) {stream_for_loop_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule for_loop_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:483:20: ( for_loop_statement_sub -> ^( 't_for' for_loop_statement_sub ) )
        // OraclePLSQL.g:483:22: for_loop_statement_sub
        {
            FOLLOWPUSH(FOLLOW_for_loop_statement_sub_in_for_loop_statement4318);
            for_loop_statement_sub423=for_loop_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_for_loop_statement_sub; stream_for_loop_statement_sub->add(stream_for_loop_statement_sub, for_loop_statement_sub423.tree, NULL); }

             
            /* AST REWRITE
             * elements          : for_loop_statement_sub, T_FOR
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 483:45: -> ^( 't_for' for_loop_statement_sub )
            	{
            	    // OraclePLSQL.g:483:47: ^( 't_for' for_loop_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_FOR, (pANTLR3_UINT8)"T_FOR"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_for_loop_statement_sub == NULL ? NULL : stream_for_loop_statement_sub->nextTree(stream_for_loop_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefor_loop_statementEx; /* Prevent compiler warnings */
    rulefor_loop_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_for_loop_statement_sub != NULL) stream_for_loop_statement_sub->free(stream_for_loop_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(58, for_loop_statement_StartIndex); }

    return retval;
}
/* $ANTLR end for_loop_statement */

/** 
 * $ANTLR start for_loop_statement_sub
 * OraclePLSQL.g:484:1: for_loop_statement_sub : k_for ID K_IN (~ ( 'LOOP' ) )+ k_loop ( statement )+ k_end k_loop ( label_name )? ;
 */
static OraclePLSQLParser_for_loop_statement_sub_return
for_loop_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_for_loop_statement_sub_return retval;
    ANTLR3_UINT32 for_loop_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID425;
    pANTLR3_COMMON_TOKEN    K_IN426;
    pANTLR3_COMMON_TOKEN    set427;
    OraclePLSQLParser_k_for_return k_for424;
    #undef	RETURN_TYPE_k_for424
    #define	RETURN_TYPE_k_for424 OraclePLSQLParser_k_for_return

    OraclePLSQLParser_k_loop_return k_loop428;
    #undef	RETURN_TYPE_k_loop428
    #define	RETURN_TYPE_k_loop428 OraclePLSQLParser_k_loop_return

    OraclePLSQLParser_statement_return statement429;
    #undef	RETURN_TYPE_statement429
    #define	RETURN_TYPE_statement429 OraclePLSQLParser_statement_return

    OraclePLSQLParser_k_end_return k_end430;
    #undef	RETURN_TYPE_k_end430
    #define	RETURN_TYPE_k_end430 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_k_loop_return k_loop431;
    #undef	RETURN_TYPE_k_loop431
    #define	RETURN_TYPE_k_loop431 OraclePLSQLParser_k_loop_return

    OraclePLSQLParser_label_name_return label_name432;
    #undef	RETURN_TYPE_label_name432
    #define	RETURN_TYPE_label_name432 OraclePLSQLParser_label_name_return

    pANTLR3_BASE_TREE ID425_tree;
    pANTLR3_BASE_TREE K_IN426_tree;
    pANTLR3_BASE_TREE set427_tree;

    /* Initialize rule variables
     */
    for_loop_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(59)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID425       = NULL;
    K_IN426       = NULL;
    set427       = NULL;
    k_for424.tree = NULL;
    k_loop428.tree = NULL;
    statement429.tree = NULL;
    k_end430.tree = NULL;
    k_loop431.tree = NULL;
    label_name432.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID425_tree   = NULL;
    K_IN426_tree   = NULL;
    set427_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:484:24: ( k_for ID K_IN (~ ( 'LOOP' ) )+ k_loop ( statement )+ k_end k_loop ( label_name )? )
        // OraclePLSQL.g:484:26: k_for ID K_IN (~ ( 'LOOP' ) )+ k_loop ( statement )+ k_end k_loop ( label_name )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_for_in_for_loop_statement_sub4332);
            k_for424=k_for(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_for424.tree);
            ID425 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_for_loop_statement_sub4334); 
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            ID425_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID425));
            ADAPTOR->addChild(ADAPTOR, root_0, ID425_tree);
            }
            K_IN426 = (pANTLR3_COMMON_TOKEN) MATCHT(K_IN, &FOLLOW_K_IN_in_for_loop_statement_sub4336); 
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            K_IN426_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_IN426));
            ADAPTOR->addChild(ADAPTOR, root_0, K_IN426_tree);
            }
            // OraclePLSQL.g:484:40: (~ ( 'LOOP' ) )+
            {
                int cnt149=0;

                for (;;)
                {
                    int alt149=2;
            	switch ( LA(1) ) 
            	{
            	case T_UNKNOWN:
            	case T_RESERVED:
            	case T_SCHEMA_NAME:
            	case T_TRIGGER_NAME:
            	case T_PACKAGE_NAME:
            	case T_FUNCTION_NAME:
            	case T_PROCEDURE_NAME:
            	case T_PARAMETER_NAME:
            	case T_BINDVAR_NAME:
            	case T_VARIABLE_NAME:
            	case T_DATATYPE_NAME:
            	case T_CURSOR_NAME:
            	case T_TABLE_NAME:
            	case T_COLUMN_NAME:
            	case T_OBJECT_NAME:
            	case T_LABEL_NAME:
            	case T_EXCEPTION_NAME:
            	case T_DBLINK_NAME:
            	case T_DECL:
            	case T_USE:
            	case T_USEL:
            	case T_TYPE_DECL:
            	case T_SUBTYPE_DECL:
            	case T_CURSOR_DECL:
            	case T_VAR_DECL:
            	case T_CONST_DECL:
            	case T_EXC_DECL:
            	case T_FUNCTION_DECL:
            	case T_PROCEDURE_DECL:
            	case T_PRAGMA_DECL:
            	case T_DECL_BLOCK:
            	case T_BLOCK_BLOCK:
            	case T_PROCEDURE_BLOCK:
            	case T_FUNCTION_BLOCK:
            	case T_DECLARE_BLOCK:
            	case T_BEGIN_BLOCK:
            	case T_EXCEPTIONS_BLOCK:
            	case T_COMMIT:
            	case T_DELETE:
            	case T_INSERT:
            	case T_LOCK_TABLE:
            	case T_MERGE:
            	case T_ROLLBACK:
            	case T_SAVEPOINT:
            	case T_SELECT:
            	case T_SET_TRANSACTION:
            	case T_UPDATE:
            	case T_EXECUTE_IMMEDIATE:
            	case T_CASE:
            	case T_OPEN:
            	case T_CLOSE:
            	case T_CONTINUE:
            	case T_PIPE:
            	case T_GOTO:
            	case T_EXIT:
            	case T_RETURN:
            	case T_DECLARE:
            	case T_RAISE:
            	case T_FETCH:
            	case T_LOOP:
            	case T_WHILE:
            	case T_NULL_STAT:
            	case T_FOR:
            	case T_FORALL:
            	case T_IF:
            	case T_ELSIF:
            	case T_ELSE:
            	case T_ENDIF:
            	case T_ASSIGN:
            	case T_CALL:
            	case T_DECLARATION:
            	case T_STATEMENT:
            	case DIVIDE:
            	case SEMI:
            	case LPAREN:
            	case COMMA:
            	case RPAREN:
            	case K_IN:
            	case K_OUT:
            	case ASSIGN:
            	case ID:
            	case INTEGER:
            	case DOT:
            	case K_USING:
            	case DOUBLEDOT:
            	case LLABEL:
            	case RLABEL:
            	case COLON:
            	case AT_SIGN:
            	case EQ:
            	case LTH:
            	case GTH:
            	case MINUS:
            	case PLUS:
            	case DOUBLEVERTBAR:
            	case ASTERISK:
            	case REAL_NUMBER:
            	case QUOTED_STRING:
            	case ARROW:
            	case QSTRING:
            	case QS_ANGLE:
            	case QS_BRACE:
            	case QS_BRACK:
            	case QS_PAREN:
            	case QS_OTHER:
            	case QUOTE:
            	case QS_OTHER_CH:
            	case BINDVAR:
            	case DOUBLEQUOTED_STRING:
            	case NUM:
            	case POINT:
            	case RBRACK:
            	case LBRACK:
            	case PERCENT:
            	case VERTBAR:
            	case NOT_EQ:
            	case LEQ:
            	case GEQ:
            	case NUMBER_VALUE:
            	case WS:
            	case SL_COMMENT:
            	case ML_COMMENT:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 132:
            	case 133:
            	case 134:
            	case 135:
            	case 136:
            	case 137:
            	case 138:
            	case 139:
            	case 140:
            	case 141:
            	case 142:
            	case 143:
            	case 144:
            	case 145:
            	case 146:
            	case 147:
            	case 148:
            	case 149:
            	case 150:
            	case 151:
            	case 152:
            	case 153:
            	case 154:
            	case 155:
            	case 156:
            	case 157:
            	case 158:
            	case 159:
            	case 160:
            	case 161:
            	case 162:
            	case 163:
            	case 164:
            	case 165:
            	case 166:
            	case 167:
            	case 168:
            	case 169:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 175:
            	case 176:
            	case 177:
            	case 178:
            	case 179:
            	case 180:
            	case 181:
            	case 182:
            	case 183:
            	case 184:
            	case 185:
            	case 186:
            	case 187:
            	case 188:
            	case 189:
            	case 190:
            	case 191:
            	case 192:
            	case 193:
            	case 194:
            	case 195:
            	case 196:
            	case 197:
            	case 198:
            	case 199:
            	case 200:
            	case 201:
            	case 202:
            	case 203:
            	case 204:
            	case 205:
            	case 206:
            	case 207:
            	case 208:
            	case 209:
            	case 210:
            	case 211:
            	case 212:
            	case 213:
            	case 214:
            	case 215:
            	case 216:
            	case 217:
            	case 218:
            	case 219:
            	case 220:
            	case 221:
            	case 222:
            	case 223:
            	case 224:
            	case 225:
            	case 226:
            	case 227:
            	case 228:
            	case 229:
            	case 230:
            	case 231:
            	case 232:
            	case 233:
            	case 234:
            	case 235:
            	case 236:
            	case 237:
            	case 238:
            	case 239:
            	case 240:
            	case 241:
            	case 242:
            	case 243:
            		{
            			alt149=1;
            		}
            	    break;

            	}

            	switch (alt149) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:484:42: ~ ( 'LOOP' )
            	        {
            	            set427=(pANTLR3_COMMON_TOKEN)LT(1);
            	            if ( ((LA(1) >= T_UNKNOWN) && (LA(1) <= ML_COMMENT)) || ((LA(1) >= 127) && (LA(1) <= 243)) )
            	            {
            	                CONSUME();
            	                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set427)));
            	                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	            }
            	            else 
            	            {
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	                EXCEPTION->expectingSet = &FOLLOW_set_in_for_loop_statement_sub4340;
            	                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_for_loop_statement_sub4340);    goto rulefor_loop_statement_subEx;
            	            }


            	        }
            	        break;

            	    default:
            	    
            		if ( cnt149 >= 1 )
            		{
            		    goto loop149;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto rulefor_loop_statement_subEx;
            	}
            	cnt149++;
                }
                loop149: ;	/* Jump to here if this rule does not match */
            }
            FOLLOWPUSH(FOLLOW_k_loop_in_for_loop_statement_sub4348);
            k_loop428=k_loop(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_loop428.tree);
            // OraclePLSQL.g:484:62: ( statement )+
            {
                int cnt150=0;

                for (;;)
                {
                    int alt150=2;
            	switch ( LA(1) ) 
            	{
            	case LPAREN:
            	case K_OUT:
            	case ID:
            	case LLABEL:
            	case COLON:
            	case BINDVAR:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 133:
            	case 134:
            	case 135:
            	case 138:
            	case 139:
            	case 144:
            	case 148:
            	case 157:
            	case 161:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 176:
            	case 181:
            	case 184:
            	case 187:
            	case 188:
            	case 189:
            	case 197:
            	case 198:
            	case 205:
            	case 207:
            	case 213:
            	case 216:
            	case 221:
            	case 228:
            		{
            			alt150=1;
            		}
            	    break;

            	}

            	switch (alt150) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: statement
            	        {
            	            FOLLOWPUSH(FOLLOW_statement_in_for_loop_statement_sub4350);
            	            statement429=statement(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulefor_loop_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, statement429.tree);

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt150 >= 1 )
            		{
            		    goto loop150;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto rulefor_loop_statement_subEx;
            	}
            	cnt150++;
                }
                loop150: ;	/* Jump to here if this rule does not match */
            }
            FOLLOWPUSH(FOLLOW_k_end_in_for_loop_statement_sub4353);
            k_end430=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end430.tree);
            FOLLOWPUSH(FOLLOW_k_loop_in_for_loop_statement_sub4355);
            k_loop431=k_loop(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulefor_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_loop431.tree);

            // OraclePLSQL.g:484:86: ( label_name )?
            {
                int alt151=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt151=1;
                    	}
                        break;
                }

                switch (alt151) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: label_name
            	    {
            	        FOLLOWPUSH(FOLLOW_label_name_in_for_loop_statement_sub4357);
            	        label_name432=label_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulefor_loop_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, label_name432.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefor_loop_statement_subEx; /* Prevent compiler warnings */
    rulefor_loop_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(59, for_loop_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end for_loop_statement_sub */

/** 
 * $ANTLR start forall_statement
 * OraclePLSQL.g:486:1: forall_statement : forall_statement_sub -> ^( 't_forall' forall_statement_sub ) ;
 */
static OraclePLSQLParser_forall_statement_return
forall_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_forall_statement_return retval;
    ANTLR3_UINT32 forall_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_forall_statement_sub_return forall_statement_sub433;
    #undef	RETURN_TYPE_forall_statement_sub433
    #define	RETURN_TYPE_forall_statement_sub433 OraclePLSQLParser_forall_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_forall_statement_sub;
    /* Initialize rule variables
     */
    forall_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(60)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    forall_statement_sub433.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_forall_statement_sub   = NULL;
    #define CREATE_stream_forall_statement_sub  if (stream_forall_statement_sub == NULL) {stream_forall_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule forall_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:486:18: ( forall_statement_sub -> ^( 't_forall' forall_statement_sub ) )
        // OraclePLSQL.g:486:20: forall_statement_sub
        {
            FOLLOWPUSH(FOLLOW_forall_statement_sub_in_forall_statement4367);
            forall_statement_sub433=forall_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleforall_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_forall_statement_sub; stream_forall_statement_sub->add(stream_forall_statement_sub, forall_statement_sub433.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_FORALL, forall_statement_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 486:41: -> ^( 't_forall' forall_statement_sub )
            	{
            	    // OraclePLSQL.g:486:43: ^( 't_forall' forall_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_FORALL, (pANTLR3_UINT8)"T_FORALL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_forall_statement_sub == NULL ? NULL : stream_forall_statement_sub->nextTree(stream_forall_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleforall_statementEx; /* Prevent compiler warnings */
    ruleforall_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_forall_statement_sub != NULL) stream_forall_statement_sub->free(stream_forall_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(60, forall_statement_StartIndex); }

    return retval;
}
/* $ANTLR end forall_statement */

/** 
 * $ANTLR start forall_statement_sub
 * OraclePLSQL.g:487:1: forall_statement_sub : k_forall ID K_IN bounds_clause ( ( kSAVE kEXCEPTIONS ) sql_statement | sql_statement ( kSAVE kEXCEPTIONS )? | execute_immediate_statement ) ;
 */
static OraclePLSQLParser_forall_statement_sub_return
forall_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_forall_statement_sub_return retval;
    ANTLR3_UINT32 forall_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID435;
    pANTLR3_COMMON_TOKEN    K_IN436;
    OraclePLSQLParser_k_forall_return k_forall434;
    #undef	RETURN_TYPE_k_forall434
    #define	RETURN_TYPE_k_forall434 OraclePLSQLParser_k_forall_return

    OraclePLSQLParser_bounds_clause_return bounds_clause437;
    #undef	RETURN_TYPE_bounds_clause437
    #define	RETURN_TYPE_bounds_clause437 OraclePLSQLParser_bounds_clause_return

    OraclePLSQLParser_kSAVE_return kSAVE438;
    #undef	RETURN_TYPE_kSAVE438
    #define	RETURN_TYPE_kSAVE438 OraclePLSQLParser_kSAVE_return

    OraclePLSQLParser_kEXCEPTIONS_return kEXCEPTIONS439;
    #undef	RETURN_TYPE_kEXCEPTIONS439
    #define	RETURN_TYPE_kEXCEPTIONS439 OraclePLSQLParser_kEXCEPTIONS_return

    OraclePLSQLParser_sql_statement_return sql_statement440;
    #undef	RETURN_TYPE_sql_statement440
    #define	RETURN_TYPE_sql_statement440 OraclePLSQLParser_sql_statement_return

    OraclePLSQLParser_sql_statement_return sql_statement441;
    #undef	RETURN_TYPE_sql_statement441
    #define	RETURN_TYPE_sql_statement441 OraclePLSQLParser_sql_statement_return

    OraclePLSQLParser_kSAVE_return kSAVE442;
    #undef	RETURN_TYPE_kSAVE442
    #define	RETURN_TYPE_kSAVE442 OraclePLSQLParser_kSAVE_return

    OraclePLSQLParser_kEXCEPTIONS_return kEXCEPTIONS443;
    #undef	RETURN_TYPE_kEXCEPTIONS443
    #define	RETURN_TYPE_kEXCEPTIONS443 OraclePLSQLParser_kEXCEPTIONS_return

    OraclePLSQLParser_execute_immediate_statement_return execute_immediate_statement444;
    #undef	RETURN_TYPE_execute_immediate_statement444
    #define	RETURN_TYPE_execute_immediate_statement444 OraclePLSQLParser_execute_immediate_statement_return

    pANTLR3_BASE_TREE ID435_tree;
    pANTLR3_BASE_TREE K_IN436_tree;

    /* Initialize rule variables
     */
    forall_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(61)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID435       = NULL;
    K_IN436       = NULL;
    k_forall434.tree = NULL;
    bounds_clause437.tree = NULL;
    kSAVE438.tree = NULL;
    kEXCEPTIONS439.tree = NULL;
    sql_statement440.tree = NULL;
    sql_statement441.tree = NULL;
    kSAVE442.tree = NULL;
    kEXCEPTIONS443.tree = NULL;
    execute_immediate_statement444.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID435_tree   = NULL;
    K_IN436_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:487:22: ( k_forall ID K_IN bounds_clause ( ( kSAVE kEXCEPTIONS ) sql_statement | sql_statement ( kSAVE kEXCEPTIONS )? | execute_immediate_statement ) )
        // OraclePLSQL.g:488:9: k_forall ID K_IN bounds_clause ( ( kSAVE kEXCEPTIONS ) sql_statement | sql_statement ( kSAVE kEXCEPTIONS )? | execute_immediate_statement )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_forall_in_forall_statement_sub4389);
            k_forall434=k_forall(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleforall_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_forall434.tree);
            ID435 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_forall_statement_sub4391); 
            if  (HASEXCEPTION())
            {
                goto ruleforall_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            ID435_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID435));
            ADAPTOR->addChild(ADAPTOR, root_0, ID435_tree);
            }
            K_IN436 = (pANTLR3_COMMON_TOKEN) MATCHT(K_IN, &FOLLOW_K_IN_in_forall_statement_sub4393); 
            if  (HASEXCEPTION())
            {
                goto ruleforall_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            K_IN436_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_IN436));
            ADAPTOR->addChild(ADAPTOR, root_0, K_IN436_tree);
            }
            FOLLOWPUSH(FOLLOW_bounds_clause_in_forall_statement_sub4395);
            bounds_clause437=bounds_clause(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleforall_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bounds_clause437.tree);

            // OraclePLSQL.g:489:9: ( ( kSAVE kEXCEPTIONS ) sql_statement | sql_statement ( kSAVE kEXCEPTIONS )? | execute_immediate_statement )
            {
                int alt153=3;
                switch ( LA(1) ) 
                {
                case ID:
                	{
                		alt153=1;
                	}
                    break;
                case LPAREN:
                case 133:
                case 144:
                case 148:
                case 161:
                case 176:
                case 181:
                case 187:
                case 188:
                case 189:
                case 197:
                case 216:
                	{
                		alt153=2;
                	}
                    break;
                case 131:
                	{
                		alt153=3;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 153;
                    EXCEPTION->state        = 0;


                    goto ruleforall_statement_subEx;
                }

                switch (alt153) 
                {
            	case 1:
            	    // OraclePLSQL.g:490:13: ( kSAVE kEXCEPTIONS ) sql_statement
            	    {
            	        // OraclePLSQL.g:490:13: ( kSAVE kEXCEPTIONS )
            	        // OraclePLSQL.g:490:15: kSAVE kEXCEPTIONS
            	        {
            	            FOLLOWPUSH(FOLLOW_kSAVE_in_forall_statement_sub4421);
            	            kSAVE438=kSAVE(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleforall_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kSAVE438.tree);
            	            FOLLOWPUSH(FOLLOW_kEXCEPTIONS_in_forall_statement_sub4423);
            	            kEXCEPTIONS439=kEXCEPTIONS(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleforall_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kEXCEPTIONS439.tree);

            	        }

            	        FOLLOWPUSH(FOLLOW_sql_statement_in_forall_statement_sub4427);
            	        sql_statement440=sql_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleforall_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, sql_statement440.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:491:13: sql_statement ( kSAVE kEXCEPTIONS )?
            	    {
            	        FOLLOWPUSH(FOLLOW_sql_statement_in_forall_statement_sub4441);
            	        sql_statement441=sql_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleforall_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, sql_statement441.tree);

            	        // OraclePLSQL.g:491:27: ( kSAVE kEXCEPTIONS )?
            	        {
            	            int alt152=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                	{
            	                		alt152=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt152) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:491:29: kSAVE kEXCEPTIONS
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_kSAVE_in_forall_statement_sub4445);
            	        	        kSAVE442=kSAVE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleforall_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kSAVE442.tree);
            	        	        FOLLOWPUSH(FOLLOW_kEXCEPTIONS_in_forall_statement_sub4447);
            	        	        kEXCEPTIONS443=kEXCEPTIONS(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleforall_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kEXCEPTIONS443.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:492:13: execute_immediate_statement
            	    {
            	        FOLLOWPUSH(FOLLOW_execute_immediate_statement_in_forall_statement_sub4464);
            	        execute_immediate_statement444=execute_immediate_statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleforall_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, execute_immediate_statement444.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleforall_statement_subEx; /* Prevent compiler warnings */
    ruleforall_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(61, forall_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end forall_statement_sub */

/** 
 * $ANTLR start bounds_clause
 * OraclePLSQL.g:496:1: bounds_clause : ( numeric_expression DOUBLEDOT numeric_expression | kINDICES kOF atom ( k_between numeric_expression k_and numeric_expression )? | kVALUES kOF atom );
 */
static OraclePLSQLParser_bounds_clause_return
bounds_clause(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_bounds_clause_return retval;
    ANTLR3_UINT32 bounds_clause_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOUBLEDOT446;
    OraclePLSQLParser_numeric_expression_return numeric_expression445;
    #undef	RETURN_TYPE_numeric_expression445
    #define	RETURN_TYPE_numeric_expression445 OraclePLSQLParser_numeric_expression_return

    OraclePLSQLParser_numeric_expression_return numeric_expression447;
    #undef	RETURN_TYPE_numeric_expression447
    #define	RETURN_TYPE_numeric_expression447 OraclePLSQLParser_numeric_expression_return

    OraclePLSQLParser_kINDICES_return kINDICES448;
    #undef	RETURN_TYPE_kINDICES448
    #define	RETURN_TYPE_kINDICES448 OraclePLSQLParser_kINDICES_return

    OraclePLSQLParser_kOF_return kOF449;
    #undef	RETURN_TYPE_kOF449
    #define	RETURN_TYPE_kOF449 OraclePLSQLParser_kOF_return

    OraclePLSQLParser_atom_return atom450;
    #undef	RETURN_TYPE_atom450
    #define	RETURN_TYPE_atom450 OraclePLSQLParser_atom_return

    OraclePLSQLParser_k_between_return k_between451;
    #undef	RETURN_TYPE_k_between451
    #define	RETURN_TYPE_k_between451 OraclePLSQLParser_k_between_return

    OraclePLSQLParser_numeric_expression_return numeric_expression452;
    #undef	RETURN_TYPE_numeric_expression452
    #define	RETURN_TYPE_numeric_expression452 OraclePLSQLParser_numeric_expression_return

    OraclePLSQLParser_k_and_return k_and453;
    #undef	RETURN_TYPE_k_and453
    #define	RETURN_TYPE_k_and453 OraclePLSQLParser_k_and_return

    OraclePLSQLParser_numeric_expression_return numeric_expression454;
    #undef	RETURN_TYPE_numeric_expression454
    #define	RETURN_TYPE_numeric_expression454 OraclePLSQLParser_numeric_expression_return

    OraclePLSQLParser_kVALUES_return kVALUES455;
    #undef	RETURN_TYPE_kVALUES455
    #define	RETURN_TYPE_kVALUES455 OraclePLSQLParser_kVALUES_return

    OraclePLSQLParser_kOF_return kOF456;
    #undef	RETURN_TYPE_kOF456
    #define	RETURN_TYPE_kOF456 OraclePLSQLParser_kOF_return

    OraclePLSQLParser_atom_return atom457;
    #undef	RETURN_TYPE_atom457
    #define	RETURN_TYPE_atom457 OraclePLSQLParser_atom_return

    pANTLR3_BASE_TREE DOUBLEDOT446_tree;

    /* Initialize rule variables
     */
    bounds_clause_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(62)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOUBLEDOT446       = NULL;
    numeric_expression445.tree = NULL;
    numeric_expression447.tree = NULL;
    kINDICES448.tree = NULL;
    kOF449.tree = NULL;
    atom450.tree = NULL;
    k_between451.tree = NULL;
    numeric_expression452.tree = NULL;
    k_and453.tree = NULL;
    numeric_expression454.tree = NULL;
    kVALUES455.tree = NULL;
    kOF456.tree = NULL;
    atom457.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOUBLEDOT446_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:497:5: ( numeric_expression DOUBLEDOT numeric_expression | kINDICES kOF atom ( k_between numeric_expression k_and numeric_expression )? | kVALUES kOF atom )
            
            ANTLR3_UINT32 alt155;

            alt155=3;

            switch ( LA(1) ) 
            {
            case LPAREN:
            case K_OUT:
            case INTEGER:
            case COLON:
            case MINUS:
            case PLUS:
            case REAL_NUMBER:
            case QUOTED_STRING:
            case BINDVAR:
            case 127:
            case 128:
            case 129:
            case 130:
            case 157:
            case 163:
            case 169:
            case 184:
            case 190:
            case 194:
            case 199:
            case 200:
            case 201:
            case 203:
            case 232:
            	{
            		alt155=1;
            	}
                break;
            case ID:
            	{

            		{
            		    int LA155_4 = LA(2);
            		    if ( (synpred238_OraclePLSQL(ctx))) 
            		    {
            		        alt155=1;
            		    }
            		    else if ( (( (synpred240_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "INDICES"    )))) ))) 
            		    {
            		        alt155=2;
            		    }
            		    else if ( ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "VALUES"     ))))) 
            		    {
            		        alt155=3;
            		    }
            		    else 
            		    {
            		        if (BACKTRACKING>0)
            		        {
            		            FAILEDFLAG = ANTLR3_TRUE;
            		            return retval;
            		        }
            		    
            		        CONSTRUCTEX();
            		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		        EXCEPTION->message      = (void *)"";
            		        EXCEPTION->decisionNum  = 155;
            		        EXCEPTION->state        = 4;


            		        goto rulebounds_clauseEx;
            		    }
            		}
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 155;
                EXCEPTION->state        = 0;


                goto rulebounds_clauseEx;
            }

            switch (alt155) 
            {
        	case 1:
        	    // OraclePLSQL.g:497:7: numeric_expression DOUBLEDOT numeric_expression
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_bounds_clause4493);
        	        numeric_expression445=numeric_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_expression445.tree);
        	        DOUBLEDOT446 = (pANTLR3_COMMON_TOKEN) MATCHT(DOUBLEDOT, &FOLLOW_DOUBLEDOT_in_bounds_clause4495); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        DOUBLEDOT446_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOUBLEDOT446));
        	        ADAPTOR->addChild(ADAPTOR, root_0, DOUBLEDOT446_tree);
        	        }
        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_bounds_clause4497);
        	        numeric_expression447=numeric_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_expression447.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:498:7: kINDICES kOF atom ( k_between numeric_expression k_and numeric_expression )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_kINDICES_in_bounds_clause4505);
        	        kINDICES448=kINDICES(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kINDICES448.tree);
        	        FOLLOWPUSH(FOLLOW_kOF_in_bounds_clause4507);
        	        kOF449=kOF(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kOF449.tree);
        	        FOLLOWPUSH(FOLLOW_atom_in_bounds_clause4509);
        	        atom450=atom(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, atom450.tree);

        	        // OraclePLSQL.g:498:25: ( k_between numeric_expression k_and numeric_expression )?
        	        {
        	            int alt154=2;
        	            switch ( LA(1) ) 
        	            {
        	                case 153:
        	                	{
        	                		alt154=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt154) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:498:27: k_between numeric_expression k_and numeric_expression
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_between_in_bounds_clause4513);
        	        	        k_between451=k_between(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulebounds_clauseEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_between451.tree);
        	        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_bounds_clause4515);
        	        	        numeric_expression452=numeric_expression(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulebounds_clauseEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_expression452.tree);
        	        	        FOLLOWPUSH(FOLLOW_k_and_in_bounds_clause4517);
        	        	        k_and453=k_and(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulebounds_clauseEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_and453.tree);
        	        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_bounds_clause4519);
        	        	        numeric_expression454=numeric_expression(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulebounds_clauseEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_expression454.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:499:7: kVALUES kOF atom
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_kVALUES_in_bounds_clause4530);
        	        kVALUES455=kVALUES(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kVALUES455.tree);
        	        FOLLOWPUSH(FOLLOW_kOF_in_bounds_clause4532);
        	        kOF456=kOF(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kOF456.tree);
        	        FOLLOWPUSH(FOLLOW_atom_in_bounds_clause4534);
        	        atom457=atom(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebounds_clauseEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, atom457.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulebounds_clauseEx; /* Prevent compiler warnings */
    rulebounds_clauseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(62, bounds_clause_StartIndex); }

    return retval;
}
/* $ANTLR end bounds_clause */

/** 
 * $ANTLR start goto_statement
 * OraclePLSQL.g:502:1: goto_statement : k_goto label_name -> ^( 't_goto' k_goto label_name ) ;
 */
static OraclePLSQLParser_goto_statement_return
goto_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_goto_statement_return retval;
    ANTLR3_UINT32 goto_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_goto_return k_goto458;
    #undef	RETURN_TYPE_k_goto458
    #define	RETURN_TYPE_k_goto458 OraclePLSQLParser_k_goto_return

    OraclePLSQLParser_label_name_return label_name459;
    #undef	RETURN_TYPE_label_name459
    #define	RETURN_TYPE_label_name459 OraclePLSQLParser_label_name_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_goto;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_label_name;
    /* Initialize rule variables
     */
    goto_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(63)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_goto458.tree = NULL;
    label_name459.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_k_goto   = NULL;
    #define CREATE_stream_k_goto  if (stream_k_goto == NULL) {stream_k_goto = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_goto"); }
    stream_label_name   = NULL;
    #define CREATE_stream_label_name  if (stream_label_name == NULL) {stream_label_name = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule label_name"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:502:16: ( k_goto label_name -> ^( 't_goto' k_goto label_name ) )
        // OraclePLSQL.g:502:18: k_goto label_name
        {
            FOLLOWPUSH(FOLLOW_k_goto_in_goto_statement4547);
            k_goto458=k_goto(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulegoto_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_goto; stream_k_goto->add(stream_k_goto, k_goto458.tree, NULL); }
            FOLLOWPUSH(FOLLOW_label_name_in_goto_statement4549);
            label_name459=label_name(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulegoto_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_label_name; stream_label_name->add(stream_label_name, label_name459.tree, NULL); }

             
            /* AST REWRITE
             * elements          : label_name, T_GOTO, k_goto
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 502:36: -> ^( 't_goto' k_goto label_name )
            	{
            	    // OraclePLSQL.g:502:38: ^( 't_goto' k_goto label_name )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_GOTO, (pANTLR3_UINT8)"T_GOTO"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_goto == NULL ? NULL : stream_k_goto->nextTree(stream_k_goto));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_label_name == NULL ? NULL : stream_label_name->nextTree(stream_label_name));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulegoto_statementEx; /* Prevent compiler warnings */
    rulegoto_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_k_goto != NULL) stream_k_goto->free(stream_k_goto);
        if (stream_label_name != NULL) stream_label_name->free(stream_label_name);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(63, goto_statement_StartIndex); }

    return retval;
}
/* $ANTLR end goto_statement */

/** 
 * $ANTLR start if_statement
 * OraclePLSQL.g:504:1: if_statement : if_statement_if ( if_statement_elsif )* ( if_statement_else )? if_statement_end ;
 */
static OraclePLSQLParser_if_statement_return
if_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_if_statement_return retval;
    ANTLR3_UINT32 if_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_if_statement_if_return if_statement_if460;
    #undef	RETURN_TYPE_if_statement_if460
    #define	RETURN_TYPE_if_statement_if460 OraclePLSQLParser_if_statement_if_return

    OraclePLSQLParser_if_statement_elsif_return if_statement_elsif461;
    #undef	RETURN_TYPE_if_statement_elsif461
    #define	RETURN_TYPE_if_statement_elsif461 OraclePLSQLParser_if_statement_elsif_return

    OraclePLSQLParser_if_statement_else_return if_statement_else462;
    #undef	RETURN_TYPE_if_statement_else462
    #define	RETURN_TYPE_if_statement_else462 OraclePLSQLParser_if_statement_else_return

    OraclePLSQLParser_if_statement_end_return if_statement_end463;
    #undef	RETURN_TYPE_if_statement_end463
    #define	RETURN_TYPE_if_statement_end463 OraclePLSQLParser_if_statement_end_return


    /* Initialize rule variables
     */
    if_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(64)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    if_statement_if460.tree = NULL;
    if_statement_elsif461.tree = NULL;
    if_statement_else462.tree = NULL;
    if_statement_end463.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:504:14: ( if_statement_if ( if_statement_elsif )* ( if_statement_else )? if_statement_end )
        // OraclePLSQL.g:509:3: if_statement_if ( if_statement_elsif )* ( if_statement_else )? if_statement_end
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_if_statement_if_in_if_statement4604);
            if_statement_if460=if_statement_if(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, if_statement_if460.tree);

            // OraclePLSQL.g:510:9: ( if_statement_elsif )*

            for (;;)
            {
                int alt156=2;
                switch ( LA(1) ) 
                {
                case 167:
                	{
                		alt156=1;
                	}
                    break;

                }

                switch (alt156) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: if_statement_elsif
            	    {
            	        FOLLOWPUSH(FOLLOW_if_statement_elsif_in_if_statement4614);
            	        if_statement_elsif461=if_statement_elsif(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleif_statementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, if_statement_elsif461.tree);

            	    }
            	    break;

            	default:
            	    goto loop156;	/* break out of the loop */
            	    break;
                }
            }
            loop156: ; /* Jump out to here if this rule does not match */


            // OraclePLSQL.g:511:9: ( if_statement_else )?
            {
                int alt157=2;
                switch ( LA(1) ) 
                {
                    case 166:
                    	{
                    		alt157=1;
                    	}
                        break;
                }

                switch (alt157) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: if_statement_else
            	    {
            	        FOLLOWPUSH(FOLLOW_if_statement_else_in_if_statement4625);
            	        if_statement_else462=if_statement_else(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleif_statementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, if_statement_else462.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_if_statement_end_in_if_statement4630);
            if_statement_end463=if_statement_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, if_statement_end463.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleif_statementEx; /* Prevent compiler warnings */
    ruleif_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(64, if_statement_StartIndex); }

    return retval;
}
/* $ANTLR end if_statement */

/** 
 * $ANTLR start if_statement_if
 * OraclePLSQL.g:514:1: if_statement_if : k_if expression k_then ( statement )+ -> ^( 't_if' k_if expression k_then ^( 't_block_block' ( statement )+ ) ) ;
 */
static OraclePLSQLParser_if_statement_if_return
if_statement_if(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_if_statement_if_return retval;
    ANTLR3_UINT32 if_statement_if_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_if_return k_if464;
    #undef	RETURN_TYPE_k_if464
    #define	RETURN_TYPE_k_if464 OraclePLSQLParser_k_if_return

    OraclePLSQLParser_expression_return expression465;
    #undef	RETURN_TYPE_expression465
    #define	RETURN_TYPE_expression465 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_then_return k_then466;
    #undef	RETURN_TYPE_k_then466
    #define	RETURN_TYPE_k_then466 OraclePLSQLParser_k_then_return

    OraclePLSQLParser_statement_return statement467;
    #undef	RETURN_TYPE_statement467
    #define	RETURN_TYPE_statement467 OraclePLSQLParser_statement_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_expression;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_then;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_if;
    /* Initialize rule variables
     */
    if_statement_if_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(65)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_if464.tree = NULL;
    expression465.tree = NULL;
    k_then466.tree = NULL;
    statement467.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_expression   = NULL;
    #define CREATE_stream_expression  if (stream_expression == NULL) {stream_expression = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule expression"); }
    stream_statement   = NULL;
    #define CREATE_stream_statement  if (stream_statement == NULL) {stream_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule statement"); }
    stream_k_then   = NULL;
    #define CREATE_stream_k_then  if (stream_k_then == NULL) {stream_k_then = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_then"); }
    stream_k_if   = NULL;
    #define CREATE_stream_k_if  if (stream_k_if == NULL) {stream_k_if = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_if"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:515:2: ( k_if expression k_then ( statement )+ -> ^( 't_if' k_if expression k_then ^( 't_block_block' ( statement )+ ) ) )
        // OraclePLSQL.g:515:4: k_if expression k_then ( statement )+
        {
            FOLLOWPUSH(FOLLOW_k_if_in_if_statement_if4643);
            k_if464=k_if(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_ifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_if; stream_k_if->add(stream_k_if, k_if464.tree, NULL); }
            FOLLOWPUSH(FOLLOW_expression_in_if_statement_if4645);
            expression465=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_ifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_expression; stream_expression->add(stream_expression, expression465.tree, NULL); }
            FOLLOWPUSH(FOLLOW_k_then_in_if_statement_if4647);
            k_then466=k_then(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_ifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_then; stream_k_then->add(stream_k_then, k_then466.tree, NULL); }
            // OraclePLSQL.g:515:27: ( statement )+
            {
                int cnt158=0;

                for (;;)
                {
                    int alt158=2;
            	switch ( LA(1) ) 
            	{
            	case LPAREN:
            	case K_OUT:
            	case ID:
            	case LLABEL:
            	case COLON:
            	case BINDVAR:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 133:
            	case 134:
            	case 135:
            	case 138:
            	case 139:
            	case 144:
            	case 148:
            	case 157:
            	case 161:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 176:
            	case 181:
            	case 184:
            	case 187:
            	case 188:
            	case 189:
            	case 197:
            	case 198:
            	case 205:
            	case 207:
            	case 213:
            	case 216:
            	case 221:
            	case 228:
            		{
            			alt158=1;
            		}
            	    break;

            	}

            	switch (alt158) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: statement
            	        {
            	            FOLLOWPUSH(FOLLOW_statement_in_if_statement_if4649);
            	            statement467=statement(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleif_statement_ifEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) { CREATE_stream_statement; stream_statement->add(stream_statement, statement467.tree, NULL); }

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt158 >= 1 )
            		{
            		    goto loop158;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto ruleif_statement_ifEx;
            	}
            	cnt158++;
                }
                loop158: ;	/* Jump to here if this rule does not match */
            }

             
            /* AST REWRITE
             * elements          : T_BLOCK_BLOCK, expression, k_if, T_IF, k_then, statement
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 515:43: -> ^( 't_if' k_if expression k_then ^( 't_block_block' ( statement )+ ) )
            	{
            	    // OraclePLSQL.g:515:47: ^( 't_if' k_if expression k_then ^( 't_block_block' ( statement )+ ) )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_IF, (pANTLR3_UINT8)"T_IF"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_if == NULL ? NULL : stream_k_if->nextTree(stream_k_if));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_expression == NULL ? NULL : stream_expression->nextTree(stream_expression));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_then == NULL ? NULL : stream_k_then->nextTree(stream_k_then));
            	        // OraclePLSQL.g:515:79: ^( 't_block_block' ( statement )+ )
            	        {
            	            pANTLR3_BASE_TREE root_2 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	            root_2 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_BLOCK_BLOCK, (pANTLR3_UINT8)"T_BLOCK_BLOCK"), root_2));

            	            if ((stream_statement == NULL || !stream_statement->hasNext(stream_statement))  )
            	            {
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_REWRITE_EARLY_EXCEPTION;
            	                EXCEPTION->name         = (void *)ANTLR3_REWRITE_EARLY_EXCEPTION_NAME;
            	            }
            	            else
            	            {
            	            	while ( (stream_statement->hasNext(stream_statement))  ) {
            	            		ADAPTOR->addChild(ADAPTOR, root_2, stream_statement == NULL ? NULL : stream_statement->nextTree(stream_statement));

            	            	}
            	            	stream_statement->reset(stream_statement);

            	            }
            	            ADAPTOR->addChild(ADAPTOR, root_1, root_2);
            	        }

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleif_statement_ifEx; /* Prevent compiler warnings */
    ruleif_statement_ifEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_expression != NULL) stream_expression->free(stream_expression);
        if (stream_statement != NULL) stream_statement->free(stream_statement);
        if (stream_k_then != NULL) stream_k_then->free(stream_k_then);
        if (stream_k_if != NULL) stream_k_if->free(stream_k_if);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(65, if_statement_if_StartIndex); }

    return retval;
}
/* $ANTLR end if_statement_if */

/** 
 * $ANTLR start if_statement_elsif
 * OraclePLSQL.g:517:1: if_statement_elsif : k_elsif expression k_then ( statement )+ -> ^( 't_elsif' k_elsif expression k_then ^( 't_block_block' ( statement )+ ) ) ;
 */
static OraclePLSQLParser_if_statement_elsif_return
if_statement_elsif(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_if_statement_elsif_return retval;
    ANTLR3_UINT32 if_statement_elsif_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_elsif_return k_elsif468;
    #undef	RETURN_TYPE_k_elsif468
    #define	RETURN_TYPE_k_elsif468 OraclePLSQLParser_k_elsif_return

    OraclePLSQLParser_expression_return expression469;
    #undef	RETURN_TYPE_expression469
    #define	RETURN_TYPE_expression469 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_then_return k_then470;
    #undef	RETURN_TYPE_k_then470
    #define	RETURN_TYPE_k_then470 OraclePLSQLParser_k_then_return

    OraclePLSQLParser_statement_return statement471;
    #undef	RETURN_TYPE_statement471
    #define	RETURN_TYPE_statement471 OraclePLSQLParser_statement_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_expression;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_then;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_elsif;
    /* Initialize rule variables
     */
    if_statement_elsif_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(66)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_elsif468.tree = NULL;
    expression469.tree = NULL;
    k_then470.tree = NULL;
    statement471.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_expression   = NULL;
    #define CREATE_stream_expression  if (stream_expression == NULL) {stream_expression = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule expression"); }
    stream_statement   = NULL;
    #define CREATE_stream_statement  if (stream_statement == NULL) {stream_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule statement"); }
    stream_k_then   = NULL;
    #define CREATE_stream_k_then  if (stream_k_then == NULL) {stream_k_then = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_then"); }
    stream_k_elsif   = NULL;
    #define CREATE_stream_k_elsif  if (stream_k_elsif == NULL) {stream_k_elsif = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_elsif"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:518:2: ( k_elsif expression k_then ( statement )+ -> ^( 't_elsif' k_elsif expression k_then ^( 't_block_block' ( statement )+ ) ) )
        // OraclePLSQL.g:518:4: k_elsif expression k_then ( statement )+
        {
            FOLLOWPUSH(FOLLOW_k_elsif_in_if_statement_elsif4685);
            k_elsif468=k_elsif(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_elsifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_elsif; stream_k_elsif->add(stream_k_elsif, k_elsif468.tree, NULL); }
            FOLLOWPUSH(FOLLOW_expression_in_if_statement_elsif4687);
            expression469=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_elsifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_expression; stream_expression->add(stream_expression, expression469.tree, NULL); }
            FOLLOWPUSH(FOLLOW_k_then_in_if_statement_elsif4689);
            k_then470=k_then(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_elsifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_then; stream_k_then->add(stream_k_then, k_then470.tree, NULL); }
            // OraclePLSQL.g:518:30: ( statement )+
            {
                int cnt159=0;

                for (;;)
                {
                    int alt159=2;
            	switch ( LA(1) ) 
            	{
            	case LPAREN:
            	case K_OUT:
            	case ID:
            	case LLABEL:
            	case COLON:
            	case BINDVAR:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 133:
            	case 134:
            	case 135:
            	case 138:
            	case 139:
            	case 144:
            	case 148:
            	case 157:
            	case 161:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 176:
            	case 181:
            	case 184:
            	case 187:
            	case 188:
            	case 189:
            	case 197:
            	case 198:
            	case 205:
            	case 207:
            	case 213:
            	case 216:
            	case 221:
            	case 228:
            		{
            			alt159=1;
            		}
            	    break;

            	}

            	switch (alt159) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: statement
            	        {
            	            FOLLOWPUSH(FOLLOW_statement_in_if_statement_elsif4691);
            	            statement471=statement(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleif_statement_elsifEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) { CREATE_stream_statement; stream_statement->add(stream_statement, statement471.tree, NULL); }

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt159 >= 1 )
            		{
            		    goto loop159;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto ruleif_statement_elsifEx;
            	}
            	cnt159++;
                }
                loop159: ;	/* Jump to here if this rule does not match */
            }

             
            /* AST REWRITE
             * elements          : expression, k_elsif, statement, T_BLOCK_BLOCK, k_then, T_ELSIF
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 518:42: -> ^( 't_elsif' k_elsif expression k_then ^( 't_block_block' ( statement )+ ) )
            	{
            	    // OraclePLSQL.g:518:46: ^( 't_elsif' k_elsif expression k_then ^( 't_block_block' ( statement )+ ) )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_ELSIF, (pANTLR3_UINT8)"T_ELSIF"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_elsif == NULL ? NULL : stream_k_elsif->nextTree(stream_k_elsif));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_expression == NULL ? NULL : stream_expression->nextTree(stream_expression));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_then == NULL ? NULL : stream_k_then->nextTree(stream_k_then));
            	        // OraclePLSQL.g:518:84: ^( 't_block_block' ( statement )+ )
            	        {
            	            pANTLR3_BASE_TREE root_2 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	            root_2 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_BLOCK_BLOCK, (pANTLR3_UINT8)"T_BLOCK_BLOCK"), root_2));

            	            if ((stream_statement == NULL || !stream_statement->hasNext(stream_statement))  )
            	            {
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_REWRITE_EARLY_EXCEPTION;
            	                EXCEPTION->name         = (void *)ANTLR3_REWRITE_EARLY_EXCEPTION_NAME;
            	            }
            	            else
            	            {
            	            	while ( (stream_statement->hasNext(stream_statement))  ) {
            	            		ADAPTOR->addChild(ADAPTOR, root_2, stream_statement == NULL ? NULL : stream_statement->nextTree(stream_statement));

            	            	}
            	            	stream_statement->reset(stream_statement);

            	            }
            	            ADAPTOR->addChild(ADAPTOR, root_1, root_2);
            	        }

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleif_statement_elsifEx; /* Prevent compiler warnings */
    ruleif_statement_elsifEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_expression != NULL) stream_expression->free(stream_expression);
        if (stream_statement != NULL) stream_statement->free(stream_statement);
        if (stream_k_then != NULL) stream_k_then->free(stream_k_then);
        if (stream_k_elsif != NULL) stream_k_elsif->free(stream_k_elsif);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(66, if_statement_elsif_StartIndex); }

    return retval;
}
/* $ANTLR end if_statement_elsif */

/** 
 * $ANTLR start if_statement_else
 * OraclePLSQL.g:520:1: if_statement_else : k_else ( statement )+ -> ^( 't_else' k_else ^( 't_block_block' ( statement )+ ) ) ;
 */
static OraclePLSQLParser_if_statement_else_return
if_statement_else(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_if_statement_else_return retval;
    ANTLR3_UINT32 if_statement_else_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_else_return k_else472;
    #undef	RETURN_TYPE_k_else472
    #define	RETURN_TYPE_k_else472 OraclePLSQLParser_k_else_return

    OraclePLSQLParser_statement_return statement473;
    #undef	RETURN_TYPE_statement473
    #define	RETURN_TYPE_statement473 OraclePLSQLParser_statement_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_else;
    /* Initialize rule variables
     */
    if_statement_else_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(67)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_else472.tree = NULL;
    statement473.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_statement   = NULL;
    #define CREATE_stream_statement  if (stream_statement == NULL) {stream_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule statement"); }
    stream_k_else   = NULL;
    #define CREATE_stream_k_else  if (stream_k_else == NULL) {stream_k_else = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_else"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:521:2: ( k_else ( statement )+ -> ^( 't_else' k_else ^( 't_block_block' ( statement )+ ) ) )
        // OraclePLSQL.g:521:4: k_else ( statement )+
        {
            FOLLOWPUSH(FOLLOW_k_else_in_if_statement_else4723);
            k_else472=k_else(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_elseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_else; stream_k_else->add(stream_k_else, k_else472.tree, NULL); }
            // OraclePLSQL.g:521:11: ( statement )+
            {
                int cnt160=0;

                for (;;)
                {
                    int alt160=2;
            	switch ( LA(1) ) 
            	{
            	case LPAREN:
            	case K_OUT:
            	case ID:
            	case LLABEL:
            	case COLON:
            	case BINDVAR:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 133:
            	case 134:
            	case 135:
            	case 138:
            	case 139:
            	case 144:
            	case 148:
            	case 157:
            	case 161:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 176:
            	case 181:
            	case 184:
            	case 187:
            	case 188:
            	case 189:
            	case 197:
            	case 198:
            	case 205:
            	case 207:
            	case 213:
            	case 216:
            	case 221:
            	case 228:
            		{
            			alt160=1;
            		}
            	    break;

            	}

            	switch (alt160) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: statement
            	        {
            	            FOLLOWPUSH(FOLLOW_statement_in_if_statement_else4725);
            	            statement473=statement(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleif_statement_elseEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) { CREATE_stream_statement; stream_statement->add(stream_statement, statement473.tree, NULL); }

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt160 >= 1 )
            		{
            		    goto loop160;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto ruleif_statement_elseEx;
            	}
            	cnt160++;
                }
                loop160: ;	/* Jump to here if this rule does not match */
            }

             
            /* AST REWRITE
             * elements          : statement, T_BLOCK_BLOCK, T_ELSE, k_else
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 521:43: -> ^( 't_else' k_else ^( 't_block_block' ( statement )+ ) )
            	{
            	    // OraclePLSQL.g:521:47: ^( 't_else' k_else ^( 't_block_block' ( statement )+ ) )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_ELSE, (pANTLR3_UINT8)"T_ELSE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_else == NULL ? NULL : stream_k_else->nextTree(stream_k_else));
            	        // OraclePLSQL.g:521:65: ^( 't_block_block' ( statement )+ )
            	        {
            	            pANTLR3_BASE_TREE root_2 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	            root_2 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_BLOCK_BLOCK, (pANTLR3_UINT8)"T_BLOCK_BLOCK"), root_2));

            	            if ((stream_statement == NULL || !stream_statement->hasNext(stream_statement))  )
            	            {
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_REWRITE_EARLY_EXCEPTION;
            	                EXCEPTION->name         = (void *)ANTLR3_REWRITE_EARLY_EXCEPTION_NAME;
            	            }
            	            else
            	            {
            	            	while ( (stream_statement->hasNext(stream_statement))  ) {
            	            		ADAPTOR->addChild(ADAPTOR, root_2, stream_statement == NULL ? NULL : stream_statement->nextTree(stream_statement));

            	            	}
            	            	stream_statement->reset(stream_statement);

            	            }
            	            ADAPTOR->addChild(ADAPTOR, root_1, root_2);
            	        }

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleif_statement_elseEx; /* Prevent compiler warnings */
    ruleif_statement_elseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_statement != NULL) stream_statement->free(stream_statement);
        if (stream_k_else != NULL) stream_k_else->free(stream_k_else);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(67, if_statement_else_StartIndex); }

    return retval;
}
/* $ANTLR end if_statement_else */

/** 
 * $ANTLR start if_statement_end
 * OraclePLSQL.g:523:1: if_statement_end : k_end k_if -> ^( 't_endif' k_end k_if ) ;
 */
static OraclePLSQLParser_if_statement_end_return
if_statement_end(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_if_statement_end_return retval;
    ANTLR3_UINT32 if_statement_end_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_end_return k_end474;
    #undef	RETURN_TYPE_k_end474
    #define	RETURN_TYPE_k_end474 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_k_if_return k_if475;
    #undef	RETURN_TYPE_k_if475
    #define	RETURN_TYPE_k_if475 OraclePLSQLParser_k_if_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_if;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_end;
    /* Initialize rule variables
     */
    if_statement_end_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(68)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_end474.tree = NULL;
    k_if475.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_k_if   = NULL;
    #define CREATE_stream_k_if  if (stream_k_if == NULL) {stream_k_if = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_if"); }
    stream_k_end   = NULL;
    #define CREATE_stream_k_end  if (stream_k_end == NULL) {stream_k_end = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_end"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:524:2: ( k_end k_if -> ^( 't_endif' k_end k_if ) )
        // OraclePLSQL.g:524:4: k_end k_if
        {
            FOLLOWPUSH(FOLLOW_k_end_in_if_statement_end4773);
            k_end474=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_endEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_end; stream_k_end->add(stream_k_end, k_end474.tree, NULL); }
            FOLLOWPUSH(FOLLOW_k_if_in_if_statement_end4775);
            k_if475=k_if(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleif_statement_endEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_if; stream_k_if->add(stream_k_if, k_if475.tree, NULL); }

             
            /* AST REWRITE
             * elements          : k_end, T_ENDIF, k_if
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 524:15: -> ^( 't_endif' k_end k_if )
            	{
            	    // OraclePLSQL.g:524:17: ^( 't_endif' k_end k_if )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_ENDIF, (pANTLR3_UINT8)"T_ENDIF"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_end == NULL ? NULL : stream_k_end->nextTree(stream_k_end));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_if == NULL ? NULL : stream_k_if->nextTree(stream_k_if));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleif_statement_endEx; /* Prevent compiler warnings */
    ruleif_statement_endEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_k_if != NULL) stream_k_if->free(stream_k_if);
        if (stream_k_end != NULL) stream_k_end->free(stream_k_end);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(68, if_statement_end_StartIndex); }

    return retval;
}
/* $ANTLR end if_statement_end */

/** 
 * $ANTLR start while_loop_statement
 * OraclePLSQL.g:527:1: while_loop_statement : while_loop_statement_sub -> ^( 't_while' while_loop_statement_sub ) ;
 */
static OraclePLSQLParser_while_loop_statement_return
while_loop_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_while_loop_statement_return retval;
    ANTLR3_UINT32 while_loop_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_while_loop_statement_sub_return while_loop_statement_sub476;
    #undef	RETURN_TYPE_while_loop_statement_sub476
    #define	RETURN_TYPE_while_loop_statement_sub476 OraclePLSQLParser_while_loop_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_while_loop_statement_sub;
    /* Initialize rule variables
     */
    while_loop_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(69)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    while_loop_statement_sub476.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_while_loop_statement_sub   = NULL;
    #define CREATE_stream_while_loop_statement_sub  if (stream_while_loop_statement_sub == NULL) {stream_while_loop_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule while_loop_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:527:22: ( while_loop_statement_sub -> ^( 't_while' while_loop_statement_sub ) )
        // OraclePLSQL.g:527:24: while_loop_statement_sub
        {
            FOLLOWPUSH(FOLLOW_while_loop_statement_sub_in_while_loop_statement4794);
            while_loop_statement_sub476=while_loop_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulewhile_loop_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_while_loop_statement_sub; stream_while_loop_statement_sub->add(stream_while_loop_statement_sub, while_loop_statement_sub476.tree, NULL); }

             
            /* AST REWRITE
             * elements          : while_loop_statement_sub, T_WHILE
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 527:49: -> ^( 't_while' while_loop_statement_sub )
            	{
            	    // OraclePLSQL.g:527:51: ^( 't_while' while_loop_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_WHILE, (pANTLR3_UINT8)"T_WHILE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_while_loop_statement_sub == NULL ? NULL : stream_while_loop_statement_sub->nextTree(stream_while_loop_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulewhile_loop_statementEx; /* Prevent compiler warnings */
    rulewhile_loop_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_while_loop_statement_sub != NULL) stream_while_loop_statement_sub->free(stream_while_loop_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(69, while_loop_statement_StartIndex); }

    return retval;
}
/* $ANTLR end while_loop_statement */

/** 
 * $ANTLR start while_loop_statement_sub
 * OraclePLSQL.g:528:1: while_loop_statement_sub : k_while expression k_loop ( statement )+ k_end k_loop ( label_name )? ;
 */
static OraclePLSQLParser_while_loop_statement_sub_return
while_loop_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_while_loop_statement_sub_return retval;
    ANTLR3_UINT32 while_loop_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_while_return k_while477;
    #undef	RETURN_TYPE_k_while477
    #define	RETURN_TYPE_k_while477 OraclePLSQLParser_k_while_return

    OraclePLSQLParser_expression_return expression478;
    #undef	RETURN_TYPE_expression478
    #define	RETURN_TYPE_expression478 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_loop_return k_loop479;
    #undef	RETURN_TYPE_k_loop479
    #define	RETURN_TYPE_k_loop479 OraclePLSQLParser_k_loop_return

    OraclePLSQLParser_statement_return statement480;
    #undef	RETURN_TYPE_statement480
    #define	RETURN_TYPE_statement480 OraclePLSQLParser_statement_return

    OraclePLSQLParser_k_end_return k_end481;
    #undef	RETURN_TYPE_k_end481
    #define	RETURN_TYPE_k_end481 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_k_loop_return k_loop482;
    #undef	RETURN_TYPE_k_loop482
    #define	RETURN_TYPE_k_loop482 OraclePLSQLParser_k_loop_return

    OraclePLSQLParser_label_name_return label_name483;
    #undef	RETURN_TYPE_label_name483
    #define	RETURN_TYPE_label_name483 OraclePLSQLParser_label_name_return


    /* Initialize rule variables
     */
    while_loop_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(70)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_while477.tree = NULL;
    expression478.tree = NULL;
    k_loop479.tree = NULL;
    statement480.tree = NULL;
    k_end481.tree = NULL;
    k_loop482.tree = NULL;
    label_name483.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:528:26: ( k_while expression k_loop ( statement )+ k_end k_loop ( label_name )? )
        // OraclePLSQL.g:528:28: k_while expression k_loop ( statement )+ k_end k_loop ( label_name )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_while_in_while_loop_statement_sub4808);
            k_while477=k_while(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulewhile_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_while477.tree);
            FOLLOWPUSH(FOLLOW_expression_in_while_loop_statement_sub4810);
            expression478=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulewhile_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression478.tree);
            FOLLOWPUSH(FOLLOW_k_loop_in_while_loop_statement_sub4812);
            k_loop479=k_loop(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulewhile_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_loop479.tree);
            // OraclePLSQL.g:528:54: ( statement )+
            {
                int cnt161=0;

                for (;;)
                {
                    int alt161=2;
            	switch ( LA(1) ) 
            	{
            	case LPAREN:
            	case K_OUT:
            	case ID:
            	case LLABEL:
            	case COLON:
            	case BINDVAR:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 133:
            	case 134:
            	case 135:
            	case 138:
            	case 139:
            	case 144:
            	case 148:
            	case 157:
            	case 161:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 176:
            	case 181:
            	case 184:
            	case 187:
            	case 188:
            	case 189:
            	case 197:
            	case 198:
            	case 205:
            	case 207:
            	case 213:
            	case 216:
            	case 221:
            	case 228:
            		{
            			alt161=1;
            		}
            	    break;

            	}

            	switch (alt161) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: statement
            	        {
            	            FOLLOWPUSH(FOLLOW_statement_in_while_loop_statement_sub4814);
            	            statement480=statement(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto rulewhile_loop_statement_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, statement480.tree);

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt161 >= 1 )
            		{
            		    goto loop161;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto rulewhile_loop_statement_subEx;
            	}
            	cnt161++;
                }
                loop161: ;	/* Jump to here if this rule does not match */
            }
            FOLLOWPUSH(FOLLOW_k_end_in_while_loop_statement_sub4817);
            k_end481=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulewhile_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end481.tree);
            FOLLOWPUSH(FOLLOW_k_loop_in_while_loop_statement_sub4819);
            k_loop482=k_loop(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulewhile_loop_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_loop482.tree);

            // OraclePLSQL.g:528:78: ( label_name )?
            {
                int alt162=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt162=1;
                    	}
                        break;
                }

                switch (alt162) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: label_name
            	    {
            	        FOLLOWPUSH(FOLLOW_label_name_in_while_loop_statement_sub4821);
            	        label_name483=label_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulewhile_loop_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, label_name483.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulewhile_loop_statement_subEx; /* Prevent compiler warnings */
    rulewhile_loop_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(70, while_loop_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end while_loop_statement_sub */

/** 
 * $ANTLR start pipe_row_statement
 * OraclePLSQL.g:530:1: pipe_row_statement : pipe_row_statement_sub -> ^( 't_pipe' pipe_row_statement_sub ) ;
 */
static OraclePLSQLParser_pipe_row_statement_return
pipe_row_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_pipe_row_statement_return retval;
    ANTLR3_UINT32 pipe_row_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_pipe_row_statement_sub_return pipe_row_statement_sub484;
    #undef	RETURN_TYPE_pipe_row_statement_sub484
    #define	RETURN_TYPE_pipe_row_statement_sub484 OraclePLSQLParser_pipe_row_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_pipe_row_statement_sub;
    /* Initialize rule variables
     */
    pipe_row_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(71)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    pipe_row_statement_sub484.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_pipe_row_statement_sub   = NULL;
    #define CREATE_stream_pipe_row_statement_sub  if (stream_pipe_row_statement_sub == NULL) {stream_pipe_row_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule pipe_row_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:530:20: ( pipe_row_statement_sub -> ^( 't_pipe' pipe_row_statement_sub ) )
        // OraclePLSQL.g:530:22: pipe_row_statement_sub
        {
            FOLLOWPUSH(FOLLOW_pipe_row_statement_sub_in_pipe_row_statement4831);
            pipe_row_statement_sub484=pipe_row_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulepipe_row_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_pipe_row_statement_sub; stream_pipe_row_statement_sub->add(stream_pipe_row_statement_sub, pipe_row_statement_sub484.tree, NULL); }

             
            /* AST REWRITE
             * elements          : pipe_row_statement_sub, T_PIPE
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 530:45: -> ^( 't_pipe' pipe_row_statement_sub )
            	{
            	    // OraclePLSQL.g:530:47: ^( 't_pipe' pipe_row_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_PIPE, (pANTLR3_UINT8)"T_PIPE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_pipe_row_statement_sub == NULL ? NULL : stream_pipe_row_statement_sub->nextTree(stream_pipe_row_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulepipe_row_statementEx; /* Prevent compiler warnings */
    rulepipe_row_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_pipe_row_statement_sub != NULL) stream_pipe_row_statement_sub->free(stream_pipe_row_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(71, pipe_row_statement_StartIndex); }

    return retval;
}
/* $ANTLR end pipe_row_statement */

/** 
 * $ANTLR start pipe_row_statement_sub
 * OraclePLSQL.g:531:1: pipe_row_statement_sub : k_pipe k_row LPAREN expression RPAREN ;
 */
static OraclePLSQLParser_pipe_row_statement_sub_return
pipe_row_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_pipe_row_statement_sub_return retval;
    ANTLR3_UINT32 pipe_row_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN487;
    pANTLR3_COMMON_TOKEN    RPAREN489;
    OraclePLSQLParser_k_pipe_return k_pipe485;
    #undef	RETURN_TYPE_k_pipe485
    #define	RETURN_TYPE_k_pipe485 OraclePLSQLParser_k_pipe_return

    OraclePLSQLParser_k_row_return k_row486;
    #undef	RETURN_TYPE_k_row486
    #define	RETURN_TYPE_k_row486 OraclePLSQLParser_k_row_return

    OraclePLSQLParser_expression_return expression488;
    #undef	RETURN_TYPE_expression488
    #define	RETURN_TYPE_expression488 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE LPAREN487_tree;
    pANTLR3_BASE_TREE RPAREN489_tree;

    /* Initialize rule variables
     */
    pipe_row_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(72)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN487       = NULL;
    RPAREN489       = NULL;
    k_pipe485.tree = NULL;
    k_row486.tree = NULL;
    expression488.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN487_tree   = NULL;
    RPAREN489_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:531:24: ( k_pipe k_row LPAREN expression RPAREN )
        // OraclePLSQL.g:531:26: k_pipe k_row LPAREN expression RPAREN
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_pipe_in_pipe_row_statement_sub4845);
            k_pipe485=k_pipe(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulepipe_row_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_pipe485.tree);
            FOLLOWPUSH(FOLLOW_k_row_in_pipe_row_statement_sub4847);
            k_row486=k_row(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulepipe_row_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_row486.tree);
            LPAREN487 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_pipe_row_statement_sub4849); 
            if  (HASEXCEPTION())
            {
                goto rulepipe_row_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN487_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN487));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN487_tree);
            }
            FOLLOWPUSH(FOLLOW_expression_in_pipe_row_statement_sub4851);
            expression488=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulepipe_row_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression488.tree);
            RPAREN489 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_pipe_row_statement_sub4853); 
            if  (HASEXCEPTION())
            {
                goto rulepipe_row_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN489_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN489));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN489_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulepipe_row_statement_subEx; /* Prevent compiler warnings */
    rulepipe_row_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(72, pipe_row_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end pipe_row_statement_sub */

/** 
 * $ANTLR start null_statement
 * OraclePLSQL.g:533:1: null_statement : k_null -> ^( 't_null' k_null ) ;
 */
static OraclePLSQLParser_null_statement_return
null_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_null_statement_return retval;
    ANTLR3_UINT32 null_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_null_return k_null490;
    #undef	RETURN_TYPE_k_null490
    #define	RETURN_TYPE_k_null490 OraclePLSQLParser_k_null_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_null;
    /* Initialize rule variables
     */
    null_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(73)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_null490.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_k_null   = NULL;
    #define CREATE_stream_k_null  if (stream_k_null == NULL) {stream_k_null = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_null"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:533:16: ( k_null -> ^( 't_null' k_null ) )
        // OraclePLSQL.g:533:18: k_null
        {
            FOLLOWPUSH(FOLLOW_k_null_in_null_statement4862);
            k_null490=k_null(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenull_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_null; stream_k_null->add(stream_k_null, k_null490.tree, NULL); }

             
            /* AST REWRITE
             * elements          : k_null, T_NULL_STAT
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 533:25: -> ^( 't_null' k_null )
            	{
            	    // OraclePLSQL.g:533:27: ^( 't_null' k_null )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_NULL_STAT, (pANTLR3_UINT8)"T_NULL_STAT"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_null == NULL ? NULL : stream_k_null->nextTree(stream_k_null));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenull_statementEx; /* Prevent compiler warnings */
    rulenull_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_k_null != NULL) stream_k_null->free(stream_k_null);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(73, null_statement_StartIndex); }

    return retval;
}
/* $ANTLR end null_statement */

/** 
 * $ANTLR start open_statement
 * OraclePLSQL.g:536:1: open_statement : open_statement_sub -> ^( 't_open' open_statement_sub ) ;
 */
static OraclePLSQLParser_open_statement_return
open_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_open_statement_return retval;
    ANTLR3_UINT32 open_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_open_statement_sub_return open_statement_sub491;
    #undef	RETURN_TYPE_open_statement_sub491
    #define	RETURN_TYPE_open_statement_sub491 OraclePLSQLParser_open_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_open_statement_sub;
    /* Initialize rule variables
     */
    open_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(74)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    open_statement_sub491.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_open_statement_sub   = NULL;
    #define CREATE_stream_open_statement_sub  if (stream_open_statement_sub == NULL) {stream_open_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule open_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:536:16: ( open_statement_sub -> ^( 't_open' open_statement_sub ) )
        // OraclePLSQL.g:536:18: open_statement_sub
        {
            FOLLOWPUSH(FOLLOW_open_statement_sub_in_open_statement4878);
            open_statement_sub491=open_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleopen_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_open_statement_sub; stream_open_statement_sub->add(stream_open_statement_sub, open_statement_sub491.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_OPEN, open_statement_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 536:37: -> ^( 't_open' open_statement_sub )
            	{
            	    // OraclePLSQL.g:536:39: ^( 't_open' open_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_OPEN, (pANTLR3_UINT8)"T_OPEN"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_open_statement_sub == NULL ? NULL : stream_open_statement_sub->nextTree(stream_open_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleopen_statementEx; /* Prevent compiler warnings */
    ruleopen_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_open_statement_sub != NULL) stream_open_statement_sub->free(stream_open_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(74, open_statement_StartIndex); }

    return retval;
}
/* $ANTLR end open_statement */

/** 
 * $ANTLR start open_statement_sub
 * OraclePLSQL.g:537:1: open_statement_sub : k_open cursor_name ( call_args )? ( k_for ( select_statement | expression ) )? ( K_USING lvalue ( COMMA lvalue )* )? ;
 */
static OraclePLSQLParser_open_statement_sub_return
open_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_open_statement_sub_return retval;
    ANTLR3_UINT32 open_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    K_USING498;
    pANTLR3_COMMON_TOKEN    COMMA500;
    OraclePLSQLParser_k_open_return k_open492;
    #undef	RETURN_TYPE_k_open492
    #define	RETURN_TYPE_k_open492 OraclePLSQLParser_k_open_return

    OraclePLSQLParser_cursor_name_return cursor_name493;
    #undef	RETURN_TYPE_cursor_name493
    #define	RETURN_TYPE_cursor_name493 OraclePLSQLParser_cursor_name_return

    OraclePLSQLParser_call_args_return call_args494;
    #undef	RETURN_TYPE_call_args494
    #define	RETURN_TYPE_call_args494 OraclePLSQLParser_call_args_return

    OraclePLSQLParser_k_for_return k_for495;
    #undef	RETURN_TYPE_k_for495
    #define	RETURN_TYPE_k_for495 OraclePLSQLParser_k_for_return

    OraclePLSQLParser_select_statement_return select_statement496;
    #undef	RETURN_TYPE_select_statement496
    #define	RETURN_TYPE_select_statement496 OraclePLSQLParser_select_statement_return

    OraclePLSQLParser_expression_return expression497;
    #undef	RETURN_TYPE_expression497
    #define	RETURN_TYPE_expression497 OraclePLSQLParser_expression_return

    OraclePLSQLParser_lvalue_return lvalue499;
    #undef	RETURN_TYPE_lvalue499
    #define	RETURN_TYPE_lvalue499 OraclePLSQLParser_lvalue_return

    OraclePLSQLParser_lvalue_return lvalue501;
    #undef	RETURN_TYPE_lvalue501
    #define	RETURN_TYPE_lvalue501 OraclePLSQLParser_lvalue_return

    pANTLR3_BASE_TREE K_USING498_tree;
    pANTLR3_BASE_TREE COMMA500_tree;

    /* Initialize rule variables
     */
    open_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(75)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    K_USING498       = NULL;
    COMMA500       = NULL;
    k_open492.tree = NULL;
    cursor_name493.tree = NULL;
    call_args494.tree = NULL;
    k_for495.tree = NULL;
    select_statement496.tree = NULL;
    expression497.tree = NULL;
    lvalue499.tree = NULL;
    lvalue501.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    K_USING498_tree   = NULL;
    COMMA500_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:537:20: ( k_open cursor_name ( call_args )? ( k_for ( select_statement | expression ) )? ( K_USING lvalue ( COMMA lvalue )* )? )
        // OraclePLSQL.g:537:22: k_open cursor_name ( call_args )? ( k_for ( select_statement | expression ) )? ( K_USING lvalue ( COMMA lvalue )* )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_open_in_open_statement_sub4892);
            k_open492=k_open(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleopen_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_open492.tree);
            FOLLOWPUSH(FOLLOW_cursor_name_in_open_statement_sub4894);
            cursor_name493=cursor_name(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleopen_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, cursor_name493.tree);

            // OraclePLSQL.g:537:41: ( call_args )?
            {
                int alt163=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		alt163=1;
                    	}
                        break;
                }

                switch (alt163) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: call_args
            	    {
            	        FOLLOWPUSH(FOLLOW_call_args_in_open_statement_sub4896);
            	        call_args494=call_args(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleopen_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_args494.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:537:52: ( k_for ( select_statement | expression ) )?
            {
                int alt165=2;
                switch ( LA(1) ) 
                {
                    case 171:
                    	{
                    		alt165=1;
                    	}
                        break;
                }

                switch (alt165) 
                {
            	case 1:
            	    // OraclePLSQL.g:537:54: k_for ( select_statement | expression )
            	    {
            	        FOLLOWPUSH(FOLLOW_k_for_in_open_statement_sub4901);
            	        k_for495=k_for(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleopen_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_for495.tree);

            	        // OraclePLSQL.g:537:60: ( select_statement | expression )
            	        {
            	            int alt164=2;
            	            switch ( LA(1) ) 
            	            {
            	            case LPAREN:
            	            	{
            	            		switch ( LA(2) ) 
            	            		{
            	            		case 148:
            	            		case 189:
            	            			{
            	            				alt164=1;
            	            			}
            	            		    break;
            	            		case LPAREN:
            	            			{
            	            				switch ( LA(3) ) 
            	            				{
            	            				case 148:
            	            				case 189:
            	            					{
            	            						alt164=1;
            	            					}
            	            				    break;
            	            				case LPAREN:
            	            					{
            	            						switch ( LA(4) ) 
            	            						{
            	            						case 148:
            	            						case 189:
            	            							{
            	            								alt164=1;
            	            							}
            	            						    break;
            	            						case LPAREN:
            	            							{

            	            								{
            	            								    int LA164_6 = LA(5);
            	            								    if ( (synpred249_OraclePLSQL(ctx))) 
            	            								    {
            	            								        alt164=1;
            	            								    }
            	            								    else if ( (ANTLR3_TRUE)) 
            	            								    {
            	            								        alt164=2;
            	            								    }
            	            								    else 
            	            								    {
            	            								        if (BACKTRACKING>0)
            	            								        {
            	            								            FAILEDFLAG = ANTLR3_TRUE;
            	            								            return retval;
            	            								        }
            	            								    
            	            								        CONSTRUCTEX();
            	            								        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            								        EXCEPTION->message      = (void *)"";
            	            								        EXCEPTION->decisionNum  = 164;
            	            								        EXCEPTION->state        = 6;


            	            								        goto ruleopen_statement_subEx;
            	            								    }
            	            								}
            	            							}
            	            						    break;
            	            						case K_OUT:
            	            						case ID:
            	            						case INTEGER:
            	            						case COLON:
            	            						case MINUS:
            	            						case PLUS:
            	            						case REAL_NUMBER:
            	            						case QUOTED_STRING:
            	            						case BINDVAR:
            	            						case 127:
            	            						case 128:
            	            						case 129:
            	            						case 130:
            	            						case 157:
            	            						case 163:
            	            						case 169:
            	            						case 183:
            	            						case 184:
            	            						case 190:
            	            						case 194:
            	            						case 199:
            	            						case 200:
            	            						case 201:
            	            						case 203:
            	            						case 232:
            	            							{
            	            								alt164=2;
            	            							}
            	            						    break;

            	            						default:
            	            						    if (BACKTRACKING>0)
            	            						    {
            	            						        FAILEDFLAG = ANTLR3_TRUE;
            	            						        return retval;
            	            						    }
            	            						    CONSTRUCTEX();
            	            						    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            						    EXCEPTION->message      = (void *)"";
            	            						    EXCEPTION->decisionNum  = 164;
            	            						    EXCEPTION->state        = 5;


            	            						    goto ruleopen_statement_subEx;
            	            						}

            	            					}
            	            				    break;
            	            				case K_OUT:
            	            				case ID:
            	            				case INTEGER:
            	            				case COLON:
            	            				case MINUS:
            	            				case PLUS:
            	            				case REAL_NUMBER:
            	            				case QUOTED_STRING:
            	            				case BINDVAR:
            	            				case 127:
            	            				case 128:
            	            				case 129:
            	            				case 130:
            	            				case 157:
            	            				case 163:
            	            				case 169:
            	            				case 183:
            	            				case 184:
            	            				case 190:
            	            				case 194:
            	            				case 199:
            	            				case 200:
            	            				case 201:
            	            				case 203:
            	            				case 232:
            	            					{
            	            						alt164=2;
            	            					}
            	            				    break;

            	            				default:
            	            				    if (BACKTRACKING>0)
            	            				    {
            	            				        FAILEDFLAG = ANTLR3_TRUE;
            	            				        return retval;
            	            				    }
            	            				    CONSTRUCTEX();
            	            				    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            				    EXCEPTION->message      = (void *)"";
            	            				    EXCEPTION->decisionNum  = 164;
            	            				    EXCEPTION->state        = 4;


            	            				    goto ruleopen_statement_subEx;
            	            				}

            	            			}
            	            		    break;
            	            		case K_OUT:
            	            		case ID:
            	            		case INTEGER:
            	            		case COLON:
            	            		case MINUS:
            	            		case PLUS:
            	            		case REAL_NUMBER:
            	            		case QUOTED_STRING:
            	            		case BINDVAR:
            	            		case 127:
            	            		case 128:
            	            		case 129:
            	            		case 130:
            	            		case 157:
            	            		case 163:
            	            		case 169:
            	            		case 183:
            	            		case 184:
            	            		case 190:
            	            		case 194:
            	            		case 199:
            	            		case 200:
            	            		case 201:
            	            		case 203:
            	            		case 232:
            	            			{
            	            				alt164=2;
            	            			}
            	            		    break;

            	            		default:
            	            		    if (BACKTRACKING>0)
            	            		    {
            	            		        FAILEDFLAG = ANTLR3_TRUE;
            	            		        return retval;
            	            		    }
            	            		    CONSTRUCTEX();
            	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		    EXCEPTION->message      = (void *)"";
            	            		    EXCEPTION->decisionNum  = 164;
            	            		    EXCEPTION->state        = 1;


            	            		    goto ruleopen_statement_subEx;
            	            		}

            	            	}
            	                break;
            	            case 148:
            	            case 189:
            	            	{
            	            		alt164=1;
            	            	}
            	                break;
            	            case K_OUT:
            	            case ID:
            	            case INTEGER:
            	            case COLON:
            	            case MINUS:
            	            case PLUS:
            	            case REAL_NUMBER:
            	            case QUOTED_STRING:
            	            case BINDVAR:
            	            case 127:
            	            case 128:
            	            case 129:
            	            case 130:
            	            case 157:
            	            case 163:
            	            case 169:
            	            case 183:
            	            case 184:
            	            case 190:
            	            case 194:
            	            case 199:
            	            case 200:
            	            case 201:
            	            case 203:
            	            case 232:
            	            	{
            	            		alt164=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 164;
            	                EXCEPTION->state        = 0;


            	                goto ruleopen_statement_subEx;
            	            }

            	            switch (alt164) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:537:61: select_statement
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_select_statement_in_open_statement_sub4904);
            	        	        select_statement496=select_statement(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleopen_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, select_statement496.tree);

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:537:78: expression
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_expression_in_open_statement_sub4906);
            	        	        expression497=expression(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleopen_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression497.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:537:93: ( K_USING lvalue ( COMMA lvalue )* )?
            {
                int alt167=2;
                switch ( LA(1) ) 
                {
                    case K_USING:
                    	{
                    		alt167=1;
                    	}
                        break;
                }

                switch (alt167) 
                {
            	case 1:
            	    // OraclePLSQL.g:537:94: K_USING lvalue ( COMMA lvalue )*
            	    {
            	        K_USING498 = (pANTLR3_COMMON_TOKEN) MATCHT(K_USING, &FOLLOW_K_USING_in_open_statement_sub4913); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleopen_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        K_USING498_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_USING498));
            	        ADAPTOR->addChild(ADAPTOR, root_0, K_USING498_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_lvalue_in_open_statement_sub4915);
            	        lvalue499=lvalue(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleopen_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, lvalue499.tree);

            	        // OraclePLSQL.g:537:109: ( COMMA lvalue )*

            	        for (;;)
            	        {
            	            int alt166=2;
            	            switch ( LA(1) ) 
            	            {
            	            case COMMA:
            	            	{
            	            		alt166=1;
            	            	}
            	                break;

            	            }

            	            switch (alt166) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:537:111: COMMA lvalue
            	        	    {
            	        	        COMMA500 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_open_statement_sub4919); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleopen_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        COMMA500_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA500));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA500_tree);
            	        	        }
            	        	        FOLLOWPUSH(FOLLOW_lvalue_in_open_statement_sub4921);
            	        	        lvalue501=lvalue(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleopen_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, lvalue501.tree);

            	        	    }
            	        	    break;

            	        	default:
            	        	    goto loop166;	/* break out of the loop */
            	        	    break;
            	            }
            	        }
            	        loop166: ; /* Jump out to here if this rule does not match */


            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleopen_statement_subEx; /* Prevent compiler warnings */
    ruleopen_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(75, open_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end open_statement_sub */

/** 
 * $ANTLR start pragma
 * OraclePLSQL.g:539:1: pragma : k_pragma swallow_to_semi SEMI -> ^( 't_pragma_decl' k_pragma swallow_to_semi SEMI ) ;
 */
static OraclePLSQLParser_pragma_return
pragma(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_pragma_return retval;
    ANTLR3_UINT32 pragma_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    SEMI504;
    OraclePLSQLParser_k_pragma_return k_pragma502;
    #undef	RETURN_TYPE_k_pragma502
    #define	RETURN_TYPE_k_pragma502 OraclePLSQLParser_k_pragma_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi503;
    #undef	RETURN_TYPE_swallow_to_semi503
    #define	RETURN_TYPE_swallow_to_semi503 OraclePLSQLParser_swallow_to_semi_return

    pANTLR3_BASE_TREE SEMI504_tree;
    pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_SEMI;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_swallow_to_semi;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_pragma;
    /* Initialize rule variables
     */
    pragma_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(76)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    SEMI504       = NULL;
    k_pragma502.tree = NULL;
    swallow_to_semi503.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    SEMI504_tree   = NULL;

    stream_SEMI   = NULL;
    #define CREATE_stream_SEMI  if (stream_SEMI == NULL) {stream_SEMI = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token SEMI"); } 
    stream_swallow_to_semi   = NULL;
    #define CREATE_stream_swallow_to_semi  if (stream_swallow_to_semi == NULL) {stream_swallow_to_semi = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule swallow_to_semi"); }
    stream_k_pragma   = NULL;
    #define CREATE_stream_k_pragma  if (stream_k_pragma == NULL) {stream_k_pragma = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_pragma"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:539:8: ( k_pragma swallow_to_semi SEMI -> ^( 't_pragma_decl' k_pragma swallow_to_semi SEMI ) )
        // OraclePLSQL.g:539:10: k_pragma swallow_to_semi SEMI
        {
            FOLLOWPUSH(FOLLOW_k_pragma_in_pragma4936);
            k_pragma502=k_pragma(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulepragmaEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_pragma; stream_k_pragma->add(stream_k_pragma, k_pragma502.tree, NULL); }
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_pragma4938);
            swallow_to_semi503=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulepragmaEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_swallow_to_semi; stream_swallow_to_semi->add(stream_swallow_to_semi, swallow_to_semi503.tree, NULL); }
            SEMI504 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_pragma4940); 
            if  (HASEXCEPTION())
            {
                goto rulepragmaEx;
            }
            if (HASFAILED())
            {
                return retval;
            } 
            if ( BACKTRACKING==0 ) { CREATE_stream_SEMI; stream_SEMI->add(stream_SEMI, SEMI504, NULL); }


             
            /* AST REWRITE
             * elements          : swallow_to_semi, T_PRAGMA_DECL, k_pragma, SEMI
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 539:40: -> ^( 't_pragma_decl' k_pragma swallow_to_semi SEMI )
            	{
            	    // OraclePLSQL.g:539:42: ^( 't_pragma_decl' k_pragma swallow_to_semi SEMI )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_PRAGMA_DECL, (pANTLR3_UINT8)"T_PRAGMA_DECL"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_pragma == NULL ? NULL : stream_k_pragma->nextTree(stream_k_pragma));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_swallow_to_semi == NULL ? NULL : stream_swallow_to_semi->nextTree(stream_swallow_to_semi));
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_SEMI == NULL ? NULL : stream_SEMI->nextNode(stream_SEMI));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulepragmaEx; /* Prevent compiler warnings */
    rulepragmaEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_SEMI != NULL) stream_SEMI->free(stream_SEMI);
        if (stream_swallow_to_semi != NULL) stream_swallow_to_semi->free(stream_swallow_to_semi);
        if (stream_k_pragma != NULL) stream_k_pragma->free(stream_k_pragma);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(76, pragma_StartIndex); }

    return retval;
}
/* $ANTLR end pragma */

/** 
 * $ANTLR start raise_statement
 * OraclePLSQL.g:541:1: raise_statement : raise_statement_sub -> ^( 't_raise' raise_statement_sub ) ;
 */
static OraclePLSQLParser_raise_statement_return
raise_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_raise_statement_return retval;
    ANTLR3_UINT32 raise_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_raise_statement_sub_return raise_statement_sub505;
    #undef	RETURN_TYPE_raise_statement_sub505
    #define	RETURN_TYPE_raise_statement_sub505 OraclePLSQLParser_raise_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_raise_statement_sub;
    /* Initialize rule variables
     */
    raise_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(77)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    raise_statement_sub505.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_raise_statement_sub   = NULL;
    #define CREATE_stream_raise_statement_sub  if (stream_raise_statement_sub == NULL) {stream_raise_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule raise_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:541:17: ( raise_statement_sub -> ^( 't_raise' raise_statement_sub ) )
        // OraclePLSQL.g:541:19: raise_statement_sub
        {
            FOLLOWPUSH(FOLLOW_raise_statement_sub_in_raise_statement4960);
            raise_statement_sub505=raise_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleraise_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_raise_statement_sub; stream_raise_statement_sub->add(stream_raise_statement_sub, raise_statement_sub505.tree, NULL); }

             
            /* AST REWRITE
             * elements          : raise_statement_sub, T_RAISE
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 541:39: -> ^( 't_raise' raise_statement_sub )
            	{
            	    // OraclePLSQL.g:541:41: ^( 't_raise' raise_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_RAISE, (pANTLR3_UINT8)"T_RAISE"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_raise_statement_sub == NULL ? NULL : stream_raise_statement_sub->nextTree(stream_raise_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleraise_statementEx; /* Prevent compiler warnings */
    ruleraise_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_raise_statement_sub != NULL) stream_raise_statement_sub->free(stream_raise_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(77, raise_statement_StartIndex); }

    return retval;
}
/* $ANTLR end raise_statement */

/** 
 * $ANTLR start raise_statement_sub
 * OraclePLSQL.g:542:1: raise_statement_sub : k_raise ( ( ID DOT )* exception_name )? ;
 */
static OraclePLSQLParser_raise_statement_sub_return
raise_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_raise_statement_sub_return retval;
    ANTLR3_UINT32 raise_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID507;
    pANTLR3_COMMON_TOKEN    DOT508;
    OraclePLSQLParser_k_raise_return k_raise506;
    #undef	RETURN_TYPE_k_raise506
    #define	RETURN_TYPE_k_raise506 OraclePLSQLParser_k_raise_return

    OraclePLSQLParser_exception_name_return exception_name509;
    #undef	RETURN_TYPE_exception_name509
    #define	RETURN_TYPE_exception_name509 OraclePLSQLParser_exception_name_return

    pANTLR3_BASE_TREE ID507_tree;
    pANTLR3_BASE_TREE DOT508_tree;

    /* Initialize rule variables
     */
    raise_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(78)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID507       = NULL;
    DOT508       = NULL;
    k_raise506.tree = NULL;
    exception_name509.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID507_tree   = NULL;
    DOT508_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:542:21: ( k_raise ( ( ID DOT )* exception_name )? )
        // OraclePLSQL.g:542:23: k_raise ( ( ID DOT )* exception_name )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_raise_in_raise_statement_sub4974);
            k_raise506=k_raise(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleraise_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_raise506.tree);

            // OraclePLSQL.g:542:31: ( ( ID DOT )* exception_name )?
            {
                int alt169=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    case 137:
                    	{
                    		alt169=1;
                    	}
                        break;
                }

                switch (alt169) 
                {
            	case 1:
            	    // OraclePLSQL.g:542:33: ( ID DOT )* exception_name
            	    {

            	        // OraclePLSQL.g:542:33: ( ID DOT )*

            	        for (;;)
            	        {
            	            int alt168=2;
            	            switch ( LA(1) ) 
            	            {
            	            case ID:
            	            	{
            	            		switch ( LA(2) ) 
            	            		{
            	            		case DOT:
            	            			{
            	            				{
            	            				   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            	            				    */
            	            				    int LA168_3 = LA(3);
            	            				    if ( (synpred253_OraclePLSQL(ctx))) 
            	            				    {
            	            				        alt168=1;
            	            				    }

            	            				}
            	            			}
            	            		    break;

            	            		}

            	            	}
            	                break;

            	            }

            	            switch (alt168) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:542:34: ID DOT
            	        	    {
            	        	        ID507 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_raise_statement_sub4979); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleraise_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ID507_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID507));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ID507_tree);
            	        	        }
            	        	        DOT508 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_raise_statement_sub4981); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleraise_statement_subEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        DOT508_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT508));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT508_tree);
            	        	        }

            	        	    }
            	        	    break;

            	        	default:
            	        	    goto loop168;	/* break out of the loop */
            	        	    break;
            	            }
            	        }
            	        loop168: ; /* Jump out to here if this rule does not match */

            	        FOLLOWPUSH(FOLLOW_exception_name_in_raise_statement_sub4985);
            	        exception_name509=exception_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleraise_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exception_name509.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleraise_statement_subEx; /* Prevent compiler warnings */
    ruleraise_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(78, raise_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end raise_statement_sub */

/** 
 * $ANTLR start return_statement
 * OraclePLSQL.g:544:1: return_statement : return_statement_sub -> ^( 't_return' return_statement_sub ) ;
 */
static OraclePLSQLParser_return_statement_return
return_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_return_statement_return retval;
    ANTLR3_UINT32 return_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_return_statement_sub_return return_statement_sub510;
    #undef	RETURN_TYPE_return_statement_sub510
    #define	RETURN_TYPE_return_statement_sub510 OraclePLSQLParser_return_statement_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_return_statement_sub;
    /* Initialize rule variables
     */
    return_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(79)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    return_statement_sub510.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_return_statement_sub   = NULL;
    #define CREATE_stream_return_statement_sub  if (stream_return_statement_sub == NULL) {stream_return_statement_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule return_statement_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:544:18: ( return_statement_sub -> ^( 't_return' return_statement_sub ) )
        // OraclePLSQL.g:544:20: return_statement_sub
        {
            FOLLOWPUSH(FOLLOW_return_statement_sub_in_return_statement4997);
            return_statement_sub510=return_statement_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulereturn_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_return_statement_sub; stream_return_statement_sub->add(stream_return_statement_sub, return_statement_sub510.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_RETURN, return_statement_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 544:41: -> ^( 't_return' return_statement_sub )
            	{
            	    // OraclePLSQL.g:544:43: ^( 't_return' return_statement_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_RETURN, (pANTLR3_UINT8)"T_RETURN"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_return_statement_sub == NULL ? NULL : stream_return_statement_sub->nextTree(stream_return_statement_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulereturn_statementEx; /* Prevent compiler warnings */
    rulereturn_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_return_statement_sub != NULL) stream_return_statement_sub->free(stream_return_statement_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(79, return_statement_StartIndex); }

    return retval;
}
/* $ANTLR end return_statement */

/** 
 * $ANTLR start return_statement_sub
 * OraclePLSQL.g:545:1: return_statement_sub : k_return ( expression )? ;
 */
static OraclePLSQLParser_return_statement_sub_return
return_statement_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_return_statement_sub_return retval;
    ANTLR3_UINT32 return_statement_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_return_return k_return511;
    #undef	RETURN_TYPE_k_return511
    #define	RETURN_TYPE_k_return511 OraclePLSQLParser_k_return_return

    OraclePLSQLParser_expression_return expression512;
    #undef	RETURN_TYPE_expression512
    #define	RETURN_TYPE_expression512 OraclePLSQLParser_expression_return


    /* Initialize rule variables
     */
    return_statement_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(80)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_return511.tree = NULL;
    expression512.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:545:22: ( k_return ( expression )? )
        // OraclePLSQL.g:545:24: k_return ( expression )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_return_in_return_statement_sub5011);
            k_return511=k_return(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulereturn_statement_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_return511.tree);

            // OraclePLSQL.g:545:33: ( expression )?
            {
                int alt170=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    case K_OUT:
                    case ID:
                    case INTEGER:
                    case COLON:
                    case MINUS:
                    case PLUS:
                    case REAL_NUMBER:
                    case QUOTED_STRING:
                    case BINDVAR:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 157:
                    case 163:
                    case 169:
                    case 183:
                    case 184:
                    case 190:
                    case 194:
                    case 199:
                    case 200:
                    case 201:
                    case 203:
                    case 232:
                    	{
                    		alt170=1;
                    	}
                        break;
                }

                switch (alt170) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: expression
            	    {
            	        FOLLOWPUSH(FOLLOW_expression_in_return_statement_sub5013);
            	        expression512=expression(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulereturn_statement_subEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression512.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulereturn_statement_subEx; /* Prevent compiler warnings */
    rulereturn_statement_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(80, return_statement_sub_StartIndex); }

    return retval;
}
/* $ANTLR end return_statement_sub */

/** 
 * $ANTLR start declare_block
 * OraclePLSQL.g:547:1: declare_block : k_declare ( declare_section )? -> ^( 't_decl_block' k_declare ( declare_section )? ) ;
 */
static OraclePLSQLParser_declare_block_return
declare_block(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_declare_block_return retval;
    ANTLR3_UINT32 declare_block_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_declare_return k_declare513;
    #undef	RETURN_TYPE_k_declare513
    #define	RETURN_TYPE_k_declare513 OraclePLSQLParser_k_declare_return

    OraclePLSQLParser_declare_section_return declare_section514;
    #undef	RETURN_TYPE_declare_section514
    #define	RETURN_TYPE_declare_section514 OraclePLSQLParser_declare_section_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_declare_section;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_declare;
    /* Initialize rule variables
     */
    declare_block_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(81)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_declare513.tree = NULL;
    declare_section514.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_declare_section   = NULL;
    #define CREATE_stream_declare_section  if (stream_declare_section == NULL) {stream_declare_section = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule declare_section"); }
    stream_k_declare   = NULL;
    #define CREATE_stream_k_declare  if (stream_k_declare == NULL) {stream_k_declare = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_declare"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:548:2: ( k_declare ( declare_section )? -> ^( 't_decl_block' k_declare ( declare_section )? ) )
        // OraclePLSQL.g:548:4: k_declare ( declare_section )?
        {
            FOLLOWPUSH(FOLLOW_k_declare_in_declare_block5024);
            k_declare513=k_declare(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruledeclare_blockEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_declare; stream_k_declare->add(stream_k_declare, k_declare513.tree, NULL); }

            // OraclePLSQL.g:548:14: ( declare_section )?
            {
                int alt171=2;
                switch ( LA(1) ) 
                {
                    case K_OUT:
                    case ID:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 196:
                    case 208:
                    case 214:
                    case 223:
                    case 224:
                    case 233:
                    	{
                    		alt171=1;
                    	}
                        break;
                }

                switch (alt171) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: declare_section
            	    {
            	        FOLLOWPUSH(FOLLOW_declare_section_in_declare_block5026);
            	        declare_section514=declare_section(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledeclare_blockEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) { CREATE_stream_declare_section; stream_declare_section->add(stream_declare_section, declare_section514.tree, NULL); }

            	    }
            	    break;

                }
            }

             
            /* AST REWRITE
             * elements          : declare_section, T_DECL_BLOCK, k_declare
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 548:31: -> ^( 't_decl_block' k_declare ( declare_section )? )
            	{
            	    // OraclePLSQL.g:548:33: ^( 't_decl_block' k_declare ( declare_section )? )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_DECL_BLOCK, (pANTLR3_UINT8)"T_DECL_BLOCK"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_declare == NULL ? NULL : stream_k_declare->nextTree(stream_k_declare));
            	        // OraclePLSQL.g:548:60: ( declare_section )?
            	        {
            	        	if ( (stream_declare_section != NULL && stream_declare_section->hasNext(stream_declare_section))  )
            	        	{
            	        		ADAPTOR->addChild(ADAPTOR, root_1, stream_declare_section == NULL ? NULL : stream_declare_section->nextTree(stream_declare_section));

            	        	}
            	        	if ( stream_declare_section != NULL) stream_declare_section->reset(stream_declare_section);

            	        }

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruledeclare_blockEx; /* Prevent compiler warnings */
    ruledeclare_blockEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_declare_section != NULL) stream_declare_section->free(stream_declare_section);
        if (stream_k_declare != NULL) stream_k_declare->free(stream_k_declare);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(81, declare_block_StartIndex); }

    return retval;
}
/* $ANTLR end declare_block */

/** 
 * $ANTLR start body
 * OraclePLSQL.g:551:1: body : k_begin ( pragma )* ( statement )* -> ^( 't_block_block' k_begin ( pragma )* ( statement )* ) ;
 */
static OraclePLSQLParser_body_return
body(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_body_return retval;
    ANTLR3_UINT32 body_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_begin_return k_begin515;
    #undef	RETURN_TYPE_k_begin515
    #define	RETURN_TYPE_k_begin515 OraclePLSQLParser_k_begin_return

    OraclePLSQLParser_pragma_return pragma516;
    #undef	RETURN_TYPE_pragma516
    #define	RETURN_TYPE_pragma516 OraclePLSQLParser_pragma_return

    OraclePLSQLParser_statement_return statement517;
    #undef	RETURN_TYPE_statement517
    #define	RETURN_TYPE_statement517 OraclePLSQLParser_statement_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_begin;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_pragma;
    /* Initialize rule variables
     */
    body_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(82)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_begin515.tree = NULL;
    pragma516.tree = NULL;
    statement517.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_statement   = NULL;
    #define CREATE_stream_statement  if (stream_statement == NULL) {stream_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule statement"); }
    stream_k_begin   = NULL;
    #define CREATE_stream_k_begin  if (stream_k_begin == NULL) {stream_k_begin = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_begin"); }
    stream_pragma   = NULL;
    #define CREATE_stream_pragma  if (stream_pragma == NULL) {stream_pragma = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule pragma"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:552:2: ( k_begin ( pragma )* ( statement )* -> ^( 't_block_block' k_begin ( pragma )* ( statement )* ) )
        // OraclePLSQL.g:552:4: k_begin ( pragma )* ( statement )*
        {
            FOLLOWPUSH(FOLLOW_k_begin_in_body5051);
            k_begin515=k_begin(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebodyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_begin; stream_k_begin->add(stream_k_begin, k_begin515.tree, NULL); }

            // OraclePLSQL.g:552:12: ( pragma )*

            for (;;)
            {
                int alt172=2;
                switch ( LA(1) ) 
                {
                case 223:
                	{
                		alt172=1;
                	}
                    break;

                }

                switch (alt172) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: pragma
            	    {
            	        FOLLOWPUSH(FOLLOW_pragma_in_body5053);
            	        pragma516=pragma(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) { CREATE_stream_pragma; stream_pragma->add(stream_pragma, pragma516.tree, NULL); }

            	    }
            	    break;

            	default:
            	    goto loop172;	/* break out of the loop */
            	    break;
                }
            }
            loop172: ; /* Jump out to here if this rule does not match */


            // OraclePLSQL.g:552:20: ( statement )*

            for (;;)
            {
                int alt173=2;
                switch ( LA(1) ) 
                {
                case LPAREN:
                case K_OUT:
                case ID:
                case LLABEL:
                case COLON:
                case BINDVAR:
                case 126:
                case 127:
                case 128:
                case 129:
                case 130:
                case 131:
                case 133:
                case 134:
                case 135:
                case 138:
                case 139:
                case 144:
                case 148:
                case 157:
                case 161:
                case 170:
                case 171:
                case 172:
                case 173:
                case 174:
                case 176:
                case 181:
                case 184:
                case 187:
                case 188:
                case 189:
                case 197:
                case 198:
                case 205:
                case 207:
                case 213:
                case 216:
                case 221:
                case 228:
                	{
                		alt173=1;
                	}
                    break;

                }

                switch (alt173) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: statement
            	    {
            	        FOLLOWPUSH(FOLLOW_statement_in_body5056);
            	        statement517=statement(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) { CREATE_stream_statement; stream_statement->add(stream_statement, statement517.tree, NULL); }

            	    }
            	    break;

            	default:
            	    goto loop173;	/* break out of the loop */
            	    break;
                }
            }
            loop173: ; /* Jump out to here if this rule does not match */


             
            /* AST REWRITE
             * elements          : k_begin, T_BLOCK_BLOCK, statement, pragma
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 552:31: -> ^( 't_block_block' k_begin ( pragma )* ( statement )* )
            	{
            	    // OraclePLSQL.g:552:34: ^( 't_block_block' k_begin ( pragma )* ( statement )* )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_BLOCK_BLOCK, (pANTLR3_UINT8)"T_BLOCK_BLOCK"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_begin == NULL ? NULL : stream_k_begin->nextTree(stream_k_begin));
            	        // OraclePLSQL.g:552:60: ( pragma )*
            	        {
            	        	while ( (stream_pragma != NULL && stream_pragma->hasNext(stream_pragma))  )
            	        	{
            	        		ADAPTOR->addChild(ADAPTOR, root_1, stream_pragma == NULL ? NULL : stream_pragma->nextTree(stream_pragma));

            	        	}
            	        	if (stream_pragma != NULL) stream_pragma->reset(stream_pragma);

            	        }
            	        // OraclePLSQL.g:552:68: ( statement )*
            	        {
            	        	while ( (stream_statement != NULL && stream_statement->hasNext(stream_statement))  )
            	        	{
            	        		ADAPTOR->addChild(ADAPTOR, root_1, stream_statement == NULL ? NULL : stream_statement->nextTree(stream_statement));

            	        	}
            	        	if (stream_statement != NULL) stream_statement->reset(stream_statement);

            	        }

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulebodyEx; /* Prevent compiler warnings */
    rulebodyEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_statement != NULL) stream_statement->free(stream_statement);
        if (stream_k_begin != NULL) stream_k_begin->free(stream_k_begin);
        if (stream_pragma != NULL) stream_pragma->free(stream_pragma);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(82, body_StartIndex); }

    return retval;
}
/* $ANTLR end body */

/** 
 * $ANTLR start exception_handler
 * OraclePLSQL.g:555:1: exception_handler : exception_handler_sub -> ^( 't_exceptions_block' exception_handler_sub ) ;
 */
static OraclePLSQLParser_exception_handler_return
exception_handler(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_exception_handler_return retval;
    ANTLR3_UINT32 exception_handler_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_exception_handler_sub_return exception_handler_sub518;
    #undef	RETURN_TYPE_exception_handler_sub518
    #define	RETURN_TYPE_exception_handler_sub518 OraclePLSQLParser_exception_handler_sub_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_exception_handler_sub;
    /* Initialize rule variables
     */
    exception_handler_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(83)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    exception_handler_sub518.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_exception_handler_sub   = NULL;
    #define CREATE_stream_exception_handler_sub  if (stream_exception_handler_sub == NULL) {stream_exception_handler_sub = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule exception_handler_sub"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:555:19: ( exception_handler_sub -> ^( 't_exceptions_block' exception_handler_sub ) )
        // OraclePLSQL.g:555:21: exception_handler_sub
        {
            FOLLOWPUSH(FOLLOW_exception_handler_sub_in_exception_handler5081);
            exception_handler_sub518=exception_handler_sub(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexception_handlerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_exception_handler_sub; stream_exception_handler_sub->add(stream_exception_handler_sub, exception_handler_sub518.tree, NULL); }

             
            /* AST REWRITE
             * elements          : T_EXCEPTIONS_BLOCK, exception_handler_sub
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 555:43: -> ^( 't_exceptions_block' exception_handler_sub )
            	{
            	    // OraclePLSQL.g:555:45: ^( 't_exceptions_block' exception_handler_sub )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_EXCEPTIONS_BLOCK, (pANTLR3_UINT8)"T_EXCEPTIONS_BLOCK"), root_1));

            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_exception_handler_sub == NULL ? NULL : stream_exception_handler_sub->nextTree(stream_exception_handler_sub));

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexception_handlerEx; /* Prevent compiler warnings */
    ruleexception_handlerEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_exception_handler_sub != NULL) stream_exception_handler_sub->free(stream_exception_handler_sub);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(83, exception_handler_StartIndex); }

    return retval;
}
/* $ANTLR end exception_handler */

/** 
 * $ANTLR start exception_handler_sub
 * OraclePLSQL.g:556:1: exception_handler_sub : k_exception ( k_when ( qual_id ( k_or qual_id )* | k_others ) k_then ( statement )+ )+ ;
 */
static OraclePLSQLParser_exception_handler_sub_return
exception_handler_sub(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_exception_handler_sub_return retval;
    ANTLR3_UINT32 exception_handler_sub_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_exception_return k_exception519;
    #undef	RETURN_TYPE_k_exception519
    #define	RETURN_TYPE_k_exception519 OraclePLSQLParser_k_exception_return

    OraclePLSQLParser_k_when_return k_when520;
    #undef	RETURN_TYPE_k_when520
    #define	RETURN_TYPE_k_when520 OraclePLSQLParser_k_when_return

    OraclePLSQLParser_qual_id_return qual_id521;
    #undef	RETURN_TYPE_qual_id521
    #define	RETURN_TYPE_qual_id521 OraclePLSQLParser_qual_id_return

    OraclePLSQLParser_k_or_return k_or522;
    #undef	RETURN_TYPE_k_or522
    #define	RETURN_TYPE_k_or522 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_qual_id_return qual_id523;
    #undef	RETURN_TYPE_qual_id523
    #define	RETURN_TYPE_qual_id523 OraclePLSQLParser_qual_id_return

    OraclePLSQLParser_k_others_return k_others524;
    #undef	RETURN_TYPE_k_others524
    #define	RETURN_TYPE_k_others524 OraclePLSQLParser_k_others_return

    OraclePLSQLParser_k_then_return k_then525;
    #undef	RETURN_TYPE_k_then525
    #define	RETURN_TYPE_k_then525 OraclePLSQLParser_k_then_return

    OraclePLSQLParser_statement_return statement526;
    #undef	RETURN_TYPE_statement526
    #define	RETURN_TYPE_statement526 OraclePLSQLParser_statement_return


    /* Initialize rule variables
     */
    exception_handler_sub_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(84)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_exception519.tree = NULL;
    k_when520.tree = NULL;
    qual_id521.tree = NULL;
    k_or522.tree = NULL;
    qual_id523.tree = NULL;
    k_others524.tree = NULL;
    k_then525.tree = NULL;
    statement526.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:557:2: ( k_exception ( k_when ( qual_id ( k_or qual_id )* | k_others ) k_then ( statement )+ )+ )
        // OraclePLSQL.g:557:4: k_exception ( k_when ( qual_id ( k_or qual_id )* | k_others ) k_then ( statement )+ )+
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_exception_in_exception_handler_sub5096);
            k_exception519=k_exception(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexception_handler_subEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_exception519.tree);
            // OraclePLSQL.g:558:9: ( k_when ( qual_id ( k_or qual_id )* | k_others ) k_then ( statement )+ )+
            {
                int cnt177=0;

                for (;;)
                {
                    int alt177=2;
            	switch ( LA(1) ) 
            	{
            	case 236:
            		{
            			alt177=1;
            		}
            	    break;

            	}

            	switch (alt177) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:559:13: k_when ( qual_id ( k_or qual_id )* | k_others ) k_then ( statement )+
            	        {
            	            FOLLOWPUSH(FOLLOW_k_when_in_exception_handler_sub5120);
            	            k_when520=k_when(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleexception_handler_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_when520.tree);

            	            // OraclePLSQL.g:559:20: ( qual_id ( k_or qual_id )* | k_others )
            	            {
            	                int alt175=2;
            	                switch ( LA(1) ) 
            	                {
            	                case ID:
            	                case COLON:
            	                	{
            	                		alt175=1;
            	                	}
            	                    break;
            	                case 219:
            	                	{
            	                		alt175=2;
            	                	}
            	                    break;

            	                default:
            	                    if (BACKTRACKING>0)
            	                    {
            	                        FAILEDFLAG = ANTLR3_TRUE;
            	                        return retval;
            	                    }
            	                    CONSTRUCTEX();
            	                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                    EXCEPTION->message      = (void *)"";
            	                    EXCEPTION->decisionNum  = 175;
            	                    EXCEPTION->state        = 0;


            	                    goto ruleexception_handler_subEx;
            	                }

            	                switch (alt175) 
            	                {
            	            	case 1:
            	            	    // OraclePLSQL.g:559:22: qual_id ( k_or qual_id )*
            	            	    {
            	            	        FOLLOWPUSH(FOLLOW_qual_id_in_exception_handler_sub5124);
            	            	        qual_id521=qual_id(ctx);

            	            	        FOLLOWPOP();
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto ruleexception_handler_subEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, qual_id521.tree);

            	            	        // OraclePLSQL.g:559:30: ( k_or qual_id )*

            	            	        for (;;)
            	            	        {
            	            	            int alt174=2;
            	            	            switch ( LA(1) ) 
            	            	            {
            	            	            case 185:
            	            	            	{
            	            	            		alt174=1;
            	            	            	}
            	            	                break;

            	            	            }

            	            	            switch (alt174) 
            	            	            {
            	            	        	case 1:
            	            	        	    // OraclePLSQL.g:559:32: k_or qual_id
            	            	        	    {
            	            	        	        FOLLOWPUSH(FOLLOW_k_or_in_exception_handler_sub5128);
            	            	        	        k_or522=k_or(ctx);

            	            	        	        FOLLOWPOP();
            	            	        	        if  (HASEXCEPTION())
            	            	        	        {
            	            	        	            goto ruleexception_handler_subEx;
            	            	        	        }
            	            	        	        if (HASFAILED())
            	            	        	        {
            	            	        	            return retval;
            	            	        	        }
            	            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or522.tree);
            	            	        	        FOLLOWPUSH(FOLLOW_qual_id_in_exception_handler_sub5130);
            	            	        	        qual_id523=qual_id(ctx);

            	            	        	        FOLLOWPOP();
            	            	        	        if  (HASEXCEPTION())
            	            	        	        {
            	            	        	            goto ruleexception_handler_subEx;
            	            	        	        }
            	            	        	        if (HASFAILED())
            	            	        	        {
            	            	        	            return retval;
            	            	        	        }
            	            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, qual_id523.tree);

            	            	        	    }
            	            	        	    break;

            	            	        	default:
            	            	        	    goto loop174;	/* break out of the loop */
            	            	        	    break;
            	            	            }
            	            	        }
            	            	        loop174: ; /* Jump out to here if this rule does not match */


            	            	    }
            	            	    break;
            	            	case 2:
            	            	    // OraclePLSQL.g:559:50: k_others
            	            	    {
            	            	        FOLLOWPUSH(FOLLOW_k_others_in_exception_handler_sub5137);
            	            	        k_others524=k_others(ctx);

            	            	        FOLLOWPOP();
            	            	        if  (HASEXCEPTION())
            	            	        {
            	            	            goto ruleexception_handler_subEx;
            	            	        }
            	            	        if (HASFAILED())
            	            	        {
            	            	            return retval;
            	            	        }
            	            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_others524.tree);

            	            	    }
            	            	    break;

            	                }
            	            }
            	            FOLLOWPUSH(FOLLOW_k_then_in_exception_handler_sub5153);
            	            k_then525=k_then(ctx);

            	            FOLLOWPOP();
            	            if  (HASEXCEPTION())
            	            {
            	                goto ruleexception_handler_subEx;
            	            }
            	            if (HASFAILED())
            	            {
            	                return retval;
            	            }
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_then525.tree);
            	            // OraclePLSQL.g:560:20: ( statement )+
            	            {
            	                int cnt176=0;

            	                for (;;)
            	                {
            	                    int alt176=2;
            	            	switch ( LA(1) ) 
            	            	{
            	            	case LPAREN:
            	            	case K_OUT:
            	            	case ID:
            	            	case LLABEL:
            	            	case COLON:
            	            	case BINDVAR:
            	            	case 126:
            	            	case 127:
            	            	case 128:
            	            	case 129:
            	            	case 130:
            	            	case 131:
            	            	case 133:
            	            	case 134:
            	            	case 135:
            	            	case 138:
            	            	case 139:
            	            	case 144:
            	            	case 148:
            	            	case 157:
            	            	case 161:
            	            	case 170:
            	            	case 171:
            	            	case 172:
            	            	case 173:
            	            	case 174:
            	            	case 176:
            	            	case 181:
            	            	case 184:
            	            	case 187:
            	            	case 188:
            	            	case 189:
            	            	case 197:
            	            	case 198:
            	            	case 205:
            	            	case 207:
            	            	case 213:
            	            	case 216:
            	            	case 221:
            	            	case 228:
            	            		{
            	            			alt176=1;
            	            		}
            	            	    break;

            	            	}

            	            	switch (alt176) 
            	            	{
            	            	    case 1:
            	            	        // OraclePLSQL.g:0:0: statement
            	            	        {
            	            	            FOLLOWPUSH(FOLLOW_statement_in_exception_handler_sub5155);
            	            	            statement526=statement(ctx);

            	            	            FOLLOWPOP();
            	            	            if  (HASEXCEPTION())
            	            	            {
            	            	                goto ruleexception_handler_subEx;
            	            	            }
            	            	            if (HASFAILED())
            	            	            {
            	            	                return retval;
            	            	            }
            	            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, statement526.tree);

            	            	        }
            	            	        break;

            	            	    default:
            	            	    
            	            		if ( cnt176 >= 1 )
            	            		{
            	            		    goto loop176;
            	            		}
            	            		if (BACKTRACKING>0)
            	            		{
            	            		    FAILEDFLAG = ANTLR3_TRUE;
            	            		    return retval;
            	            		}
            	            		/* mismatchedSetEx()
            	            		 */
            	            		CONSTRUCTEX();
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            	            		goto ruleexception_handler_subEx;
            	            	}
            	            	cnt176++;
            	                }
            	                loop176: ;	/* Jump to here if this rule does not match */
            	            }

            	        }
            	        break;

            	    default:
            	    
            		if ( cnt177 >= 1 )
            		{
            		    goto loop177;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto ruleexception_handler_subEx;
            	}
            	cnt177++;
                }
                loop177: ;	/* Jump to here if this rule does not match */
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexception_handler_subEx; /* Prevent compiler warnings */
    ruleexception_handler_subEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(84, exception_handler_sub_StartIndex); }

    return retval;
}
/* $ANTLR end exception_handler_sub */

/** 
 * $ANTLR start plsql_block
 * OraclePLSQL.g:564:1: plsql_block : ( declare_block )? body ( exception_handler )? k_end ( ID )? -> ^( 't_block_block' ( declare_block )? body ( exception_handler )? k_end ( ID )? ) ;
 */
static OraclePLSQLParser_plsql_block_return
plsql_block(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_plsql_block_return retval;
    ANTLR3_UINT32 plsql_block_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID531;
    OraclePLSQLParser_declare_block_return declare_block527;
    #undef	RETURN_TYPE_declare_block527
    #define	RETURN_TYPE_declare_block527 OraclePLSQLParser_declare_block_return

    OraclePLSQLParser_body_return body528;
    #undef	RETURN_TYPE_body528
    #define	RETURN_TYPE_body528 OraclePLSQLParser_body_return

    OraclePLSQLParser_exception_handler_return exception_handler529;
    #undef	RETURN_TYPE_exception_handler529
    #define	RETURN_TYPE_exception_handler529 OraclePLSQLParser_exception_handler_return

    OraclePLSQLParser_k_end_return k_end530;
    #undef	RETURN_TYPE_k_end530
    #define	RETURN_TYPE_k_end530 OraclePLSQLParser_k_end_return

    pANTLR3_BASE_TREE ID531_tree;
    pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_body;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_declare_block;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_k_end;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_exception_handler;
    /* Initialize rule variables
     */
    plsql_block_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(85)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID531       = NULL;
    declare_block527.tree = NULL;
    body528.tree = NULL;
    exception_handler529.tree = NULL;
    k_end530.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID531_tree   = NULL;

    stream_ID   = NULL;
    #define CREATE_stream_ID  if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } 
    stream_body   = NULL;
    #define CREATE_stream_body  if (stream_body == NULL) {stream_body = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule body"); }
    stream_declare_block   = NULL;
    #define CREATE_stream_declare_block  if (stream_declare_block == NULL) {stream_declare_block = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule declare_block"); }
    stream_k_end   = NULL;
    #define CREATE_stream_k_end  if (stream_k_end == NULL) {stream_k_end = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule k_end"); }
    stream_exception_handler   = NULL;
    #define CREATE_stream_exception_handler  if (stream_exception_handler == NULL) {stream_exception_handler = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule exception_handler"); }

    retval.tree  = NULL;
    {
        // OraclePLSQL.g:565:2: ( ( declare_block )? body ( exception_handler )? k_end ( ID )? -> ^( 't_block_block' ( declare_block )? body ( exception_handler )? k_end ( ID )? ) )
        // OraclePLSQL.g:565:4: ( declare_block )? body ( exception_handler )? k_end ( ID )?
        {

            // OraclePLSQL.g:565:4: ( declare_block )?
            {
                int alt178=2;
                switch ( LA(1) ) 
                {
                    case 138:
                    	{
                    		alt178=1;
                    	}
                        break;
                }

                switch (alt178) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: declare_block
            	    {
            	        FOLLOWPUSH(FOLLOW_declare_block_in_plsql_block5178);
            	        declare_block527=declare_block(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleplsql_blockEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) { CREATE_stream_declare_block; stream_declare_block->add(stream_declare_block, declare_block527.tree, NULL); }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_body_in_plsql_block5181);
            body528=body(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleplsql_blockEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_body; stream_body->add(stream_body, body528.tree, NULL); }

            // OraclePLSQL.g:565:24: ( exception_handler )?
            {
                int alt179=2;
                switch ( LA(1) ) 
                {
                    case 212:
                    	{
                    		alt179=1;
                    	}
                        break;
                }

                switch (alt179) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: exception_handler
            	    {
            	        FOLLOWPUSH(FOLLOW_exception_handler_in_plsql_block5183);
            	        exception_handler529=exception_handler(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleplsql_blockEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) { CREATE_stream_exception_handler; stream_exception_handler->add(stream_exception_handler, exception_handler529.tree, NULL); }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_end_in_plsql_block5186);
            k_end530=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleplsql_blockEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) { CREATE_stream_k_end; stream_k_end->add(stream_k_end, k_end530.tree, NULL); }

            // OraclePLSQL.g:565:49: ( ID )?
            {
                int alt180=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt180=1;
                    	}
                        break;
                }

                switch (alt180) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: ID
            	    {
            	        ID531 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_plsql_block5188); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleplsql_blockEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        } 
            	        if ( BACKTRACKING==0 ) { CREATE_stream_ID; stream_ID->add(stream_ID, ID531, NULL); }


            	    }
            	    break;

                }
            }

             
            /* AST REWRITE
             * elements          : ID, body, exception_handler, declare_block, T_BLOCK_BLOCK, k_end
             * token labels      : 
             * rule labels       : retval
             * token list labels : 
             * rule list labels  : 
             */
            if ( BACKTRACKING==0 ) 
            {
            	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

            	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

            	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	retval.tree    = root_0;
            	// 565:53: -> ^( 't_block_block' ( declare_block )? body ( exception_handler )? k_end ( ID )? )
            	{
            	    // OraclePLSQL.g:565:56: ^( 't_block_block' ( declare_block )? body ( exception_handler )? k_end ( ID )? )
            	    {
            	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
            	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_BLOCK_BLOCK, (pANTLR3_UINT8)"T_BLOCK_BLOCK"), root_1));

            	        // OraclePLSQL.g:565:74: ( declare_block )?
            	        {
            	        	if ( (stream_declare_block != NULL && stream_declare_block->hasNext(stream_declare_block))  )
            	        	{
            	        		ADAPTOR->addChild(ADAPTOR, root_1, stream_declare_block == NULL ? NULL : stream_declare_block->nextTree(stream_declare_block));

            	        	}
            	        	if ( stream_declare_block != NULL) stream_declare_block->reset(stream_declare_block);

            	        }
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_body == NULL ? NULL : stream_body->nextTree(stream_body));
            	        // OraclePLSQL.g:565:94: ( exception_handler )?
            	        {
            	        	if ( (stream_exception_handler != NULL && stream_exception_handler->hasNext(stream_exception_handler))  )
            	        	{
            	        		ADAPTOR->addChild(ADAPTOR, root_1, stream_exception_handler == NULL ? NULL : stream_exception_handler->nextTree(stream_exception_handler));

            	        	}
            	        	if ( stream_exception_handler != NULL) stream_exception_handler->reset(stream_exception_handler);

            	        }
            	        ADAPTOR->addChild(ADAPTOR, root_1, stream_k_end == NULL ? NULL : stream_k_end->nextTree(stream_k_end));
            	        // OraclePLSQL.g:565:119: ( ID )?
            	        {
            	        	if ( (stream_ID != NULL && stream_ID->hasNext(stream_ID))  )
            	        	{
            	        		ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));

            	        	}
            	        	if ( stream_ID != NULL) stream_ID->reset(stream_ID);

            	        }

            	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
            	    }

            	}

            	retval.tree = root_0; // set result root
            	if (stream_retval != NULL) stream_retval->free(stream_retval);


            }
        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleplsql_blockEx; /* Prevent compiler warnings */
    ruleplsql_blockEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_ID != NULL) stream_ID->free(stream_ID);
        if (stream_body != NULL) stream_body->free(stream_body);
        if (stream_declare_block != NULL) stream_declare_block->free(stream_declare_block);
        if (stream_k_end != NULL) stream_k_end->free(stream_k_end);
        if (stream_exception_handler != NULL) stream_exception_handler->free(stream_exception_handler);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(85, plsql_block_StartIndex); }

    return retval;
}
/* $ANTLR end plsql_block */

/** 
 * $ANTLR start label
 * OraclePLSQL.g:568:1: label : LLABEL label_name RLABEL ;
 */
static OraclePLSQLParser_label_return
label(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_label_return retval;
    ANTLR3_UINT32 label_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LLABEL532;
    pANTLR3_COMMON_TOKEN    RLABEL534;
    OraclePLSQLParser_label_name_return label_name533;
    #undef	RETURN_TYPE_label_name533
    #define	RETURN_TYPE_label_name533 OraclePLSQLParser_label_name_return

    pANTLR3_BASE_TREE LLABEL532_tree;
    pANTLR3_BASE_TREE RLABEL534_tree;

    /* Initialize rule variables
     */
    label_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(86)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LLABEL532       = NULL;
    RLABEL534       = NULL;
    label_name533.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LLABEL532_tree   = NULL;
    RLABEL534_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:568:7: ( LLABEL label_name RLABEL )
        // OraclePLSQL.g:569:9: LLABEL label_name RLABEL
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            LLABEL532 = (pANTLR3_COMMON_TOKEN) MATCHT(LLABEL, &FOLLOW_LLABEL_in_label5229); 
            if  (HASEXCEPTION())
            {
                goto rulelabelEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LLABEL532_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LLABEL532));
            ADAPTOR->addChild(ADAPTOR, root_0, LLABEL532_tree);
            }
            FOLLOWPUSH(FOLLOW_label_name_in_label5231);
            label_name533=label_name(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelabelEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, label_name533.tree);
            RLABEL534 = (pANTLR3_COMMON_TOKEN) MATCHT(RLABEL, &FOLLOW_RLABEL_in_label5233); 
            if  (HASEXCEPTION())
            {
                goto rulelabelEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RLABEL534_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RLABEL534));
            ADAPTOR->addChild(ADAPTOR, root_0, RLABEL534_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulelabelEx; /* Prevent compiler warnings */
    rulelabelEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(86, label_StartIndex); }

    return retval;
}
/* $ANTLR end label */

/** 
 * $ANTLR start qual_id
 * OraclePLSQL.g:575:1: qual_id : ( COLON )? identifier[T_UNKNOWN,T_USE] ( DOT identifier[T_UNKNOWN,T_USE] )* ;
 */
static OraclePLSQLParser_qual_id_return
qual_id(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_qual_id_return retval;
    ANTLR3_UINT32 qual_id_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    COLON535;
    pANTLR3_COMMON_TOKEN    DOT537;
    OraclePLSQLParser_identifier_return identifier536;
    #undef	RETURN_TYPE_identifier536
    #define	RETURN_TYPE_identifier536 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier538;
    #undef	RETURN_TYPE_identifier538
    #define	RETURN_TYPE_identifier538 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE COLON535_tree;
    pANTLR3_BASE_TREE DOT537_tree;

    /* Initialize rule variables
     */
    qual_id_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(87)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    COLON535       = NULL;
    DOT537       = NULL;
    identifier536.tree = NULL;
    identifier538.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    COLON535_tree   = NULL;
    DOT537_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:575:9: ( ( COLON )? identifier[T_UNKNOWN,T_USE] ( DOT identifier[T_UNKNOWN,T_USE] )* )
        // OraclePLSQL.g:576:2: ( COLON )? identifier[T_UNKNOWN,T_USE] ( DOT identifier[T_UNKNOWN,T_USE] )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:576:2: ( COLON )?
            {
                int alt181=2;
                switch ( LA(1) ) 
                {
                    case COLON:
                    	{
                    		alt181=1;
                    	}
                        break;
                }

                switch (alt181) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: COLON
            	    {
            	        COLON535 = (pANTLR3_COMMON_TOKEN) MATCHT(COLON, &FOLLOW_COLON_in_qual_id5250); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulequal_idEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        COLON535_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COLON535));
            	        ADAPTOR->addChild(ADAPTOR, root_0, COLON535_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_identifier_in_qual_id5253);
            identifier536=identifier(ctx, T_UNKNOWN, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulequal_idEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier536.tree);

            // OraclePLSQL.g:576:37: ( DOT identifier[T_UNKNOWN,T_USE] )*

            for (;;)
            {
                int alt182=2;
                switch ( LA(1) ) 
                {
                case DOT:
                	{
                		alt182=1;
                	}
                    break;

                }

                switch (alt182) 
                {
            	case 1:
            	    // OraclePLSQL.g:576:39: DOT identifier[T_UNKNOWN,T_USE]
            	    {
            	        DOT537 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_qual_id5258); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulequal_idEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT537_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT537));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT537_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_identifier_in_qual_id5260);
            	        identifier538=identifier(ctx, T_UNKNOWN, T_USE);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulequal_idEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier538.tree);

            	    }
            	    break;

            	default:
            	    goto loop182;	/* break out of the loop */
            	    break;
                }
            }
            loop182: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulequal_idEx; /* Prevent compiler warnings */
    rulequal_idEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(87, qual_id_StartIndex); }

    return retval;
}
/* $ANTLR end qual_id */

/** 
 * $ANTLR start schema_name
 * OraclePLSQL.g:579:1: schema_name : identifier[T_SCHEMA_NAME, T_USE] ;
 */
static OraclePLSQLParser_schema_name_return
schema_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_schema_name_return retval;
    ANTLR3_UINT32 schema_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier539;
    #undef	RETURN_TYPE_identifier539
    #define	RETURN_TYPE_identifier539 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    schema_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(88)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier539.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:580:2: ( identifier[T_SCHEMA_NAME, T_USE] )
        // OraclePLSQL.g:580:4: identifier[T_SCHEMA_NAME, T_USE]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_identifier_in_schema_name5278);
            identifier539=identifier(ctx, T_SCHEMA_NAME, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleschema_nameEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier539.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleschema_nameEx; /* Prevent compiler warnings */
    ruleschema_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(88, schema_name_StartIndex); }

    return retval;
}
/* $ANTLR end schema_name */

/** 
 * $ANTLR start object_attribute_name
 * OraclePLSQL.g:583:1: object_attribute_name : identifier[T_OBJECT_NAME, T_USE] ;
 */
static OraclePLSQLParser_object_attribute_name_return
object_attribute_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_object_attribute_name_return retval;
    ANTLR3_UINT32 object_attribute_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier540;
    #undef	RETURN_TYPE_identifier540
    #define	RETURN_TYPE_identifier540 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    object_attribute_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(89)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier540.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:584:2: ( identifier[T_OBJECT_NAME, T_USE] )
        // OraclePLSQL.g:584:4: identifier[T_OBJECT_NAME, T_USE]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_identifier_in_object_attribute_name5290);
            identifier540=identifier(ctx, T_OBJECT_NAME, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleobject_attribute_nameEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier540.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleobject_attribute_nameEx; /* Prevent compiler warnings */
    ruleobject_attribute_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(89, object_attribute_name_StartIndex); }

    return retval;
}
/* $ANTLR end object_attribute_name */

/** 
 * $ANTLR start cursor_name
 * OraclePLSQL.g:587:1: cursor_name : ( ( schema_name DOT )? identifier[T_CURSOR_NAME,T_USE] | bindvar | COLON identifier[T_CURSOR_NAME,T_USE] );
 */
static OraclePLSQLParser_cursor_name_return
cursor_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_cursor_name_return retval;
    ANTLR3_UINT32 cursor_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT542;
    pANTLR3_COMMON_TOKEN    COLON545;
    OraclePLSQLParser_schema_name_return schema_name541;
    #undef	RETURN_TYPE_schema_name541
    #define	RETURN_TYPE_schema_name541 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_identifier_return identifier543;
    #undef	RETURN_TYPE_identifier543
    #define	RETURN_TYPE_identifier543 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_bindvar_return bindvar544;
    #undef	RETURN_TYPE_bindvar544
    #define	RETURN_TYPE_bindvar544 OraclePLSQLParser_bindvar_return

    OraclePLSQLParser_identifier_return identifier546;
    #undef	RETURN_TYPE_identifier546
    #define	RETURN_TYPE_identifier546 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE DOT542_tree;
    pANTLR3_BASE_TREE COLON545_tree;

    /* Initialize rule variables
     */
    cursor_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(90)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT542       = NULL;
    COLON545       = NULL;
    schema_name541.tree = NULL;
    identifier543.tree = NULL;
    bindvar544.tree = NULL;
    identifier546.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT542_tree   = NULL;
    COLON545_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:588:2: ( ( schema_name DOT )? identifier[T_CURSOR_NAME,T_USE] | bindvar | COLON identifier[T_CURSOR_NAME,T_USE] )
            
            ANTLR3_UINT32 alt184;

            alt184=3;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt184=1;
            	}
                break;
            case BINDVAR:
            	{
            		alt184=2;
            	}
                break;
            case COLON:
            	{
            		switch ( LA(2) ) 
            		{
            		case ID:
            			{

            				{
            				    int LA184_4 = LA(3);
            				    if ( (synpred270_OraclePLSQL(ctx))) 
            				    {
            				        alt184=2;
            				    }
            				    else if ( (ANTLR3_TRUE)) 
            				    {
            				        alt184=3;
            				    }
            				    else 
            				    {
            				        if (BACKTRACKING>0)
            				        {
            				            FAILEDFLAG = ANTLR3_TRUE;
            				            return retval;
            				        }
            				    
            				        CONSTRUCTEX();
            				        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            				        EXCEPTION->message      = (void *)"";
            				        EXCEPTION->decisionNum  = 184;
            				        EXCEPTION->state        = 4;


            				        goto rulecursor_nameEx;
            				    }
            				}
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 184;
            		    EXCEPTION->state        = 3;


            		    goto rulecursor_nameEx;
            		}

            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 184;
                EXCEPTION->state        = 0;


                goto rulecursor_nameEx;
            }

            switch (alt184) 
            {
        	case 1:
        	    // OraclePLSQL.g:588:4: ( schema_name DOT )? identifier[T_CURSOR_NAME,T_USE]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:588:4: ( schema_name DOT )?
        	        {
        	            int alt183=2;
        	            switch ( LA(1) ) 
        	            {
        	                case ID:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case DOT:
        	                		    	{
        	                		    		alt183=1;
        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt183) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:588:5: schema_name DOT
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_schema_name_in_cursor_name5303);
        	        	        schema_name541=schema_name(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulecursor_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name541.tree);
        	        	        DOT542 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_cursor_name5305); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulecursor_nameEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        DOT542_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT542));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, DOT542_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_cursor_name5309);
        	        identifier543=identifier(ctx, T_CURSOR_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecursor_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier543.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:589:4: bindvar
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_bindvar_in_cursor_name5315);
        	        bindvar544=bindvar(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecursor_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bindvar544.tree);

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:590:4: COLON identifier[T_CURSOR_NAME,T_USE]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        COLON545 = (pANTLR3_COMMON_TOKEN) MATCHT(COLON, &FOLLOW_COLON_in_cursor_name5320); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecursor_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        COLON545_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COLON545));
        	        ADAPTOR->addChild(ADAPTOR, root_0, COLON545_tree);
        	        }
        	        FOLLOWPUSH(FOLLOW_identifier_in_cursor_name5322);
        	        identifier546=identifier(ctx, T_CURSOR_NAME, T_USE);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecursor_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier546.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulecursor_nameEx; /* Prevent compiler warnings */
    rulecursor_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(90, cursor_name_StartIndex); }

    return retval;
}
/* $ANTLR end cursor_name */

/** 
 * $ANTLR start variable_name
 * OraclePLSQL.g:593:1: variable_name[int usageType] : ( identifier[T_VARIABLE_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'OUT' | 'ROWCOUNT' | 'INTERVAL' );
 */
static OraclePLSQLParser_variable_name_return
variable_name(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_variable_name_return retval;
    ANTLR3_UINT32 variable_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    string_literal548;
    pANTLR3_COMMON_TOKEN    string_literal549;
    pANTLR3_COMMON_TOKEN    string_literal550;
    pANTLR3_COMMON_TOKEN    string_literal551;
    pANTLR3_COMMON_TOKEN    string_literal552;
    OraclePLSQLParser_identifier_return identifier547;
    #undef	RETURN_TYPE_identifier547
    #define	RETURN_TYPE_identifier547 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE string_literal548_tree;
    pANTLR3_BASE_TREE string_literal549_tree;
    pANTLR3_BASE_TREE string_literal550_tree;
    pANTLR3_BASE_TREE string_literal551_tree;
    pANTLR3_BASE_TREE string_literal552_tree;

    /* Initialize rule variables
     */
    variable_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(91)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    string_literal548       = NULL;
    string_literal549       = NULL;
    string_literal550       = NULL;
    string_literal551       = NULL;
    string_literal552       = NULL;
    identifier547.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    string_literal548_tree   = NULL;
    string_literal549_tree   = NULL;
    string_literal550_tree   = NULL;
    string_literal551_tree   = NULL;
    string_literal552_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:594:2: ( identifier[T_VARIABLE_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'OUT' | 'ROWCOUNT' | 'INTERVAL' )
            
            ANTLR3_UINT32 alt185;

            alt185=6;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt185=1;
            	}
                break;
            case 127:
            	{
            		alt185=2;
            	}
                break;
            case 128:
            	{
            		alt185=3;
            	}
                break;
            case K_OUT:
            	{
            		alt185=4;
            	}
                break;
            case 129:
            	{
            		alt185=5;
            	}
                break;
            case 130:
            	{
            		alt185=6;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 185;
                EXCEPTION->state        = 0;


                goto rulevariable_nameEx;
            }

            switch (alt185) 
            {
        	case 1:
        	    // OraclePLSQL.g:594:10: identifier[T_VARIABLE_NAME,usageType]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_identifier_in_variable_name5341);
        	        identifier547=identifier(ctx, T_VARIABLE_NAME, usageType);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier547.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:595:4: 'FOUND'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal548 = (pANTLR3_COMMON_TOKEN) MATCHT(127, &FOLLOW_127_in_variable_name5347); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal548_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal548));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal548_tree);
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:596:7: 'TIMESTAMP'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal549 = (pANTLR3_COMMON_TOKEN) MATCHT(128, &FOLLOW_128_in_variable_name5355); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal549_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal549));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal549_tree);
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:597:4: 'OUT'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal550 = (pANTLR3_COMMON_TOKEN) MATCHT(K_OUT, &FOLLOW_K_OUT_in_variable_name5360); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal550_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal550));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal550_tree);
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:598:4: 'ROWCOUNT'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal551 = (pANTLR3_COMMON_TOKEN) MATCHT(129, &FOLLOW_129_in_variable_name5365); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal551_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal551));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal551_tree);
        	        }

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:599:4: 'INTERVAL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal552 = (pANTLR3_COMMON_TOKEN) MATCHT(130, &FOLLOW_130_in_variable_name5370); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal552_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal552));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal552_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulevariable_nameEx; /* Prevent compiler warnings */
    rulevariable_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(91, variable_name_StartIndex); }

    return retval;
}
/* $ANTLR end variable_name */

/** 
 * $ANTLR start variable_name_ex
 * OraclePLSQL.g:602:1: variable_name_ex[int usageType] : ( identifier[T_VARIABLE_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'EXECUTE' | 'ROWCOUNT' | 'INTERVAL' | 'LANGUAGE' | 'DELETE' | 'RAISE' | 'OPEN' | 'CALL' );
 */
static OraclePLSQLParser_variable_name_ex_return
variable_name_ex(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_variable_name_ex_return retval;
    ANTLR3_UINT32 variable_name_ex_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    string_literal554;
    pANTLR3_COMMON_TOKEN    string_literal555;
    pANTLR3_COMMON_TOKEN    string_literal556;
    pANTLR3_COMMON_TOKEN    string_literal557;
    pANTLR3_COMMON_TOKEN    string_literal558;
    pANTLR3_COMMON_TOKEN    string_literal559;
    pANTLR3_COMMON_TOKEN    string_literal560;
    pANTLR3_COMMON_TOKEN    string_literal561;
    pANTLR3_COMMON_TOKEN    string_literal562;
    pANTLR3_COMMON_TOKEN    string_literal563;
    OraclePLSQLParser_identifier_return identifier553;
    #undef	RETURN_TYPE_identifier553
    #define	RETURN_TYPE_identifier553 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE string_literal554_tree;
    pANTLR3_BASE_TREE string_literal555_tree;
    pANTLR3_BASE_TREE string_literal556_tree;
    pANTLR3_BASE_TREE string_literal557_tree;
    pANTLR3_BASE_TREE string_literal558_tree;
    pANTLR3_BASE_TREE string_literal559_tree;
    pANTLR3_BASE_TREE string_literal560_tree;
    pANTLR3_BASE_TREE string_literal561_tree;
    pANTLR3_BASE_TREE string_literal562_tree;
    pANTLR3_BASE_TREE string_literal563_tree;

    /* Initialize rule variables
     */
    variable_name_ex_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(92)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    string_literal554       = NULL;
    string_literal555       = NULL;
    string_literal556       = NULL;
    string_literal557       = NULL;
    string_literal558       = NULL;
    string_literal559       = NULL;
    string_literal560       = NULL;
    string_literal561       = NULL;
    string_literal562       = NULL;
    string_literal563       = NULL;
    identifier553.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    string_literal554_tree   = NULL;
    string_literal555_tree   = NULL;
    string_literal556_tree   = NULL;
    string_literal557_tree   = NULL;
    string_literal558_tree   = NULL;
    string_literal559_tree   = NULL;
    string_literal560_tree   = NULL;
    string_literal561_tree   = NULL;
    string_literal562_tree   = NULL;
    string_literal563_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:603:2: ( identifier[T_VARIABLE_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'EXECUTE' | 'ROWCOUNT' | 'INTERVAL' | 'LANGUAGE' | 'DELETE' | 'RAISE' | 'OPEN' | 'CALL' )
            
            ANTLR3_UINT32 alt186;

            alt186=11;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt186=1;
            	}
                break;
            case 127:
            	{
            		alt186=2;
            	}
                break;
            case 128:
            	{
            		alt186=3;
            	}
                break;
            case 131:
            	{
            		alt186=4;
            	}
                break;
            case 129:
            	{
            		alt186=5;
            	}
                break;
            case 130:
            	{
            		alt186=6;
            	}
                break;
            case 132:
            	{
            		alt186=7;
            	}
                break;
            case 133:
            	{
            		alt186=8;
            	}
                break;
            case 134:
            	{
            		alt186=9;
            	}
                break;
            case 135:
            	{
            		alt186=10;
            	}
                break;
            case 136:
            	{
            		alt186=11;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 186;
                EXCEPTION->state        = 0;


                goto rulevariable_name_exEx;
            }

            switch (alt186) 
            {
        	case 1:
        	    // OraclePLSQL.g:603:10: identifier[T_VARIABLE_NAME,usageType]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_identifier_in_variable_name_ex5388);
        	        identifier553=identifier(ctx, T_VARIABLE_NAME, usageType);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier553.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:605:4: 'FOUND'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal554 = (pANTLR3_COMMON_TOKEN) MATCHT(127, &FOLLOW_127_in_variable_name_ex5396); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal554_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal554));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal554_tree);
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:606:7: 'TIMESTAMP'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal555 = (pANTLR3_COMMON_TOKEN) MATCHT(128, &FOLLOW_128_in_variable_name_ex5404); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal555_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal555));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal555_tree);
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:608:4: 'EXECUTE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal556 = (pANTLR3_COMMON_TOKEN) MATCHT(131, &FOLLOW_131_in_variable_name_ex5410); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal556_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal556));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal556_tree);
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:610:4: 'ROWCOUNT'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal557 = (pANTLR3_COMMON_TOKEN) MATCHT(129, &FOLLOW_129_in_variable_name_ex5416); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal557_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal557));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal557_tree);
        	        }

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:611:4: 'INTERVAL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal558 = (pANTLR3_COMMON_TOKEN) MATCHT(130, &FOLLOW_130_in_variable_name_ex5421); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal558_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal558));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal558_tree);
        	        }

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:613:4: 'LANGUAGE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal559 = (pANTLR3_COMMON_TOKEN) MATCHT(132, &FOLLOW_132_in_variable_name_ex5435); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal559_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal559));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal559_tree);
        	        }

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:614:7: 'DELETE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal560 = (pANTLR3_COMMON_TOKEN) MATCHT(133, &FOLLOW_133_in_variable_name_ex5443); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal560_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal560));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal560_tree);
        	        }

        	    }
        	    break;
        	case 9:
        	    // OraclePLSQL.g:615:7: 'RAISE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal561 = (pANTLR3_COMMON_TOKEN) MATCHT(134, &FOLLOW_134_in_variable_name_ex5451); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal561_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal561));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal561_tree);
        	        }

        	    }
        	    break;
        	case 10:
        	    // OraclePLSQL.g:616:4: 'OPEN'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal562 = (pANTLR3_COMMON_TOKEN) MATCHT(135, &FOLLOW_135_in_variable_name_ex5456); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal562_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal562));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal562_tree);
        	        }

        	    }
        	    break;
        	case 11:
        	    // OraclePLSQL.g:617:7: 'CALL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal563 = (pANTLR3_COMMON_TOKEN) MATCHT(136, &FOLLOW_136_in_variable_name_ex5464); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulevariable_name_exEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal563_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal563));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal563_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulevariable_name_exEx; /* Prevent compiler warnings */
    rulevariable_name_exEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(92, variable_name_ex_StartIndex); }

    return retval;
}
/* $ANTLR end variable_name_ex */

/** 
 * $ANTLR start parameter_name
 * OraclePLSQL.g:620:1: parameter_name[int usageType] : ( identifier[T_PARAMETER_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'ROWCOUNT' | 'INTERVAL' );
 */
static OraclePLSQLParser_parameter_name_return
parameter_name(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_parameter_name_return retval;
    ANTLR3_UINT32 parameter_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    string_literal565;
    pANTLR3_COMMON_TOKEN    string_literal566;
    pANTLR3_COMMON_TOKEN    string_literal567;
    pANTLR3_COMMON_TOKEN    string_literal568;
    OraclePLSQLParser_identifier_return identifier564;
    #undef	RETURN_TYPE_identifier564
    #define	RETURN_TYPE_identifier564 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE string_literal565_tree;
    pANTLR3_BASE_TREE string_literal566_tree;
    pANTLR3_BASE_TREE string_literal567_tree;
    pANTLR3_BASE_TREE string_literal568_tree;

    /* Initialize rule variables
     */
    parameter_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(93)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    string_literal565       = NULL;
    string_literal566       = NULL;
    string_literal567       = NULL;
    string_literal568       = NULL;
    identifier564.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    string_literal565_tree   = NULL;
    string_literal566_tree   = NULL;
    string_literal567_tree   = NULL;
    string_literal568_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:621:2: ( identifier[T_PARAMETER_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'ROWCOUNT' | 'INTERVAL' )
            
            ANTLR3_UINT32 alt187;

            alt187=5;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt187=1;
            	}
                break;
            case 127:
            	{
            		alt187=2;
            	}
                break;
            case 128:
            	{
            		alt187=3;
            	}
                break;
            case 129:
            	{
            		alt187=4;
            	}
                break;
            case 130:
            	{
            		alt187=5;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 187;
                EXCEPTION->state        = 0;


                goto ruleparameter_nameEx;
            }

            switch (alt187) 
            {
        	case 1:
        	    // OraclePLSQL.g:621:10: identifier[T_PARAMETER_NAME,usageType]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_identifier_in_parameter_name5490);
        	        identifier564=identifier(ctx, T_PARAMETER_NAME, usageType);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparameter_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier564.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:622:4: 'FOUND'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal565 = (pANTLR3_COMMON_TOKEN) MATCHT(127, &FOLLOW_127_in_parameter_name5496); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparameter_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal565_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal565));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal565_tree);
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:623:7: 'TIMESTAMP'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal566 = (pANTLR3_COMMON_TOKEN) MATCHT(128, &FOLLOW_128_in_parameter_name5504); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparameter_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal566_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal566));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal566_tree);
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:626:4: 'ROWCOUNT'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal567 = (pANTLR3_COMMON_TOKEN) MATCHT(129, &FOLLOW_129_in_parameter_name5511); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparameter_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal567_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal567));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal567_tree);
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:627:4: 'INTERVAL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal568 = (pANTLR3_COMMON_TOKEN) MATCHT(130, &FOLLOW_130_in_parameter_name5516); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleparameter_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal568_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal568));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal568_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleparameter_nameEx; /* Prevent compiler warnings */
    ruleparameter_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(93, parameter_name_StartIndex); }

    return retval;
}
/* $ANTLR end parameter_name */

/** 
 * $ANTLR start column_name
 * OraclePLSQL.g:630:1: column_name[int usageType] : ( identifier[T_COLUMN_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'EXECUTE' | 'ROWCOUNT' | 'INTERVAL' | 'LANGUAGE' | 'DELETE' | 'RAISE' );
 */
static OraclePLSQLParser_column_name_return
column_name(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_column_name_return retval;
    ANTLR3_UINT32 column_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    string_literal570;
    pANTLR3_COMMON_TOKEN    string_literal571;
    pANTLR3_COMMON_TOKEN    string_literal572;
    pANTLR3_COMMON_TOKEN    string_literal573;
    pANTLR3_COMMON_TOKEN    string_literal574;
    pANTLR3_COMMON_TOKEN    string_literal575;
    pANTLR3_COMMON_TOKEN    string_literal576;
    pANTLR3_COMMON_TOKEN    string_literal577;
    OraclePLSQLParser_identifier_return identifier569;
    #undef	RETURN_TYPE_identifier569
    #define	RETURN_TYPE_identifier569 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE string_literal570_tree;
    pANTLR3_BASE_TREE string_literal571_tree;
    pANTLR3_BASE_TREE string_literal572_tree;
    pANTLR3_BASE_TREE string_literal573_tree;
    pANTLR3_BASE_TREE string_literal574_tree;
    pANTLR3_BASE_TREE string_literal575_tree;
    pANTLR3_BASE_TREE string_literal576_tree;
    pANTLR3_BASE_TREE string_literal577_tree;

    /* Initialize rule variables
     */
    column_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(94)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    string_literal570       = NULL;
    string_literal571       = NULL;
    string_literal572       = NULL;
    string_literal573       = NULL;
    string_literal574       = NULL;
    string_literal575       = NULL;
    string_literal576       = NULL;
    string_literal577       = NULL;
    identifier569.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    string_literal570_tree   = NULL;
    string_literal571_tree   = NULL;
    string_literal572_tree   = NULL;
    string_literal573_tree   = NULL;
    string_literal574_tree   = NULL;
    string_literal575_tree   = NULL;
    string_literal576_tree   = NULL;
    string_literal577_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:631:2: ( identifier[T_COLUMN_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'EXECUTE' | 'ROWCOUNT' | 'INTERVAL' | 'LANGUAGE' | 'DELETE' | 'RAISE' )
            
            ANTLR3_UINT32 alt188;

            alt188=9;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt188=1;
            	}
                break;
            case 127:
            	{
            		alt188=2;
            	}
                break;
            case 128:
            	{
            		alt188=3;
            	}
                break;
            case 131:
            	{
            		alt188=4;
            	}
                break;
            case 129:
            	{
            		alt188=5;
            	}
                break;
            case 130:
            	{
            		alt188=6;
            	}
                break;
            case 132:
            	{
            		alt188=7;
            	}
                break;
            case 133:
            	{
            		alt188=8;
            	}
                break;
            case 134:
            	{
            		alt188=9;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 188;
                EXCEPTION->state        = 0;


                goto rulecolumn_nameEx;
            }

            switch (alt188) 
            {
        	case 1:
        	    // OraclePLSQL.g:631:10: identifier[T_COLUMN_NAME,usageType]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_identifier_in_column_name5534);
        	        identifier569=identifier(ctx, T_COLUMN_NAME, usageType);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier569.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:633:4: 'FOUND'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal570 = (pANTLR3_COMMON_TOKEN) MATCHT(127, &FOLLOW_127_in_column_name5542); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal570_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal570));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal570_tree);
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:634:7: 'TIMESTAMP'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal571 = (pANTLR3_COMMON_TOKEN) MATCHT(128, &FOLLOW_128_in_column_name5550); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal571_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal571));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal571_tree);
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:636:4: 'EXECUTE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal572 = (pANTLR3_COMMON_TOKEN) MATCHT(131, &FOLLOW_131_in_column_name5556); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal572_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal572));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal572_tree);
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:638:4: 'ROWCOUNT'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal573 = (pANTLR3_COMMON_TOKEN) MATCHT(129, &FOLLOW_129_in_column_name5562); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal573_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal573));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal573_tree);
        	        }

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:639:4: 'INTERVAL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal574 = (pANTLR3_COMMON_TOKEN) MATCHT(130, &FOLLOW_130_in_column_name5567); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal574_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal574));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal574_tree);
        	        }

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:641:4: 'LANGUAGE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal575 = (pANTLR3_COMMON_TOKEN) MATCHT(132, &FOLLOW_132_in_column_name5581); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal575_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal575));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal575_tree);
        	        }

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:642:7: 'DELETE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal576 = (pANTLR3_COMMON_TOKEN) MATCHT(133, &FOLLOW_133_in_column_name5589); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal576_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal576));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal576_tree);
        	        }

        	    }
        	    break;
        	case 9:
        	    // OraclePLSQL.g:643:7: 'RAISE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal577 = (pANTLR3_COMMON_TOKEN) MATCHT(134, &FOLLOW_134_in_column_name5597); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulecolumn_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal577_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal577));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal577_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulecolumn_nameEx; /* Prevent compiler warnings */
    rulecolumn_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(94, column_name_StartIndex); }

    return retval;
}
/* $ANTLR end column_name */

/** 
 * $ANTLR start procedure_name
 * OraclePLSQL.g:646:1: procedure_name[int usageType] : ( identifier[T_PROCEDURE_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'EXECUTE' | 'ROWCOUNT' | 'INTERVAL' | 'LANGUAGE' | 'DELETE' | 'RAISE' | 'OPEN' | 'CALL' );
 */
static OraclePLSQLParser_procedure_name_return
procedure_name(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_procedure_name_return retval;
    ANTLR3_UINT32 procedure_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    string_literal579;
    pANTLR3_COMMON_TOKEN    string_literal580;
    pANTLR3_COMMON_TOKEN    string_literal581;
    pANTLR3_COMMON_TOKEN    string_literal582;
    pANTLR3_COMMON_TOKEN    string_literal583;
    pANTLR3_COMMON_TOKEN    string_literal584;
    pANTLR3_COMMON_TOKEN    string_literal585;
    pANTLR3_COMMON_TOKEN    string_literal586;
    pANTLR3_COMMON_TOKEN    string_literal587;
    pANTLR3_COMMON_TOKEN    string_literal588;
    OraclePLSQLParser_identifier_return identifier578;
    #undef	RETURN_TYPE_identifier578
    #define	RETURN_TYPE_identifier578 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE string_literal579_tree;
    pANTLR3_BASE_TREE string_literal580_tree;
    pANTLR3_BASE_TREE string_literal581_tree;
    pANTLR3_BASE_TREE string_literal582_tree;
    pANTLR3_BASE_TREE string_literal583_tree;
    pANTLR3_BASE_TREE string_literal584_tree;
    pANTLR3_BASE_TREE string_literal585_tree;
    pANTLR3_BASE_TREE string_literal586_tree;
    pANTLR3_BASE_TREE string_literal587_tree;
    pANTLR3_BASE_TREE string_literal588_tree;

    /* Initialize rule variables
     */
    procedure_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(95)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    string_literal579       = NULL;
    string_literal580       = NULL;
    string_literal581       = NULL;
    string_literal582       = NULL;
    string_literal583       = NULL;
    string_literal584       = NULL;
    string_literal585       = NULL;
    string_literal586       = NULL;
    string_literal587       = NULL;
    string_literal588       = NULL;
    identifier578.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    string_literal579_tree   = NULL;
    string_literal580_tree   = NULL;
    string_literal581_tree   = NULL;
    string_literal582_tree   = NULL;
    string_literal583_tree   = NULL;
    string_literal584_tree   = NULL;
    string_literal585_tree   = NULL;
    string_literal586_tree   = NULL;
    string_literal587_tree   = NULL;
    string_literal588_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:647:2: ( identifier[T_PROCEDURE_NAME,usageType] | 'FOUND' | 'TIMESTAMP' | 'EXECUTE' | 'ROWCOUNT' | 'INTERVAL' | 'LANGUAGE' | 'DELETE' | 'RAISE' | 'OPEN' | 'CALL' )
            
            ANTLR3_UINT32 alt189;

            alt189=11;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt189=1;
            	}
                break;
            case 127:
            	{
            		alt189=2;
            	}
                break;
            case 128:
            	{
            		alt189=3;
            	}
                break;
            case 131:
            	{
            		alt189=4;
            	}
                break;
            case 129:
            	{
            		alt189=5;
            	}
                break;
            case 130:
            	{
            		alt189=6;
            	}
                break;
            case 132:
            	{
            		alt189=7;
            	}
                break;
            case 133:
            	{
            		alt189=8;
            	}
                break;
            case 134:
            	{
            		alt189=9;
            	}
                break;
            case 135:
            	{
            		alt189=10;
            	}
                break;
            case 136:
            	{
            		alt189=11;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 189;
                EXCEPTION->state        = 0;


                goto ruleprocedure_nameEx;
            }

            switch (alt189) 
            {
        	case 1:
        	    // OraclePLSQL.g:647:10: identifier[T_PROCEDURE_NAME,usageType]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_identifier_in_procedure_name5615);
        	        identifier578=identifier(ctx, T_PROCEDURE_NAME, usageType);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier578.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:649:4: 'FOUND'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal579 = (pANTLR3_COMMON_TOKEN) MATCHT(127, &FOLLOW_127_in_procedure_name5623); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal579_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal579));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal579_tree);
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:650:7: 'TIMESTAMP'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal580 = (pANTLR3_COMMON_TOKEN) MATCHT(128, &FOLLOW_128_in_procedure_name5631); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal580_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal580));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal580_tree);
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:652:4: 'EXECUTE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal581 = (pANTLR3_COMMON_TOKEN) MATCHT(131, &FOLLOW_131_in_procedure_name5637); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal581_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal581));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal581_tree);
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:654:4: 'ROWCOUNT'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal582 = (pANTLR3_COMMON_TOKEN) MATCHT(129, &FOLLOW_129_in_procedure_name5643); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal582_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal582));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal582_tree);
        	        }

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:655:4: 'INTERVAL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal583 = (pANTLR3_COMMON_TOKEN) MATCHT(130, &FOLLOW_130_in_procedure_name5648); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal583_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal583));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal583_tree);
        	        }

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:657:4: 'LANGUAGE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal584 = (pANTLR3_COMMON_TOKEN) MATCHT(132, &FOLLOW_132_in_procedure_name5662); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal584_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal584));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal584_tree);
        	        }

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:658:7: 'DELETE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal585 = (pANTLR3_COMMON_TOKEN) MATCHT(133, &FOLLOW_133_in_procedure_name5670); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal585_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal585));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal585_tree);
        	        }

        	    }
        	    break;
        	case 9:
        	    // OraclePLSQL.g:659:7: 'RAISE'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal586 = (pANTLR3_COMMON_TOKEN) MATCHT(134, &FOLLOW_134_in_procedure_name5678); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal586_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal586));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal586_tree);
        	        }

        	    }
        	    break;
        	case 10:
        	    // OraclePLSQL.g:660:4: 'OPEN'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal587 = (pANTLR3_COMMON_TOKEN) MATCHT(135, &FOLLOW_135_in_procedure_name5683); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal587_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal587));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal587_tree);
        	        }

        	    }
        	    break;
        	case 11:
        	    // OraclePLSQL.g:661:7: 'CALL'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal588 = (pANTLR3_COMMON_TOKEN) MATCHT(136, &FOLLOW_136_in_procedure_name5691); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleprocedure_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal588_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal588));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal588_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleprocedure_nameEx; /* Prevent compiler warnings */
    ruleprocedure_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(95, procedure_name_StartIndex); }

    return retval;
}
/* $ANTLR end procedure_name */

/** 
 * $ANTLR start exception_name
 * OraclePLSQL.g:664:1: exception_name : ( package_name[T_USE] DOT )? identifier[T_EXCEPTION_NAME,T_USE] ;
 */
static OraclePLSQLParser_exception_name_return
exception_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_exception_name_return retval;
    ANTLR3_UINT32 exception_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT590;
    OraclePLSQLParser_package_name_return package_name589;
    #undef	RETURN_TYPE_package_name589
    #define	RETURN_TYPE_package_name589 OraclePLSQLParser_package_name_return

    OraclePLSQLParser_identifier_return identifier591;
    #undef	RETURN_TYPE_identifier591
    #define	RETURN_TYPE_identifier591 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE DOT590_tree;

    /* Initialize rule variables
     */
    exception_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(96)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT590       = NULL;
    package_name589.tree = NULL;
    identifier591.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT590_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:665:2: ( ( package_name[T_USE] DOT )? identifier[T_EXCEPTION_NAME,T_USE] )
        // OraclePLSQL.g:665:28: ( package_name[T_USE] DOT )? identifier[T_EXCEPTION_NAME,T_USE]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:665:28: ( package_name[T_USE] DOT )?
            {
                int alt190=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case DOT:
                    		    	{
                    		    		alt190=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                    case 137:
                    	{
                    		alt190=1;
                    	}
                        break;
                }

                switch (alt190) 
                {
            	case 1:
            	    // OraclePLSQL.g:665:29: package_name[T_USE] DOT
            	    {
            	        FOLLOWPUSH(FOLLOW_package_name_in_exception_name5705);
            	        package_name589=package_name(ctx, T_USE);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexception_nameEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, package_name589.tree);
            	        DOT590 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_exception_name5708); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleexception_nameEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT590_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT590));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT590_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_identifier_in_exception_name5712);
            identifier591=identifier(ctx, T_EXCEPTION_NAME, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexception_nameEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier591.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexception_nameEx; /* Prevent compiler warnings */
    ruleexception_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(96, exception_name_StartIndex); }

    return retval;
}
/* $ANTLR end exception_name */

/** 
 * $ANTLR start package_name
 * OraclePLSQL.g:668:1: package_name[int usageType] : ( identifier[T_PACKAGE_NAME,usageType] | 'ARRAY' );
 */
static OraclePLSQLParser_package_name_return
package_name(pOraclePLSQLParser ctx, int usageType)
{   
    OraclePLSQLParser_package_name_return retval;
    ANTLR3_UINT32 package_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    string_literal593;
    OraclePLSQLParser_identifier_return identifier592;
    #undef	RETURN_TYPE_identifier592
    #define	RETURN_TYPE_identifier592 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE string_literal593_tree;

    /* Initialize rule variables
     */
    package_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(97)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    string_literal593       = NULL;
    identifier592.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    string_literal593_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:669:2: ( identifier[T_PACKAGE_NAME,usageType] | 'ARRAY' )
            
            ANTLR3_UINT32 alt191;

            alt191=2;

            switch ( LA(1) ) 
            {
            case ID:
            	{
            		alt191=1;
            	}
                break;
            case 137:
            	{
            		alt191=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 191;
                EXCEPTION->state        = 0;


                goto rulepackage_nameEx;
            }

            switch (alt191) 
            {
        	case 1:
        	    // OraclePLSQL.g:669:4: identifier[T_PACKAGE_NAME,usageType]
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_identifier_in_package_name5725);
        	        identifier592=identifier(ctx, T_PACKAGE_NAME, usageType);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulepackage_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier592.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:670:4: 'ARRAY'
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        string_literal593 = (pANTLR3_COMMON_TOKEN) MATCHT(137, &FOLLOW_137_in_package_name5731); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulepackage_nameEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        string_literal593_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal593));
        	        ADAPTOR->addChild(ADAPTOR, root_0, string_literal593_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulepackage_nameEx; /* Prevent compiler warnings */
    rulepackage_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(97, package_name_StartIndex); }

    return retval;
}
/* $ANTLR end package_name */

/** 
 * $ANTLR start identifier
 * OraclePLSQL.g:673:1: identifier[int identifierClass, int usageType] : i= ID ;
 */
static OraclePLSQLParser_identifier_return
identifier(pOraclePLSQLParser ctx, int identifierClass, int usageType)
{   
    OraclePLSQLParser_identifier_return retval;
    ANTLR3_UINT32 identifier_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    i;

    pANTLR3_BASE_TREE i_tree;

    /* Initialize rule variables
     */
    identifier_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(98)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    i       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    i_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:674:2: (i= ID )
        // OraclePLSQL.g:674:4: i= ID
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            i = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_identifier5745); 
            if  (HASEXCEPTION())
            {
                goto ruleidentifierEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            i_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, i));
            ADAPTOR->addChild(ADAPTOR, root_0, i_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 i->user1 = identifierClass; i->user2 = usageType; 
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleidentifierEx; /* Prevent compiler warnings */
    ruleidentifierEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(98, identifier_StartIndex); }

    return retval;
}
/* $ANTLR end identifier */

/** 
 * $ANTLR start sql_statement
 * OraclePLSQL.g:676:1: sql_statement : ( commit_statement -> ^( 't_commit' commit_statement ) | delete_statement -> ^( 't_delete' delete_statement ) | insert_statement -> ^( 't_insert' insert_statement ) | lock_table_statement -> ^( 't_lock_table' lock_table_statement ) | rollback_statement -> ^( 't_rollback' rollback_statement ) | savepoint_statement -> ^( 't_savepoint' savepoint_statement ) | select_statement -> ^( 't_select' select_statement ) | merge_statement -> ^( 't_merge' merge_statement ) | set_transaction_statement -> ^( 't_set_transaction' set_transaction_statement ) | update_statement -> ^( 't_update' update_statement ) );
 */
static OraclePLSQLParser_sql_statement_return
sql_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_sql_statement_return retval;
    ANTLR3_UINT32 sql_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_commit_statement_return commit_statement594;
    #undef	RETURN_TYPE_commit_statement594
    #define	RETURN_TYPE_commit_statement594 OraclePLSQLParser_commit_statement_return

    OraclePLSQLParser_delete_statement_return delete_statement595;
    #undef	RETURN_TYPE_delete_statement595
    #define	RETURN_TYPE_delete_statement595 OraclePLSQLParser_delete_statement_return

    OraclePLSQLParser_insert_statement_return insert_statement596;
    #undef	RETURN_TYPE_insert_statement596
    #define	RETURN_TYPE_insert_statement596 OraclePLSQLParser_insert_statement_return

    OraclePLSQLParser_lock_table_statement_return lock_table_statement597;
    #undef	RETURN_TYPE_lock_table_statement597
    #define	RETURN_TYPE_lock_table_statement597 OraclePLSQLParser_lock_table_statement_return

    OraclePLSQLParser_rollback_statement_return rollback_statement598;
    #undef	RETURN_TYPE_rollback_statement598
    #define	RETURN_TYPE_rollback_statement598 OraclePLSQLParser_rollback_statement_return

    OraclePLSQLParser_savepoint_statement_return savepoint_statement599;
    #undef	RETURN_TYPE_savepoint_statement599
    #define	RETURN_TYPE_savepoint_statement599 OraclePLSQLParser_savepoint_statement_return

    OraclePLSQLParser_select_statement_return select_statement600;
    #undef	RETURN_TYPE_select_statement600
    #define	RETURN_TYPE_select_statement600 OraclePLSQLParser_select_statement_return

    OraclePLSQLParser_merge_statement_return merge_statement601;
    #undef	RETURN_TYPE_merge_statement601
    #define	RETURN_TYPE_merge_statement601 OraclePLSQLParser_merge_statement_return

    OraclePLSQLParser_set_transaction_statement_return set_transaction_statement602;
    #undef	RETURN_TYPE_set_transaction_statement602
    #define	RETURN_TYPE_set_transaction_statement602 OraclePLSQLParser_set_transaction_statement_return

    OraclePLSQLParser_update_statement_return update_statement603;
    #undef	RETURN_TYPE_update_statement603
    #define	RETURN_TYPE_update_statement603 OraclePLSQLParser_update_statement_return

    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_delete_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_set_transaction_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_rollback_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_commit_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_merge_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_lock_table_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_update_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_select_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_savepoint_statement;
    pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_insert_statement;
    /* Initialize rule variables
     */
    sql_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(99)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    commit_statement594.tree = NULL;
    delete_statement595.tree = NULL;
    insert_statement596.tree = NULL;
    lock_table_statement597.tree = NULL;
    rollback_statement598.tree = NULL;
    savepoint_statement599.tree = NULL;
    select_statement600.tree = NULL;
    merge_statement601.tree = NULL;
    set_transaction_statement602.tree = NULL;
    update_statement603.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;


    stream_delete_statement   = NULL;
    #define CREATE_stream_delete_statement  if (stream_delete_statement == NULL) {stream_delete_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule delete_statement"); }
    stream_set_transaction_statement   = NULL;
    #define CREATE_stream_set_transaction_statement  if (stream_set_transaction_statement == NULL) {stream_set_transaction_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule set_transaction_statement"); }
    stream_rollback_statement   = NULL;
    #define CREATE_stream_rollback_statement  if (stream_rollback_statement == NULL) {stream_rollback_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule rollback_statement"); }
    stream_commit_statement   = NULL;
    #define CREATE_stream_commit_statement  if (stream_commit_statement == NULL) {stream_commit_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule commit_statement"); }
    stream_merge_statement   = NULL;
    #define CREATE_stream_merge_statement  if (stream_merge_statement == NULL) {stream_merge_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule merge_statement"); }
    stream_lock_table_statement   = NULL;
    #define CREATE_stream_lock_table_statement  if (stream_lock_table_statement == NULL) {stream_lock_table_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule lock_table_statement"); }
    stream_update_statement   = NULL;
    #define CREATE_stream_update_statement  if (stream_update_statement == NULL) {stream_update_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule update_statement"); }
    stream_select_statement   = NULL;
    #define CREATE_stream_select_statement  if (stream_select_statement == NULL) {stream_select_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule select_statement"); }
    stream_savepoint_statement   = NULL;
    #define CREATE_stream_savepoint_statement  if (stream_savepoint_statement == NULL) {stream_savepoint_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule savepoint_statement"); }
    stream_insert_statement   = NULL;
    #define CREATE_stream_insert_statement  if (stream_insert_statement == NULL) {stream_insert_statement = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule insert_statement"); }

    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:677:5: ( commit_statement -> ^( 't_commit' commit_statement ) | delete_statement -> ^( 't_delete' delete_statement ) | insert_statement -> ^( 't_insert' insert_statement ) | lock_table_statement -> ^( 't_lock_table' lock_table_statement ) | rollback_statement -> ^( 't_rollback' rollback_statement ) | savepoint_statement -> ^( 't_savepoint' savepoint_statement ) | select_statement -> ^( 't_select' select_statement ) | merge_statement -> ^( 't_merge' merge_statement ) | set_transaction_statement -> ^( 't_set_transaction' set_transaction_statement ) | update_statement -> ^( 't_update' update_statement ) )
            
            ANTLR3_UINT32 alt192;

            alt192=10;

            switch ( LA(1) ) 
            {
            case 161:
            	{
            		alt192=1;
            	}
                break;
            case 133:
            	{
            		alt192=2;
            	}
                break;
            case 176:
            	{
            		alt192=3;
            	}
                break;
            case 181:
            	{
            		alt192=4;
            	}
                break;
            case 187:
            	{
            		alt192=5;
            	}
                break;
            case 188:
            	{
            		alt192=6;
            	}
                break;
            case LPAREN:
            case 148:
            case 189:
            	{
            		alt192=7;
            	}
                break;
            case 216:
            	{
            		alt192=8;
            	}
                break;
            case 144:
            	{
            		alt192=9;
            	}
                break;
            case 197:
            	{
            		alt192=10;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 192;
                EXCEPTION->state        = 0;


                goto rulesql_statementEx;
            }

            switch (alt192) 
            {
        	case 1:
        	    // OraclePLSQL.g:677:7: commit_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_commit_statement_in_sql_statement5779);
        	        commit_statement594=commit_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_commit_statement; stream_commit_statement->add(stream_commit_statement, commit_statement594.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : commit_statement, T_COMMIT
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 677:24: -> ^( 't_commit' commit_statement )
        	        	{
        	        	    // OraclePLSQL.g:677:27: ^( 't_commit' commit_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_COMMIT, (pANTLR3_UINT8)"T_COMMIT"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_commit_statement == NULL ? NULL : stream_commit_statement->nextTree(stream_commit_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:678:7: delete_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_delete_statement_in_sql_statement5795);
        	        delete_statement595=delete_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_delete_statement; stream_delete_statement->add(stream_delete_statement, delete_statement595.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : delete_statement, T_DELETE
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 678:24: -> ^( 't_delete' delete_statement )
        	        	{
        	        	    // OraclePLSQL.g:678:27: ^( 't_delete' delete_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_DELETE, (pANTLR3_UINT8)"T_DELETE"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_delete_statement == NULL ? NULL : stream_delete_statement->nextTree(stream_delete_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:679:7: insert_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_insert_statement_in_sql_statement5811);
        	        insert_statement596=insert_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_insert_statement; stream_insert_statement->add(stream_insert_statement, insert_statement596.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : T_INSERT, insert_statement
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 679:24: -> ^( 't_insert' insert_statement )
        	        	{
        	        	    // OraclePLSQL.g:679:27: ^( 't_insert' insert_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_INSERT, (pANTLR3_UINT8)"T_INSERT"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_insert_statement == NULL ? NULL : stream_insert_statement->nextTree(stream_insert_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:680:7: lock_table_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_lock_table_statement_in_sql_statement5827);
        	        lock_table_statement597=lock_table_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_lock_table_statement; stream_lock_table_statement->add(stream_lock_table_statement, lock_table_statement597.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : lock_table_statement, T_LOCK_TABLE
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 680:28: -> ^( 't_lock_table' lock_table_statement )
        	        	{
        	        	    // OraclePLSQL.g:680:31: ^( 't_lock_table' lock_table_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_LOCK_TABLE, (pANTLR3_UINT8)"T_LOCK_TABLE"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_lock_table_statement == NULL ? NULL : stream_lock_table_statement->nextTree(stream_lock_table_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:681:7: rollback_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_rollback_statement_in_sql_statement5843);
        	        rollback_statement598=rollback_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_rollback_statement; stream_rollback_statement->add(stream_rollback_statement, rollback_statement598.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : rollback_statement, T_ROLLBACK
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 681:28: -> ^( 't_rollback' rollback_statement )
        	        	{
        	        	    // OraclePLSQL.g:681:31: ^( 't_rollback' rollback_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_ROLLBACK, (pANTLR3_UINT8)"T_ROLLBACK"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_rollback_statement == NULL ? NULL : stream_rollback_statement->nextTree(stream_rollback_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:682:7: savepoint_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_savepoint_statement_in_sql_statement5861);
        	        savepoint_statement599=savepoint_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_savepoint_statement; stream_savepoint_statement->add(stream_savepoint_statement, savepoint_statement599.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : T_SAVEPOINT, savepoint_statement
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 682:28: -> ^( 't_savepoint' savepoint_statement )
        	        	{
        	        	    // OraclePLSQL.g:682:31: ^( 't_savepoint' savepoint_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_SAVEPOINT, (pANTLR3_UINT8)"T_SAVEPOINT"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_savepoint_statement == NULL ? NULL : stream_savepoint_statement->nextTree(stream_savepoint_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:683:7: select_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_select_statement_in_sql_statement5878);
        	        select_statement600=select_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_select_statement; stream_select_statement->add(stream_select_statement, select_statement600.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : T_SELECT, select_statement
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 683:28: -> ^( 't_select' select_statement )
        	        	{
        	        	    // OraclePLSQL.g:683:31: ^( 't_select' select_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_SELECT, (pANTLR3_UINT8)"T_SELECT"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_select_statement == NULL ? NULL : stream_select_statement->nextTree(stream_select_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:684:7: merge_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_merge_statement_in_sql_statement5898);
        	        merge_statement601=merge_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_merge_statement; stream_merge_statement->add(stream_merge_statement, merge_statement601.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : merge_statement, T_MERGE
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 684:28: -> ^( 't_merge' merge_statement )
        	        	{
        	        	    // OraclePLSQL.g:684:31: ^( 't_merge' merge_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_MERGE, (pANTLR3_UINT8)"T_MERGE"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_merge_statement == NULL ? NULL : stream_merge_statement->nextTree(stream_merge_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 9:
        	    // OraclePLSQL.g:685:7: set_transaction_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_set_transaction_statement_in_sql_statement5919);
        	        set_transaction_statement602=set_transaction_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_set_transaction_statement; stream_set_transaction_statement->add(stream_set_transaction_statement, set_transaction_statement602.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : set_transaction_statement, T_SET_TRANSACTION
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 685:33: -> ^( 't_set_transaction' set_transaction_statement )
        	        	{
        	        	    // OraclePLSQL.g:685:36: ^( 't_set_transaction' set_transaction_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_SET_TRANSACTION, (pANTLR3_UINT8)"T_SET_TRANSACTION"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_set_transaction_statement == NULL ? NULL : stream_set_transaction_statement->nextTree(stream_set_transaction_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;
        	case 10:
        	    // OraclePLSQL.g:686:7: update_statement
        	    {
        	        FOLLOWPUSH(FOLLOW_update_statement_in_sql_statement5935);
        	        update_statement603=update_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesql_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) { CREATE_stream_update_statement; stream_update_statement->add(stream_update_statement, update_statement603.tree, NULL); }

        	         
        	        /* AST REWRITE
        	         * elements          : update_statement, T_UPDATE
        	         * token labels      : 
        	         * rule labels       : retval
        	         * token list labels : 
        	         * rule list labels  : 
        	         */
        	        if ( BACKTRACKING==0 ) 
        	        {
        	        	pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;

        	        	stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR,  RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);

        	        	root_0			    = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	retval.tree    = root_0;
        	        	// 686:28: -> ^( 't_update' update_statement )
        	        	{
        	        	    // OraclePLSQL.g:686:31: ^( 't_update' update_statement )
        	        	    {
        	        	        pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));
        	        	        root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, T_UPDATE, (pANTLR3_UINT8)"T_UPDATE"), root_1));

        	        	        ADAPTOR->addChild(ADAPTOR, root_1, stream_update_statement == NULL ? NULL : stream_update_statement->nextTree(stream_update_statement));

        	        	        ADAPTOR->addChild(ADAPTOR, root_0, root_1);
        	        	    }

        	        	}

        	        	retval.tree = root_0; // set result root
        	        	if (stream_retval != NULL) stream_retval->free(stream_retval);


        	        }
        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulesql_statementEx; /* Prevent compiler warnings */
    rulesql_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
        if (stream_delete_statement != NULL) stream_delete_statement->free(stream_delete_statement);
        if (stream_set_transaction_statement != NULL) stream_set_transaction_statement->free(stream_set_transaction_statement);
        if (stream_rollback_statement != NULL) stream_rollback_statement->free(stream_rollback_statement);
        if (stream_commit_statement != NULL) stream_commit_statement->free(stream_commit_statement);
        if (stream_merge_statement != NULL) stream_merge_statement->free(stream_merge_statement);
        if (stream_lock_table_statement != NULL) stream_lock_table_statement->free(stream_lock_table_statement);
        if (stream_update_statement != NULL) stream_update_statement->free(stream_update_statement);
        if (stream_select_statement != NULL) stream_select_statement->free(stream_select_statement);
        if (stream_savepoint_statement != NULL) stream_savepoint_statement->free(stream_savepoint_statement);
        if (stream_insert_statement != NULL) stream_insert_statement->free(stream_insert_statement);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(99, sql_statement_StartIndex); }

    return retval;
}
/* $ANTLR end sql_statement */

/** 
 * $ANTLR start commit_statement
 * OraclePLSQL.g:689:1: commit_statement : k_commit ( swallow_to_semi )? ;
 */
static OraclePLSQLParser_commit_statement_return
commit_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_commit_statement_return retval;
    ANTLR3_UINT32 commit_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_commit_return k_commit604;
    #undef	RETURN_TYPE_k_commit604
    #define	RETURN_TYPE_k_commit604 OraclePLSQLParser_k_commit_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi605;
    #undef	RETURN_TYPE_swallow_to_semi605
    #define	RETURN_TYPE_swallow_to_semi605 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    commit_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(100)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_commit604.tree = NULL;
    swallow_to_semi605.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:689:18: ( k_commit ( swallow_to_semi )? )
        // OraclePLSQL.g:690:9: k_commit ( swallow_to_semi )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_commit_in_commit_statement5968);
            k_commit604=k_commit(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecommit_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_commit604.tree);

            // OraclePLSQL.g:690:18: ( swallow_to_semi )?
            {
                int alt193=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case EOF:
                    		    case T_UNKNOWN:
                    		    case T_RESERVED:
                    		    case T_SCHEMA_NAME:
                    		    case T_TRIGGER_NAME:
                    		    case T_PACKAGE_NAME:
                    		    case T_FUNCTION_NAME:
                    		    case T_PROCEDURE_NAME:
                    		    case T_PARAMETER_NAME:
                    		    case T_BINDVAR_NAME:
                    		    case T_VARIABLE_NAME:
                    		    case T_DATATYPE_NAME:
                    		    case T_CURSOR_NAME:
                    		    case T_TABLE_NAME:
                    		    case T_COLUMN_NAME:
                    		    case T_OBJECT_NAME:
                    		    case T_LABEL_NAME:
                    		    case T_EXCEPTION_NAME:
                    		    case T_DBLINK_NAME:
                    		    case T_DECL:
                    		    case T_USE:
                    		    case T_USEL:
                    		    case T_TYPE_DECL:
                    		    case T_SUBTYPE_DECL:
                    		    case T_CURSOR_DECL:
                    		    case T_VAR_DECL:
                    		    case T_CONST_DECL:
                    		    case T_EXC_DECL:
                    		    case T_FUNCTION_DECL:
                    		    case T_PROCEDURE_DECL:
                    		    case T_PRAGMA_DECL:
                    		    case T_DECL_BLOCK:
                    		    case T_BLOCK_BLOCK:
                    		    case T_PROCEDURE_BLOCK:
                    		    case T_FUNCTION_BLOCK:
                    		    case T_DECLARE_BLOCK:
                    		    case T_BEGIN_BLOCK:
                    		    case T_EXCEPTIONS_BLOCK:
                    		    case T_COMMIT:
                    		    case T_DELETE:
                    		    case T_INSERT:
                    		    case T_LOCK_TABLE:
                    		    case T_MERGE:
                    		    case T_ROLLBACK:
                    		    case T_SAVEPOINT:
                    		    case T_SELECT:
                    		    case T_SET_TRANSACTION:
                    		    case T_UPDATE:
                    		    case T_EXECUTE_IMMEDIATE:
                    		    case T_CASE:
                    		    case T_OPEN:
                    		    case T_CLOSE:
                    		    case T_CONTINUE:
                    		    case T_PIPE:
                    		    case T_GOTO:
                    		    case T_EXIT:
                    		    case T_RETURN:
                    		    case T_DECLARE:
                    		    case T_RAISE:
                    		    case T_FETCH:
                    		    case T_LOOP:
                    		    case T_WHILE:
                    		    case T_NULL_STAT:
                    		    case T_FOR:
                    		    case T_FORALL:
                    		    case T_IF:
                    		    case T_ELSIF:
                    		    case T_ELSE:
                    		    case T_ENDIF:
                    		    case T_ASSIGN:
                    		    case T_CALL:
                    		    case T_DECLARATION:
                    		    case T_STATEMENT:
                    		    case DIVIDE:
                    		    case SEMI:
                    		    case LPAREN:
                    		    case COMMA:
                    		    case RPAREN:
                    		    case K_IN:
                    		    case K_OUT:
                    		    case ASSIGN:
                    		    case INTEGER:
                    		    case DOT:
                    		    case K_USING:
                    		    case DOUBLEDOT:
                    		    case LLABEL:
                    		    case RLABEL:
                    		    case COLON:
                    		    case AT_SIGN:
                    		    case EQ:
                    		    case LTH:
                    		    case GTH:
                    		    case MINUS:
                    		    case PLUS:
                    		    case DOUBLEVERTBAR:
                    		    case ASTERISK:
                    		    case REAL_NUMBER:
                    		    case QUOTED_STRING:
                    		    case ARROW:
                    		    case QSTRING:
                    		    case QS_ANGLE:
                    		    case QS_BRACE:
                    		    case QS_BRACK:
                    		    case QS_PAREN:
                    		    case QS_OTHER:
                    		    case QUOTE:
                    		    case QS_OTHER_CH:
                    		    case BINDVAR:
                    		    case DOUBLEQUOTED_STRING:
                    		    case NUM:
                    		    case POINT:
                    		    case RBRACK:
                    		    case LBRACK:
                    		    case PERCENT:
                    		    case VERTBAR:
                    		    case NOT_EQ:
                    		    case LEQ:
                    		    case GEQ:
                    		    case NUMBER_VALUE:
                    		    case WS:
                    		    case SL_COMMENT:
                    		    case ML_COMMENT:
                    		    case 126:
                    		    case 127:
                    		    case 128:
                    		    case 129:
                    		    case 130:
                    		    case 131:
                    		    case 132:
                    		    case 133:
                    		    case 134:
                    		    case 135:
                    		    case 136:
                    		    case 137:
                    		    case 138:
                    		    case 139:
                    		    case 140:
                    		    case 141:
                    		    case 142:
                    		    case 143:
                    		    case 144:
                    		    case 145:
                    		    case 146:
                    		    case 147:
                    		    case 148:
                    		    case 149:
                    		    case 150:
                    		    case 151:
                    		    case 152:
                    		    case 153:
                    		    case 154:
                    		    case 155:
                    		    case 156:
                    		    case 157:
                    		    case 158:
                    		    case 159:
                    		    case 160:
                    		    case 161:
                    		    case 162:
                    		    case 163:
                    		    case 164:
                    		    case 165:
                    		    case 166:
                    		    case 167:
                    		    case 168:
                    		    case 169:
                    		    case 170:
                    		    case 171:
                    		    case 172:
                    		    case 173:
                    		    case 174:
                    		    case 175:
                    		    case 176:
                    		    case 177:
                    		    case 178:
                    		    case 179:
                    		    case 180:
                    		    case 181:
                    		    case 182:
                    		    case 183:
                    		    case 184:
                    		    case 185:
                    		    case 186:
                    		    case 187:
                    		    case 188:
                    		    case 189:
                    		    case 190:
                    		    case 191:
                    		    case 192:
                    		    case 193:
                    		    case 194:
                    		    case 195:
                    		    case 196:
                    		    case 197:
                    		    case 198:
                    		    case 199:
                    		    case 200:
                    		    case 201:
                    		    case 202:
                    		    case 203:
                    		    case 204:
                    		    case 205:
                    		    case 206:
                    		    case 207:
                    		    case 208:
                    		    case 209:
                    		    case 210:
                    		    case 211:
                    		    case 212:
                    		    case 213:
                    		    case 214:
                    		    case 215:
                    		    case 216:
                    		    case 217:
                    		    case 218:
                    		    case 219:
                    		    case 220:
                    		    case 221:
                    		    case 222:
                    		    case 223:
                    		    case 224:
                    		    case 225:
                    		    case 226:
                    		    case 227:
                    		    case 228:
                    		    case 229:
                    		    case 230:
                    		    case 231:
                    		    case 232:
                    		    case 233:
                    		    case 234:
                    		    case 235:
                    		    case 236:
                    		    case 237:
                    		    case 238:
                    		    case 239:
                    		    case 240:
                    		    case 241:
                    		    case 242:
                    		    case 243:
                    		    	{
                    		    		alt193=1;
                    		    	}
                    		        break;
                    		    case ID:
                    		    	{
                    		    		{
                    		    		    int LA193_4 = LA(3);
                    		    		    if ( (synpred319_OraclePLSQL(ctx))) 
                    		    		    {
                    		    		        alt193=1;
                    		    		    }
                    		    		}
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                    case T_UNKNOWN:
                    case T_RESERVED:
                    case T_SCHEMA_NAME:
                    case T_TRIGGER_NAME:
                    case T_PACKAGE_NAME:
                    case T_FUNCTION_NAME:
                    case T_PROCEDURE_NAME:
                    case T_PARAMETER_NAME:
                    case T_BINDVAR_NAME:
                    case T_VARIABLE_NAME:
                    case T_DATATYPE_NAME:
                    case T_CURSOR_NAME:
                    case T_TABLE_NAME:
                    case T_COLUMN_NAME:
                    case T_OBJECT_NAME:
                    case T_LABEL_NAME:
                    case T_EXCEPTION_NAME:
                    case T_DBLINK_NAME:
                    case T_DECL:
                    case T_USE:
                    case T_USEL:
                    case T_TYPE_DECL:
                    case T_SUBTYPE_DECL:
                    case T_CURSOR_DECL:
                    case T_VAR_DECL:
                    case T_CONST_DECL:
                    case T_EXC_DECL:
                    case T_FUNCTION_DECL:
                    case T_PROCEDURE_DECL:
                    case T_PRAGMA_DECL:
                    case T_DECL_BLOCK:
                    case T_BLOCK_BLOCK:
                    case T_PROCEDURE_BLOCK:
                    case T_FUNCTION_BLOCK:
                    case T_DECLARE_BLOCK:
                    case T_BEGIN_BLOCK:
                    case T_EXCEPTIONS_BLOCK:
                    case T_COMMIT:
                    case T_DELETE:
                    case T_INSERT:
                    case T_LOCK_TABLE:
                    case T_MERGE:
                    case T_ROLLBACK:
                    case T_SAVEPOINT:
                    case T_SELECT:
                    case T_SET_TRANSACTION:
                    case T_UPDATE:
                    case T_EXECUTE_IMMEDIATE:
                    case T_CASE:
                    case T_OPEN:
                    case T_CLOSE:
                    case T_CONTINUE:
                    case T_PIPE:
                    case T_GOTO:
                    case T_EXIT:
                    case T_RETURN:
                    case T_DECLARE:
                    case T_RAISE:
                    case T_FETCH:
                    case T_LOOP:
                    case T_WHILE:
                    case T_NULL_STAT:
                    case T_FOR:
                    case T_FORALL:
                    case T_IF:
                    case T_ELSIF:
                    case T_ELSE:
                    case T_ENDIF:
                    case T_ASSIGN:
                    case T_CALL:
                    case T_DECLARATION:
                    case T_STATEMENT:
                    case DIVIDE:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case K_OUT:
                    case ASSIGN:
                    case INTEGER:
                    case DOT:
                    case K_USING:
                    case DOUBLEDOT:
                    case LLABEL:
                    case RLABEL:
                    case COLON:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case REAL_NUMBER:
                    case QUOTED_STRING:
                    case ARROW:
                    case QSTRING:
                    case QS_ANGLE:
                    case QS_BRACE:
                    case QS_BRACK:
                    case QS_PAREN:
                    case QS_OTHER:
                    case QUOTE:
                    case QS_OTHER_CH:
                    case BINDVAR:
                    case DOUBLEQUOTED_STRING:
                    case NUM:
                    case POINT:
                    case RBRACK:
                    case LBRACK:
                    case PERCENT:
                    case VERTBAR:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case NUMBER_VALUE:
                    case WS:
                    case SL_COMMENT:
                    case ML_COMMENT:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 186:
                    case 187:
                    case 188:
                    case 189:
                    case 190:
                    case 191:
                    case 192:
                    case 193:
                    case 194:
                    case 195:
                    case 196:
                    case 197:
                    case 198:
                    case 199:
                    case 200:
                    case 201:
                    case 202:
                    case 203:
                    case 204:
                    case 205:
                    case 206:
                    case 207:
                    case 208:
                    case 209:
                    case 210:
                    case 211:
                    case 212:
                    case 213:
                    case 214:
                    case 215:
                    case 216:
                    case 217:
                    case 218:
                    case 219:
                    case 220:
                    case 221:
                    case 222:
                    case 223:
                    case 224:
                    case 225:
                    case 226:
                    case 227:
                    case 228:
                    case 229:
                    case 230:
                    case 231:
                    case 232:
                    case 233:
                    case 234:
                    case 235:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    case 240:
                    case 241:
                    case 242:
                    case 243:
                    	{
                    		alt193=1;
                    	}
                        break;
                }

                switch (alt193) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: swallow_to_semi
            	    {
            	        FOLLOWPUSH(FOLLOW_swallow_to_semi_in_commit_statement5970);
            	        swallow_to_semi605=swallow_to_semi(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecommit_statementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi605.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecommit_statementEx; /* Prevent compiler warnings */
    rulecommit_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(100, commit_statement_StartIndex); }

    return retval;
}
/* $ANTLR end commit_statement */

/** 
 * $ANTLR start delete_statement
 * OraclePLSQL.g:693:1: delete_statement : k_delete swallow_to_semi ;
 */
static OraclePLSQLParser_delete_statement_return
delete_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_delete_statement_return retval;
    ANTLR3_UINT32 delete_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_delete_return k_delete606;
    #undef	RETURN_TYPE_k_delete606
    #define	RETURN_TYPE_k_delete606 OraclePLSQLParser_k_delete_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi607;
    #undef	RETURN_TYPE_swallow_to_semi607
    #define	RETURN_TYPE_swallow_to_semi607 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    delete_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(101)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_delete606.tree = NULL;
    swallow_to_semi607.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:693:18: ( k_delete swallow_to_semi )
        // OraclePLSQL.g:694:9: k_delete swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_delete_in_delete_statement5992);
            k_delete606=k_delete(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruledelete_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_delete606.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_delete_statement5994);
            swallow_to_semi607=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruledelete_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi607.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruledelete_statementEx; /* Prevent compiler warnings */
    ruledelete_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(101, delete_statement_StartIndex); }

    return retval;
}
/* $ANTLR end delete_statement */

/** 
 * $ANTLR start insert_statement
 * OraclePLSQL.g:697:1: insert_statement : k_insert swallow_to_semi ;
 */
static OraclePLSQLParser_insert_statement_return
insert_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_insert_statement_return retval;
    ANTLR3_UINT32 insert_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_insert_return k_insert608;
    #undef	RETURN_TYPE_k_insert608
    #define	RETURN_TYPE_k_insert608 OraclePLSQLParser_k_insert_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi609;
    #undef	RETURN_TYPE_swallow_to_semi609
    #define	RETURN_TYPE_swallow_to_semi609 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    insert_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(102)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_insert608.tree = NULL;
    swallow_to_semi609.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:697:18: ( k_insert swallow_to_semi )
        // OraclePLSQL.g:698:9: k_insert swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_insert_in_insert_statement6015);
            k_insert608=k_insert(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleinsert_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_insert608.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_insert_statement6017);
            swallow_to_semi609=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleinsert_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi609.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleinsert_statementEx; /* Prevent compiler warnings */
    ruleinsert_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(102, insert_statement_StartIndex); }

    return retval;
}
/* $ANTLR end insert_statement */

/** 
 * $ANTLR start lock_table_statement
 * OraclePLSQL.g:701:1: lock_table_statement : k_lock k_table swallow_to_semi ;
 */
static OraclePLSQLParser_lock_table_statement_return
lock_table_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_lock_table_statement_return retval;
    ANTLR3_UINT32 lock_table_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_lock_return k_lock610;
    #undef	RETURN_TYPE_k_lock610
    #define	RETURN_TYPE_k_lock610 OraclePLSQLParser_k_lock_return

    OraclePLSQLParser_k_table_return k_table611;
    #undef	RETURN_TYPE_k_table611
    #define	RETURN_TYPE_k_table611 OraclePLSQLParser_k_table_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi612;
    #undef	RETURN_TYPE_swallow_to_semi612
    #define	RETURN_TYPE_swallow_to_semi612 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    lock_table_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(103)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_lock610.tree = NULL;
    k_table611.tree = NULL;
    swallow_to_semi612.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:701:22: ( k_lock k_table swallow_to_semi )
        // OraclePLSQL.g:702:9: k_lock k_table swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_lock_in_lock_table_statement6038);
            k_lock610=k_lock(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelock_table_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_lock610.tree);
            FOLLOWPUSH(FOLLOW_k_table_in_lock_table_statement6040);
            k_table611=k_table(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelock_table_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_table611.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_lock_table_statement6042);
            swallow_to_semi612=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelock_table_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi612.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulelock_table_statementEx; /* Prevent compiler warnings */
    rulelock_table_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(103, lock_table_statement_StartIndex); }

    return retval;
}
/* $ANTLR end lock_table_statement */

/** 
 * $ANTLR start rollback_statement
 * OraclePLSQL.g:705:1: rollback_statement : k_rollback ( swallow_to_semi )? ;
 */
static OraclePLSQLParser_rollback_statement_return
rollback_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_rollback_statement_return retval;
    ANTLR3_UINT32 rollback_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_rollback_return k_rollback613;
    #undef	RETURN_TYPE_k_rollback613
    #define	RETURN_TYPE_k_rollback613 OraclePLSQLParser_k_rollback_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi614;
    #undef	RETURN_TYPE_swallow_to_semi614
    #define	RETURN_TYPE_swallow_to_semi614 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    rollback_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(104)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_rollback613.tree = NULL;
    swallow_to_semi614.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:705:20: ( k_rollback ( swallow_to_semi )? )
        // OraclePLSQL.g:706:9: k_rollback ( swallow_to_semi )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_rollback_in_rollback_statement6063);
            k_rollback613=k_rollback(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulerollback_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_rollback613.tree);

            // OraclePLSQL.g:706:20: ( swallow_to_semi )?
            {
                int alt194=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case EOF:
                    		    case T_UNKNOWN:
                    		    case T_RESERVED:
                    		    case T_SCHEMA_NAME:
                    		    case T_TRIGGER_NAME:
                    		    case T_PACKAGE_NAME:
                    		    case T_FUNCTION_NAME:
                    		    case T_PROCEDURE_NAME:
                    		    case T_PARAMETER_NAME:
                    		    case T_BINDVAR_NAME:
                    		    case T_VARIABLE_NAME:
                    		    case T_DATATYPE_NAME:
                    		    case T_CURSOR_NAME:
                    		    case T_TABLE_NAME:
                    		    case T_COLUMN_NAME:
                    		    case T_OBJECT_NAME:
                    		    case T_LABEL_NAME:
                    		    case T_EXCEPTION_NAME:
                    		    case T_DBLINK_NAME:
                    		    case T_DECL:
                    		    case T_USE:
                    		    case T_USEL:
                    		    case T_TYPE_DECL:
                    		    case T_SUBTYPE_DECL:
                    		    case T_CURSOR_DECL:
                    		    case T_VAR_DECL:
                    		    case T_CONST_DECL:
                    		    case T_EXC_DECL:
                    		    case T_FUNCTION_DECL:
                    		    case T_PROCEDURE_DECL:
                    		    case T_PRAGMA_DECL:
                    		    case T_DECL_BLOCK:
                    		    case T_BLOCK_BLOCK:
                    		    case T_PROCEDURE_BLOCK:
                    		    case T_FUNCTION_BLOCK:
                    		    case T_DECLARE_BLOCK:
                    		    case T_BEGIN_BLOCK:
                    		    case T_EXCEPTIONS_BLOCK:
                    		    case T_COMMIT:
                    		    case T_DELETE:
                    		    case T_INSERT:
                    		    case T_LOCK_TABLE:
                    		    case T_MERGE:
                    		    case T_ROLLBACK:
                    		    case T_SAVEPOINT:
                    		    case T_SELECT:
                    		    case T_SET_TRANSACTION:
                    		    case T_UPDATE:
                    		    case T_EXECUTE_IMMEDIATE:
                    		    case T_CASE:
                    		    case T_OPEN:
                    		    case T_CLOSE:
                    		    case T_CONTINUE:
                    		    case T_PIPE:
                    		    case T_GOTO:
                    		    case T_EXIT:
                    		    case T_RETURN:
                    		    case T_DECLARE:
                    		    case T_RAISE:
                    		    case T_FETCH:
                    		    case T_LOOP:
                    		    case T_WHILE:
                    		    case T_NULL_STAT:
                    		    case T_FOR:
                    		    case T_FORALL:
                    		    case T_IF:
                    		    case T_ELSIF:
                    		    case T_ELSE:
                    		    case T_ENDIF:
                    		    case T_ASSIGN:
                    		    case T_CALL:
                    		    case T_DECLARATION:
                    		    case T_STATEMENT:
                    		    case DIVIDE:
                    		    case SEMI:
                    		    case LPAREN:
                    		    case COMMA:
                    		    case RPAREN:
                    		    case K_IN:
                    		    case K_OUT:
                    		    case ASSIGN:
                    		    case INTEGER:
                    		    case DOT:
                    		    case K_USING:
                    		    case DOUBLEDOT:
                    		    case LLABEL:
                    		    case RLABEL:
                    		    case COLON:
                    		    case AT_SIGN:
                    		    case EQ:
                    		    case LTH:
                    		    case GTH:
                    		    case MINUS:
                    		    case PLUS:
                    		    case DOUBLEVERTBAR:
                    		    case ASTERISK:
                    		    case REAL_NUMBER:
                    		    case QUOTED_STRING:
                    		    case ARROW:
                    		    case QSTRING:
                    		    case QS_ANGLE:
                    		    case QS_BRACE:
                    		    case QS_BRACK:
                    		    case QS_PAREN:
                    		    case QS_OTHER:
                    		    case QUOTE:
                    		    case QS_OTHER_CH:
                    		    case BINDVAR:
                    		    case DOUBLEQUOTED_STRING:
                    		    case NUM:
                    		    case POINT:
                    		    case RBRACK:
                    		    case LBRACK:
                    		    case PERCENT:
                    		    case VERTBAR:
                    		    case NOT_EQ:
                    		    case LEQ:
                    		    case GEQ:
                    		    case NUMBER_VALUE:
                    		    case WS:
                    		    case SL_COMMENT:
                    		    case ML_COMMENT:
                    		    case 126:
                    		    case 127:
                    		    case 128:
                    		    case 129:
                    		    case 130:
                    		    case 131:
                    		    case 132:
                    		    case 133:
                    		    case 134:
                    		    case 135:
                    		    case 136:
                    		    case 137:
                    		    case 138:
                    		    case 139:
                    		    case 140:
                    		    case 141:
                    		    case 142:
                    		    case 143:
                    		    case 144:
                    		    case 145:
                    		    case 146:
                    		    case 147:
                    		    case 148:
                    		    case 149:
                    		    case 150:
                    		    case 151:
                    		    case 152:
                    		    case 153:
                    		    case 154:
                    		    case 155:
                    		    case 156:
                    		    case 157:
                    		    case 158:
                    		    case 159:
                    		    case 160:
                    		    case 161:
                    		    case 162:
                    		    case 163:
                    		    case 164:
                    		    case 165:
                    		    case 166:
                    		    case 167:
                    		    case 168:
                    		    case 169:
                    		    case 170:
                    		    case 171:
                    		    case 172:
                    		    case 173:
                    		    case 174:
                    		    case 175:
                    		    case 176:
                    		    case 177:
                    		    case 178:
                    		    case 179:
                    		    case 180:
                    		    case 181:
                    		    case 182:
                    		    case 183:
                    		    case 184:
                    		    case 185:
                    		    case 186:
                    		    case 187:
                    		    case 188:
                    		    case 189:
                    		    case 190:
                    		    case 191:
                    		    case 192:
                    		    case 193:
                    		    case 194:
                    		    case 195:
                    		    case 196:
                    		    case 197:
                    		    case 198:
                    		    case 199:
                    		    case 200:
                    		    case 201:
                    		    case 202:
                    		    case 203:
                    		    case 204:
                    		    case 205:
                    		    case 206:
                    		    case 207:
                    		    case 208:
                    		    case 209:
                    		    case 210:
                    		    case 211:
                    		    case 212:
                    		    case 213:
                    		    case 214:
                    		    case 215:
                    		    case 216:
                    		    case 217:
                    		    case 218:
                    		    case 219:
                    		    case 220:
                    		    case 221:
                    		    case 222:
                    		    case 223:
                    		    case 224:
                    		    case 225:
                    		    case 226:
                    		    case 227:
                    		    case 228:
                    		    case 229:
                    		    case 230:
                    		    case 231:
                    		    case 232:
                    		    case 233:
                    		    case 234:
                    		    case 235:
                    		    case 236:
                    		    case 237:
                    		    case 238:
                    		    case 239:
                    		    case 240:
                    		    case 241:
                    		    case 242:
                    		    case 243:
                    		    	{
                    		    		alt194=1;
                    		    	}
                    		        break;
                    		    case ID:
                    		    	{
                    		    		{
                    		    		    int LA194_4 = LA(3);
                    		    		    if ( (synpred320_OraclePLSQL(ctx))) 
                    		    		    {
                    		    		        alt194=1;
                    		    		    }
                    		    		}
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                    case T_UNKNOWN:
                    case T_RESERVED:
                    case T_SCHEMA_NAME:
                    case T_TRIGGER_NAME:
                    case T_PACKAGE_NAME:
                    case T_FUNCTION_NAME:
                    case T_PROCEDURE_NAME:
                    case T_PARAMETER_NAME:
                    case T_BINDVAR_NAME:
                    case T_VARIABLE_NAME:
                    case T_DATATYPE_NAME:
                    case T_CURSOR_NAME:
                    case T_TABLE_NAME:
                    case T_COLUMN_NAME:
                    case T_OBJECT_NAME:
                    case T_LABEL_NAME:
                    case T_EXCEPTION_NAME:
                    case T_DBLINK_NAME:
                    case T_DECL:
                    case T_USE:
                    case T_USEL:
                    case T_TYPE_DECL:
                    case T_SUBTYPE_DECL:
                    case T_CURSOR_DECL:
                    case T_VAR_DECL:
                    case T_CONST_DECL:
                    case T_EXC_DECL:
                    case T_FUNCTION_DECL:
                    case T_PROCEDURE_DECL:
                    case T_PRAGMA_DECL:
                    case T_DECL_BLOCK:
                    case T_BLOCK_BLOCK:
                    case T_PROCEDURE_BLOCK:
                    case T_FUNCTION_BLOCK:
                    case T_DECLARE_BLOCK:
                    case T_BEGIN_BLOCK:
                    case T_EXCEPTIONS_BLOCK:
                    case T_COMMIT:
                    case T_DELETE:
                    case T_INSERT:
                    case T_LOCK_TABLE:
                    case T_MERGE:
                    case T_ROLLBACK:
                    case T_SAVEPOINT:
                    case T_SELECT:
                    case T_SET_TRANSACTION:
                    case T_UPDATE:
                    case T_EXECUTE_IMMEDIATE:
                    case T_CASE:
                    case T_OPEN:
                    case T_CLOSE:
                    case T_CONTINUE:
                    case T_PIPE:
                    case T_GOTO:
                    case T_EXIT:
                    case T_RETURN:
                    case T_DECLARE:
                    case T_RAISE:
                    case T_FETCH:
                    case T_LOOP:
                    case T_WHILE:
                    case T_NULL_STAT:
                    case T_FOR:
                    case T_FORALL:
                    case T_IF:
                    case T_ELSIF:
                    case T_ELSE:
                    case T_ENDIF:
                    case T_ASSIGN:
                    case T_CALL:
                    case T_DECLARATION:
                    case T_STATEMENT:
                    case DIVIDE:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case K_OUT:
                    case ASSIGN:
                    case INTEGER:
                    case DOT:
                    case K_USING:
                    case DOUBLEDOT:
                    case LLABEL:
                    case RLABEL:
                    case COLON:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case REAL_NUMBER:
                    case QUOTED_STRING:
                    case ARROW:
                    case QSTRING:
                    case QS_ANGLE:
                    case QS_BRACE:
                    case QS_BRACK:
                    case QS_PAREN:
                    case QS_OTHER:
                    case QUOTE:
                    case QS_OTHER_CH:
                    case BINDVAR:
                    case DOUBLEQUOTED_STRING:
                    case NUM:
                    case POINT:
                    case RBRACK:
                    case LBRACK:
                    case PERCENT:
                    case VERTBAR:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case NUMBER_VALUE:
                    case WS:
                    case SL_COMMENT:
                    case ML_COMMENT:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 186:
                    case 187:
                    case 188:
                    case 189:
                    case 190:
                    case 191:
                    case 192:
                    case 193:
                    case 194:
                    case 195:
                    case 196:
                    case 197:
                    case 198:
                    case 199:
                    case 200:
                    case 201:
                    case 202:
                    case 203:
                    case 204:
                    case 205:
                    case 206:
                    case 207:
                    case 208:
                    case 209:
                    case 210:
                    case 211:
                    case 212:
                    case 213:
                    case 214:
                    case 215:
                    case 216:
                    case 217:
                    case 218:
                    case 219:
                    case 220:
                    case 221:
                    case 222:
                    case 223:
                    case 224:
                    case 225:
                    case 226:
                    case 227:
                    case 228:
                    case 229:
                    case 230:
                    case 231:
                    case 232:
                    case 233:
                    case 234:
                    case 235:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    case 240:
                    case 241:
                    case 242:
                    case 243:
                    	{
                    		alt194=1;
                    	}
                        break;
                }

                switch (alt194) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: swallow_to_semi
            	    {
            	        FOLLOWPUSH(FOLLOW_swallow_to_semi_in_rollback_statement6065);
            	        swallow_to_semi614=swallow_to_semi(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulerollback_statementEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi614.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulerollback_statementEx; /* Prevent compiler warnings */
    rulerollback_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(104, rollback_statement_StartIndex); }

    return retval;
}
/* $ANTLR end rollback_statement */

/** 
 * $ANTLR start savepoint_statement
 * OraclePLSQL.g:709:1: savepoint_statement : k_savepoint ID ;
 */
static OraclePLSQLParser_savepoint_statement_return
savepoint_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_savepoint_statement_return retval;
    ANTLR3_UINT32 savepoint_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID616;
    OraclePLSQLParser_k_savepoint_return k_savepoint615;
    #undef	RETURN_TYPE_k_savepoint615
    #define	RETURN_TYPE_k_savepoint615 OraclePLSQLParser_k_savepoint_return

    pANTLR3_BASE_TREE ID616_tree;

    /* Initialize rule variables
     */
    savepoint_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(105)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID616       = NULL;
    k_savepoint615.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID616_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:709:21: ( k_savepoint ID )
        // OraclePLSQL.g:710:9: k_savepoint ID
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_savepoint_in_savepoint_statement6087);
            k_savepoint615=k_savepoint(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulesavepoint_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_savepoint615.tree);
            ID616 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_savepoint_statement6089); 
            if  (HASEXCEPTION())
            {
                goto rulesavepoint_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            ID616_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID616));
            ADAPTOR->addChild(ADAPTOR, root_0, ID616_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulesavepoint_statementEx; /* Prevent compiler warnings */
    rulesavepoint_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(105, savepoint_statement_StartIndex); }

    return retval;
}
/* $ANTLR end savepoint_statement */

/** 
 * $ANTLR start select_statement
 * OraclePLSQL.g:713:1: select_statement : ( ( LPAREN )* k_select swallow_to_semi | ( LPAREN )* r_with swallow_to_semi );
 */
static OraclePLSQLParser_select_statement_return
select_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_select_statement_return retval;
    ANTLR3_UINT32 select_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN617;
    pANTLR3_COMMON_TOKEN    LPAREN620;
    OraclePLSQLParser_k_select_return k_select618;
    #undef	RETURN_TYPE_k_select618
    #define	RETURN_TYPE_k_select618 OraclePLSQLParser_k_select_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi619;
    #undef	RETURN_TYPE_swallow_to_semi619
    #define	RETURN_TYPE_swallow_to_semi619 OraclePLSQLParser_swallow_to_semi_return

    OraclePLSQLParser_r_with_return r_with621;
    #undef	RETURN_TYPE_r_with621
    #define	RETURN_TYPE_r_with621 OraclePLSQLParser_r_with_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi622;
    #undef	RETURN_TYPE_swallow_to_semi622
    #define	RETURN_TYPE_swallow_to_semi622 OraclePLSQLParser_swallow_to_semi_return

    pANTLR3_BASE_TREE LPAREN617_tree;
    pANTLR3_BASE_TREE LPAREN620_tree;

    /* Initialize rule variables
     */
    select_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(106)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN617       = NULL;
    LPAREN620       = NULL;
    k_select618.tree = NULL;
    swallow_to_semi619.tree = NULL;
    r_with621.tree = NULL;
    swallow_to_semi622.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN617_tree   = NULL;
    LPAREN620_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:713:18: ( ( LPAREN )* k_select swallow_to_semi | ( LPAREN )* r_with swallow_to_semi )
            
            ANTLR3_UINT32 alt197;

            alt197=2;

            alt197 = cdfa197.predict(ctx, RECOGNIZER, ISTREAM, &cdfa197);
            if  (HASEXCEPTION())
            {
                goto ruleselect_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            switch (alt197) 
            {
        	case 1:
        	    // OraclePLSQL.g:714:7: ( LPAREN )* k_select swallow_to_semi
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:714:7: ( LPAREN )*

        	        for (;;)
        	        {
        	            int alt195=2;
        	            switch ( LA(1) ) 
        	            {
        	            case LPAREN:
        	            	{
        	            		alt195=1;
        	            	}
        	                break;

        	            }

        	            switch (alt195) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:0:0: LPAREN
        	        	    {
        	        	        LPAREN617 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_select_statement6108); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleselect_statementEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN617_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN617));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN617_tree);
        	        	        }

        	        	    }
        	        	    break;

        	        	default:
        	        	    goto loop195;	/* break out of the loop */
        	        	    break;
        	            }
        	        }
        	        loop195: ; /* Jump out to here if this rule does not match */

        	        FOLLOWPUSH(FOLLOW_k_select_in_select_statement6111);
        	        k_select618=k_select(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleselect_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_select618.tree);
        	        FOLLOWPUSH(FOLLOW_swallow_to_semi_in_select_statement6113);
        	        swallow_to_semi619=swallow_to_semi(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleselect_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi619.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:715:8: ( LPAREN )* r_with swallow_to_semi
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:715:8: ( LPAREN )*

        	        for (;;)
        	        {
        	            int alt196=2;
        	            switch ( LA(1) ) 
        	            {
        	            case LPAREN:
        	            	{
        	            		alt196=1;
        	            	}
        	                break;

        	            }

        	            switch (alt196) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:0:0: LPAREN
        	        	    {
        	        	        LPAREN620 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_select_statement6122); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleselect_statementEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN620_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN620));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN620_tree);
        	        	        }

        	        	    }
        	        	    break;

        	        	default:
        	        	    goto loop196;	/* break out of the loop */
        	        	    break;
        	            }
        	        }
        	        loop196: ; /* Jump out to here if this rule does not match */

        	        FOLLOWPUSH(FOLLOW_r_with_in_select_statement6125);
        	        r_with621=r_with(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleselect_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_with621.tree);
        	        FOLLOWPUSH(FOLLOW_swallow_to_semi_in_select_statement6127);
        	        swallow_to_semi622=swallow_to_semi(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleselect_statementEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi622.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleselect_statementEx; /* Prevent compiler warnings */
    ruleselect_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(106, select_statement_StartIndex); }

    return retval;
}
/* $ANTLR end select_statement */

/** 
 * $ANTLR start merge_statement
 * OraclePLSQL.g:718:1: merge_statement : k_merge swallow_to_semi ;
 */
static OraclePLSQLParser_merge_statement_return
merge_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_merge_statement_return retval;
    ANTLR3_UINT32 merge_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_merge_return k_merge623;
    #undef	RETURN_TYPE_k_merge623
    #define	RETURN_TYPE_k_merge623 OraclePLSQLParser_k_merge_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi624;
    #undef	RETURN_TYPE_swallow_to_semi624
    #define	RETURN_TYPE_swallow_to_semi624 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    merge_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(107)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_merge623.tree = NULL;
    swallow_to_semi624.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:718:17: ( k_merge swallow_to_semi )
        // OraclePLSQL.g:719:9: k_merge swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_merge_in_merge_statement6148);
            k_merge623=k_merge(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulemerge_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_merge623.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_merge_statement6150);
            swallow_to_semi624=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulemerge_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi624.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulemerge_statementEx; /* Prevent compiler warnings */
    rulemerge_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(107, merge_statement_StartIndex); }

    return retval;
}
/* $ANTLR end merge_statement */

/** 
 * $ANTLR start set_transaction_statement
 * OraclePLSQL.g:722:1: set_transaction_statement : r_set k_transaction swallow_to_semi ;
 */
static OraclePLSQLParser_set_transaction_statement_return
set_transaction_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_set_transaction_statement_return retval;
    ANTLR3_UINT32 set_transaction_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_r_set_return r_set625;
    #undef	RETURN_TYPE_r_set625
    #define	RETURN_TYPE_r_set625 OraclePLSQLParser_r_set_return

    OraclePLSQLParser_k_transaction_return k_transaction626;
    #undef	RETURN_TYPE_k_transaction626
    #define	RETURN_TYPE_k_transaction626 OraclePLSQLParser_k_transaction_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi627;
    #undef	RETURN_TYPE_swallow_to_semi627
    #define	RETURN_TYPE_swallow_to_semi627 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    set_transaction_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(108)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r_set625.tree = NULL;
    k_transaction626.tree = NULL;
    swallow_to_semi627.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:722:27: ( r_set k_transaction swallow_to_semi )
        // OraclePLSQL.g:723:9: r_set k_transaction swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_r_set_in_set_transaction_statement6171);
            r_set625=r_set(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleset_transaction_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_set625.tree);
            FOLLOWPUSH(FOLLOW_k_transaction_in_set_transaction_statement6173);
            k_transaction626=k_transaction(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleset_transaction_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_transaction626.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_set_transaction_statement6175);
            swallow_to_semi627=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleset_transaction_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi627.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleset_transaction_statementEx; /* Prevent compiler warnings */
    ruleset_transaction_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(108, set_transaction_statement_StartIndex); }

    return retval;
}
/* $ANTLR end set_transaction_statement */

/** 
 * $ANTLR start update_statement
 * OraclePLSQL.g:726:1: update_statement : k_update swallow_to_semi ;
 */
static OraclePLSQLParser_update_statement_return
update_statement(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_update_statement_return retval;
    ANTLR3_UINT32 update_statement_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_update_return k_update628;
    #undef	RETURN_TYPE_k_update628
    #define	RETURN_TYPE_k_update628 OraclePLSQLParser_k_update_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi629;
    #undef	RETURN_TYPE_swallow_to_semi629
    #define	RETURN_TYPE_swallow_to_semi629 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    update_statement_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(109)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_update628.tree = NULL;
    swallow_to_semi629.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:726:18: ( k_update swallow_to_semi )
        // OraclePLSQL.g:727:9: k_update swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_update_in_update_statement6196);
            k_update628=k_update(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleupdate_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_update628.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_update_statement6198);
            swallow_to_semi629=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleupdate_statementEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi629.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleupdate_statementEx; /* Prevent compiler warnings */
    ruleupdate_statementEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(109, update_statement_StartIndex); }

    return retval;
}
/* $ANTLR end update_statement */

/** 
 * $ANTLR start swallow_to_semi
 * OraclePLSQL.g:730:1: swallow_to_semi : (~ ( SEMI ) )+ ;
 */
static OraclePLSQLParser_swallow_to_semi_return
swallow_to_semi(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_swallow_to_semi_return retval;
    ANTLR3_UINT32 swallow_to_semi_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    set630;

    pANTLR3_BASE_TREE set630_tree;

    /* Initialize rule variables
     */
    swallow_to_semi_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(110)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    set630       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    set630_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:730:17: ( (~ ( SEMI ) )+ )
        // OraclePLSQL.g:731:9: (~ ( SEMI ) )+
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            // OraclePLSQL.g:731:9: (~ ( SEMI ) )+
            {
                int cnt198=0;

                for (;;)
                {
                    int alt198=2;
            	switch ( LA(1) ) 
            	{
            	case ID:
            		{
            			switch ( LA(2) ) 
            			{
            			case ID:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_5 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case EOF:
            			case T_UNKNOWN:
            			case T_RESERVED:
            			case T_SCHEMA_NAME:
            			case T_TRIGGER_NAME:
            			case T_PACKAGE_NAME:
            			case T_FUNCTION_NAME:
            			case T_PROCEDURE_NAME:
            			case T_PARAMETER_NAME:
            			case T_BINDVAR_NAME:
            			case T_VARIABLE_NAME:
            			case T_DATATYPE_NAME:
            			case T_CURSOR_NAME:
            			case T_TABLE_NAME:
            			case T_COLUMN_NAME:
            			case T_OBJECT_NAME:
            			case T_LABEL_NAME:
            			case T_EXCEPTION_NAME:
            			case T_DBLINK_NAME:
            			case T_DECL:
            			case T_USE:
            			case T_USEL:
            			case T_TYPE_DECL:
            			case T_SUBTYPE_DECL:
            			case T_CURSOR_DECL:
            			case T_VAR_DECL:
            			case T_CONST_DECL:
            			case T_EXC_DECL:
            			case T_FUNCTION_DECL:
            			case T_PROCEDURE_DECL:
            			case T_PRAGMA_DECL:
            			case T_DECL_BLOCK:
            			case T_BLOCK_BLOCK:
            			case T_PROCEDURE_BLOCK:
            			case T_FUNCTION_BLOCK:
            			case T_DECLARE_BLOCK:
            			case T_BEGIN_BLOCK:
            			case T_EXCEPTIONS_BLOCK:
            			case T_COMMIT:
            			case T_DELETE:
            			case T_INSERT:
            			case T_LOCK_TABLE:
            			case T_MERGE:
            			case T_ROLLBACK:
            			case T_SAVEPOINT:
            			case T_SELECT:
            			case T_SET_TRANSACTION:
            			case T_UPDATE:
            			case T_EXECUTE_IMMEDIATE:
            			case T_CASE:
            			case T_OPEN:
            			case T_CLOSE:
            			case T_CONTINUE:
            			case T_PIPE:
            			case T_GOTO:
            			case T_EXIT:
            			case T_RETURN:
            			case T_DECLARE:
            			case T_RAISE:
            			case T_FETCH:
            			case T_LOOP:
            			case T_WHILE:
            			case T_NULL_STAT:
            			case T_FOR:
            			case T_FORALL:
            			case T_IF:
            			case T_ELSIF:
            			case T_ELSE:
            			case T_ENDIF:
            			case T_ASSIGN:
            			case T_CALL:
            			case T_DECLARATION:
            			case T_STATEMENT:
            			case DIVIDE:
            			case SEMI:
            			case LPAREN:
            			case COMMA:
            			case RPAREN:
            			case K_IN:
            			case K_OUT:
            			case ASSIGN:
            			case INTEGER:
            			case DOT:
            			case K_USING:
            			case DOUBLEDOT:
            			case LLABEL:
            			case RLABEL:
            			case COLON:
            			case AT_SIGN:
            			case EQ:
            			case LTH:
            			case GTH:
            			case MINUS:
            			case PLUS:
            			case DOUBLEVERTBAR:
            			case ASTERISK:
            			case REAL_NUMBER:
            			case QUOTED_STRING:
            			case ARROW:
            			case QSTRING:
            			case QS_ANGLE:
            			case QS_BRACE:
            			case QS_BRACK:
            			case QS_PAREN:
            			case QS_OTHER:
            			case QUOTE:
            			case QS_OTHER_CH:
            			case BINDVAR:
            			case DOUBLEQUOTED_STRING:
            			case NUM:
            			case POINT:
            			case RBRACK:
            			case LBRACK:
            			case PERCENT:
            			case VERTBAR:
            			case NOT_EQ:
            			case LEQ:
            			case GEQ:
            			case NUMBER_VALUE:
            			case WS:
            			case SL_COMMENT:
            			case ML_COMMENT:
            			case 126:
            			case 127:
            			case 128:
            			case 129:
            			case 130:
            			case 131:
            			case 132:
            			case 133:
            			case 134:
            			case 135:
            			case 136:
            			case 137:
            			case 138:
            			case 139:
            			case 140:
            			case 141:
            			case 142:
            			case 143:
            			case 144:
            			case 145:
            			case 146:
            			case 147:
            			case 148:
            			case 149:
            			case 150:
            			case 151:
            			case 152:
            			case 153:
            			case 154:
            			case 155:
            			case 156:
            			case 157:
            			case 158:
            			case 159:
            			case 160:
            			case 161:
            			case 162:
            			case 163:
            			case 164:
            			case 165:
            			case 166:
            			case 167:
            			case 168:
            			case 169:
            			case 170:
            			case 171:
            			case 172:
            			case 173:
            			case 174:
            			case 175:
            			case 176:
            			case 177:
            			case 178:
            			case 179:
            			case 180:
            			case 181:
            			case 182:
            			case 183:
            			case 184:
            			case 185:
            			case 186:
            			case 187:
            			case 188:
            			case 189:
            			case 190:
            			case 191:
            			case 192:
            			case 193:
            			case 194:
            			case 195:
            			case 196:
            			case 197:
            			case 198:
            			case 199:
            			case 200:
            			case 201:
            			case 202:
            			case 203:
            			case 204:
            			case 205:
            			case 206:
            			case 207:
            			case 208:
            			case 209:
            			case 210:
            			case 211:
            			case 212:
            			case 213:
            			case 214:
            			case 215:
            			case 216:
            			case 217:
            			case 218:
            			case 219:
            			case 220:
            			case 221:
            			case 222:
            			case 223:
            			case 224:
            			case 225:
            			case 226:
            			case 227:
            			case 228:
            			case 229:
            			case 230:
            			case 231:
            			case 232:
            			case 233:
            			case 234:
            			case 235:
            			case 236:
            			case 237:
            			case 238:
            			case 239:
            			case 240:
            			case 241:
            			case 242:
            			case 243:
            				{
            					alt198=1;
            				}
            			    break;

            			}

            		}
            	    break;
            	case K_USING:
            		{
            			switch ( LA(2) ) 
            			{
            			case BINDVAR:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_6 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case COLON:
            				{
            					switch ( LA(3) ) 
            					{
            					case ID:
            						{
            							{
            							   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            							    */
            							    int LA198_14 = LA(4);
            							    if ( (synpred325_OraclePLSQL(ctx))) 
            							    {
            							        alt198=1;
            							    }

            							}
            						}
            					    break;
            					case EOF:
            					case T_UNKNOWN:
            					case T_RESERVED:
            					case T_SCHEMA_NAME:
            					case T_TRIGGER_NAME:
            					case T_PACKAGE_NAME:
            					case T_FUNCTION_NAME:
            					case T_PROCEDURE_NAME:
            					case T_PARAMETER_NAME:
            					case T_BINDVAR_NAME:
            					case T_VARIABLE_NAME:
            					case T_DATATYPE_NAME:
            					case T_CURSOR_NAME:
            					case T_TABLE_NAME:
            					case T_COLUMN_NAME:
            					case T_OBJECT_NAME:
            					case T_LABEL_NAME:
            					case T_EXCEPTION_NAME:
            					case T_DBLINK_NAME:
            					case T_DECL:
            					case T_USE:
            					case T_USEL:
            					case T_TYPE_DECL:
            					case T_SUBTYPE_DECL:
            					case T_CURSOR_DECL:
            					case T_VAR_DECL:
            					case T_CONST_DECL:
            					case T_EXC_DECL:
            					case T_FUNCTION_DECL:
            					case T_PROCEDURE_DECL:
            					case T_PRAGMA_DECL:
            					case T_DECL_BLOCK:
            					case T_BLOCK_BLOCK:
            					case T_PROCEDURE_BLOCK:
            					case T_FUNCTION_BLOCK:
            					case T_DECLARE_BLOCK:
            					case T_BEGIN_BLOCK:
            					case T_EXCEPTIONS_BLOCK:
            					case T_COMMIT:
            					case T_DELETE:
            					case T_INSERT:
            					case T_LOCK_TABLE:
            					case T_MERGE:
            					case T_ROLLBACK:
            					case T_SAVEPOINT:
            					case T_SELECT:
            					case T_SET_TRANSACTION:
            					case T_UPDATE:
            					case T_EXECUTE_IMMEDIATE:
            					case T_CASE:
            					case T_OPEN:
            					case T_CLOSE:
            					case T_CONTINUE:
            					case T_PIPE:
            					case T_GOTO:
            					case T_EXIT:
            					case T_RETURN:
            					case T_DECLARE:
            					case T_RAISE:
            					case T_FETCH:
            					case T_LOOP:
            					case T_WHILE:
            					case T_NULL_STAT:
            					case T_FOR:
            					case T_FORALL:
            					case T_IF:
            					case T_ELSIF:
            					case T_ELSE:
            					case T_ENDIF:
            					case T_ASSIGN:
            					case T_CALL:
            					case T_DECLARATION:
            					case T_STATEMENT:
            					case DIVIDE:
            					case SEMI:
            					case LPAREN:
            					case COMMA:
            					case RPAREN:
            					case K_IN:
            					case K_OUT:
            					case ASSIGN:
            					case INTEGER:
            					case DOT:
            					case K_USING:
            					case DOUBLEDOT:
            					case LLABEL:
            					case RLABEL:
            					case COLON:
            					case AT_SIGN:
            					case EQ:
            					case LTH:
            					case GTH:
            					case MINUS:
            					case PLUS:
            					case DOUBLEVERTBAR:
            					case ASTERISK:
            					case REAL_NUMBER:
            					case QUOTED_STRING:
            					case ARROW:
            					case QSTRING:
            					case QS_ANGLE:
            					case QS_BRACE:
            					case QS_BRACK:
            					case QS_PAREN:
            					case QS_OTHER:
            					case QUOTE:
            					case QS_OTHER_CH:
            					case BINDVAR:
            					case DOUBLEQUOTED_STRING:
            					case NUM:
            					case POINT:
            					case RBRACK:
            					case LBRACK:
            					case PERCENT:
            					case VERTBAR:
            					case NOT_EQ:
            					case LEQ:
            					case GEQ:
            					case NUMBER_VALUE:
            					case WS:
            					case SL_COMMENT:
            					case ML_COMMENT:
            					case 126:
            					case 127:
            					case 128:
            					case 129:
            					case 130:
            					case 131:
            					case 132:
            					case 133:
            					case 134:
            					case 135:
            					case 136:
            					case 137:
            					case 138:
            					case 139:
            					case 140:
            					case 141:
            					case 142:
            					case 143:
            					case 144:
            					case 145:
            					case 146:
            					case 147:
            					case 148:
            					case 149:
            					case 150:
            					case 151:
            					case 152:
            					case 153:
            					case 154:
            					case 155:
            					case 156:
            					case 157:
            					case 158:
            					case 159:
            					case 160:
            					case 161:
            					case 162:
            					case 163:
            					case 164:
            					case 165:
            					case 166:
            					case 167:
            					case 168:
            					case 169:
            					case 170:
            					case 171:
            					case 172:
            					case 173:
            					case 174:
            					case 175:
            					case 176:
            					case 177:
            					case 178:
            					case 179:
            					case 180:
            					case 181:
            					case 182:
            					case 183:
            					case 184:
            					case 185:
            					case 186:
            					case 187:
            					case 188:
            					case 189:
            					case 190:
            					case 191:
            					case 192:
            					case 193:
            					case 194:
            					case 195:
            					case 196:
            					case 197:
            					case 198:
            					case 199:
            					case 200:
            					case 201:
            					case 202:
            					case 203:
            					case 204:
            					case 205:
            					case 206:
            					case 207:
            					case 208:
            					case 209:
            					case 210:
            					case 211:
            					case 212:
            					case 213:
            					case 214:
            					case 215:
            					case 216:
            					case 217:
            					case 218:
            					case 219:
            					case 220:
            					case 221:
            					case 222:
            					case 223:
            					case 224:
            					case 225:
            					case 226:
            					case 227:
            					case 228:
            					case 229:
            					case 230:
            					case 231:
            					case 232:
            					case 233:
            					case 234:
            					case 235:
            					case 236:
            					case 237:
            					case 238:
            					case 239:
            					case 240:
            					case 241:
            					case 242:
            					case 243:
            						{
            							alt198=1;
            						}
            					    break;

            					}

            				}
            			    break;
            			case ID:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_8 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case 127:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_9 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case 128:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_10 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case K_OUT:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_11 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case 129:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_12 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case 130:
            				{
            					{
            					   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
            					    */
            					    int LA198_13 = LA(3);
            					    if ( (synpred325_OraclePLSQL(ctx))) 
            					    {
            					        alt198=1;
            					    }

            					}
            				}
            			    break;
            			case EOF:
            			case T_UNKNOWN:
            			case T_RESERVED:
            			case T_SCHEMA_NAME:
            			case T_TRIGGER_NAME:
            			case T_PACKAGE_NAME:
            			case T_FUNCTION_NAME:
            			case T_PROCEDURE_NAME:
            			case T_PARAMETER_NAME:
            			case T_BINDVAR_NAME:
            			case T_VARIABLE_NAME:
            			case T_DATATYPE_NAME:
            			case T_CURSOR_NAME:
            			case T_TABLE_NAME:
            			case T_COLUMN_NAME:
            			case T_OBJECT_NAME:
            			case T_LABEL_NAME:
            			case T_EXCEPTION_NAME:
            			case T_DBLINK_NAME:
            			case T_DECL:
            			case T_USE:
            			case T_USEL:
            			case T_TYPE_DECL:
            			case T_SUBTYPE_DECL:
            			case T_CURSOR_DECL:
            			case T_VAR_DECL:
            			case T_CONST_DECL:
            			case T_EXC_DECL:
            			case T_FUNCTION_DECL:
            			case T_PROCEDURE_DECL:
            			case T_PRAGMA_DECL:
            			case T_DECL_BLOCK:
            			case T_BLOCK_BLOCK:
            			case T_PROCEDURE_BLOCK:
            			case T_FUNCTION_BLOCK:
            			case T_DECLARE_BLOCK:
            			case T_BEGIN_BLOCK:
            			case T_EXCEPTIONS_BLOCK:
            			case T_COMMIT:
            			case T_DELETE:
            			case T_INSERT:
            			case T_LOCK_TABLE:
            			case T_MERGE:
            			case T_ROLLBACK:
            			case T_SAVEPOINT:
            			case T_SELECT:
            			case T_SET_TRANSACTION:
            			case T_UPDATE:
            			case T_EXECUTE_IMMEDIATE:
            			case T_CASE:
            			case T_OPEN:
            			case T_CLOSE:
            			case T_CONTINUE:
            			case T_PIPE:
            			case T_GOTO:
            			case T_EXIT:
            			case T_RETURN:
            			case T_DECLARE:
            			case T_RAISE:
            			case T_FETCH:
            			case T_LOOP:
            			case T_WHILE:
            			case T_NULL_STAT:
            			case T_FOR:
            			case T_FORALL:
            			case T_IF:
            			case T_ELSIF:
            			case T_ELSE:
            			case T_ENDIF:
            			case T_ASSIGN:
            			case T_CALL:
            			case T_DECLARATION:
            			case T_STATEMENT:
            			case DIVIDE:
            			case SEMI:
            			case LPAREN:
            			case COMMA:
            			case RPAREN:
            			case K_IN:
            			case ASSIGN:
            			case INTEGER:
            			case DOT:
            			case K_USING:
            			case DOUBLEDOT:
            			case LLABEL:
            			case RLABEL:
            			case AT_SIGN:
            			case EQ:
            			case LTH:
            			case GTH:
            			case MINUS:
            			case PLUS:
            			case DOUBLEVERTBAR:
            			case ASTERISK:
            			case REAL_NUMBER:
            			case QUOTED_STRING:
            			case ARROW:
            			case QSTRING:
            			case QS_ANGLE:
            			case QS_BRACE:
            			case QS_BRACK:
            			case QS_PAREN:
            			case QS_OTHER:
            			case QUOTE:
            			case QS_OTHER_CH:
            			case DOUBLEQUOTED_STRING:
            			case NUM:
            			case POINT:
            			case RBRACK:
            			case LBRACK:
            			case PERCENT:
            			case VERTBAR:
            			case NOT_EQ:
            			case LEQ:
            			case GEQ:
            			case NUMBER_VALUE:
            			case WS:
            			case SL_COMMENT:
            			case ML_COMMENT:
            			case 126:
            			case 131:
            			case 132:
            			case 133:
            			case 134:
            			case 135:
            			case 136:
            			case 137:
            			case 138:
            			case 139:
            			case 140:
            			case 141:
            			case 142:
            			case 143:
            			case 144:
            			case 145:
            			case 146:
            			case 147:
            			case 148:
            			case 149:
            			case 150:
            			case 151:
            			case 152:
            			case 153:
            			case 154:
            			case 155:
            			case 156:
            			case 157:
            			case 158:
            			case 159:
            			case 160:
            			case 161:
            			case 162:
            			case 163:
            			case 164:
            			case 165:
            			case 166:
            			case 167:
            			case 168:
            			case 169:
            			case 170:
            			case 171:
            			case 172:
            			case 173:
            			case 174:
            			case 175:
            			case 176:
            			case 177:
            			case 178:
            			case 179:
            			case 180:
            			case 181:
            			case 182:
            			case 183:
            			case 184:
            			case 185:
            			case 186:
            			case 187:
            			case 188:
            			case 189:
            			case 190:
            			case 191:
            			case 192:
            			case 193:
            			case 194:
            			case 195:
            			case 196:
            			case 197:
            			case 198:
            			case 199:
            			case 200:
            			case 201:
            			case 202:
            			case 203:
            			case 204:
            			case 205:
            			case 206:
            			case 207:
            			case 208:
            			case 209:
            			case 210:
            			case 211:
            			case 212:
            			case 213:
            			case 214:
            			case 215:
            			case 216:
            			case 217:
            			case 218:
            			case 219:
            			case 220:
            			case 221:
            			case 222:
            			case 223:
            			case 224:
            			case 225:
            			case 226:
            			case 227:
            			case 228:
            			case 229:
            			case 230:
            			case 231:
            			case 232:
            			case 233:
            			case 234:
            			case 235:
            			case 236:
            			case 237:
            			case 238:
            			case 239:
            			case 240:
            			case 241:
            			case 242:
            			case 243:
            				{
            					alt198=1;
            				}
            			    break;

            			}

            		}
            	    break;
            	case T_UNKNOWN:
            	case T_RESERVED:
            	case T_SCHEMA_NAME:
            	case T_TRIGGER_NAME:
            	case T_PACKAGE_NAME:
            	case T_FUNCTION_NAME:
            	case T_PROCEDURE_NAME:
            	case T_PARAMETER_NAME:
            	case T_BINDVAR_NAME:
            	case T_VARIABLE_NAME:
            	case T_DATATYPE_NAME:
            	case T_CURSOR_NAME:
            	case T_TABLE_NAME:
            	case T_COLUMN_NAME:
            	case T_OBJECT_NAME:
            	case T_LABEL_NAME:
            	case T_EXCEPTION_NAME:
            	case T_DBLINK_NAME:
            	case T_DECL:
            	case T_USE:
            	case T_USEL:
            	case T_TYPE_DECL:
            	case T_SUBTYPE_DECL:
            	case T_CURSOR_DECL:
            	case T_VAR_DECL:
            	case T_CONST_DECL:
            	case T_EXC_DECL:
            	case T_FUNCTION_DECL:
            	case T_PROCEDURE_DECL:
            	case T_PRAGMA_DECL:
            	case T_DECL_BLOCK:
            	case T_BLOCK_BLOCK:
            	case T_PROCEDURE_BLOCK:
            	case T_FUNCTION_BLOCK:
            	case T_DECLARE_BLOCK:
            	case T_BEGIN_BLOCK:
            	case T_EXCEPTIONS_BLOCK:
            	case T_COMMIT:
            	case T_DELETE:
            	case T_INSERT:
            	case T_LOCK_TABLE:
            	case T_MERGE:
            	case T_ROLLBACK:
            	case T_SAVEPOINT:
            	case T_SELECT:
            	case T_SET_TRANSACTION:
            	case T_UPDATE:
            	case T_EXECUTE_IMMEDIATE:
            	case T_CASE:
            	case T_OPEN:
            	case T_CLOSE:
            	case T_CONTINUE:
            	case T_PIPE:
            	case T_GOTO:
            	case T_EXIT:
            	case T_RETURN:
            	case T_DECLARE:
            	case T_RAISE:
            	case T_FETCH:
            	case T_LOOP:
            	case T_WHILE:
            	case T_NULL_STAT:
            	case T_FOR:
            	case T_FORALL:
            	case T_IF:
            	case T_ELSIF:
            	case T_ELSE:
            	case T_ENDIF:
            	case T_ASSIGN:
            	case T_CALL:
            	case T_DECLARATION:
            	case T_STATEMENT:
            	case DIVIDE:
            	case LPAREN:
            	case COMMA:
            	case RPAREN:
            	case K_IN:
            	case K_OUT:
            	case ASSIGN:
            	case INTEGER:
            	case DOT:
            	case DOUBLEDOT:
            	case LLABEL:
            	case RLABEL:
            	case COLON:
            	case AT_SIGN:
            	case EQ:
            	case LTH:
            	case GTH:
            	case MINUS:
            	case PLUS:
            	case DOUBLEVERTBAR:
            	case ASTERISK:
            	case REAL_NUMBER:
            	case QUOTED_STRING:
            	case ARROW:
            	case QSTRING:
            	case QS_ANGLE:
            	case QS_BRACE:
            	case QS_BRACK:
            	case QS_PAREN:
            	case QS_OTHER:
            	case QUOTE:
            	case QS_OTHER_CH:
            	case BINDVAR:
            	case DOUBLEQUOTED_STRING:
            	case NUM:
            	case POINT:
            	case RBRACK:
            	case LBRACK:
            	case PERCENT:
            	case VERTBAR:
            	case NOT_EQ:
            	case LEQ:
            	case GEQ:
            	case NUMBER_VALUE:
            	case WS:
            	case SL_COMMENT:
            	case ML_COMMENT:
            	case 126:
            	case 127:
            	case 128:
            	case 129:
            	case 130:
            	case 131:
            	case 132:
            	case 133:
            	case 134:
            	case 135:
            	case 136:
            	case 137:
            	case 138:
            	case 139:
            	case 140:
            	case 141:
            	case 142:
            	case 143:
            	case 144:
            	case 145:
            	case 146:
            	case 147:
            	case 148:
            	case 149:
            	case 150:
            	case 151:
            	case 152:
            	case 153:
            	case 154:
            	case 155:
            	case 156:
            	case 157:
            	case 158:
            	case 159:
            	case 160:
            	case 161:
            	case 162:
            	case 163:
            	case 164:
            	case 165:
            	case 166:
            	case 167:
            	case 168:
            	case 169:
            	case 170:
            	case 171:
            	case 172:
            	case 173:
            	case 174:
            	case 175:
            	case 176:
            	case 177:
            	case 178:
            	case 179:
            	case 180:
            	case 181:
            	case 182:
            	case 183:
            	case 184:
            	case 185:
            	case 186:
            	case 187:
            	case 188:
            	case 189:
            	case 190:
            	case 191:
            	case 192:
            	case 193:
            	case 194:
            	case 195:
            	case 196:
            	case 197:
            	case 198:
            	case 199:
            	case 200:
            	case 201:
            	case 202:
            	case 203:
            	case 204:
            	case 205:
            	case 206:
            	case 207:
            	case 208:
            	case 209:
            	case 210:
            	case 211:
            	case 212:
            	case 213:
            	case 214:
            	case 215:
            	case 216:
            	case 217:
            	case 218:
            	case 219:
            	case 220:
            	case 221:
            	case 222:
            	case 223:
            	case 224:
            	case 225:
            	case 226:
            	case 227:
            	case 228:
            	case 229:
            	case 230:
            	case 231:
            	case 232:
            	case 233:
            	case 234:
            	case 235:
            	case 236:
            	case 237:
            	case 238:
            	case 239:
            	case 240:
            	case 241:
            	case 242:
            	case 243:
            		{
            			alt198=1;
            		}
            	    break;

            	}

            	switch (alt198) 
            	{
            	    case 1:
            	        // OraclePLSQL.g:0:0: ~ ( SEMI )
            	        {
            	            set630=(pANTLR3_COMMON_TOKEN)LT(1);
            	            if ( ((LA(1) >= T_UNKNOWN) && (LA(1) <= DIVIDE)) || ((LA(1) >= LPAREN) && (LA(1) <= 243)) )
            	            {
            	                CONSUME();
            	                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set630)));
            	                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	            }
            	            else 
            	            {
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	                EXCEPTION->expectingSet = &FOLLOW_set_in_swallow_to_semi6219;
            	                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_swallow_to_semi6219);    goto ruleswallow_to_semiEx;
            	            }


            	        }
            	        break;

            	    default:
            	    
            		if ( cnt198 >= 1 )
            		{
            		    goto loop198;
            		}
            		if (BACKTRACKING>0)
            		{
            		    FAILEDFLAG = ANTLR3_TRUE;
            		    return retval;
            		}
            		/* mismatchedSetEx()
            		 */
            		CONSTRUCTEX();
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            		goto ruleswallow_to_semiEx;
            	}
            	cnt198++;
                }
                loop198: ;	/* Jump to here if this rule does not match */
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleswallow_to_semiEx; /* Prevent compiler warnings */
    ruleswallow_to_semiEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(110, swallow_to_semi_StartIndex); }

    return retval;
}
/* $ANTLR end swallow_to_semi */

/** 
 * $ANTLR start label_name
 * OraclePLSQL.g:734:1: label_name : identifier[T_LABEL_NAME,T_USE] ;
 */
static OraclePLSQLParser_label_name_return
label_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_label_name_return retval;
    ANTLR3_UINT32 label_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier631;
    #undef	RETURN_TYPE_identifier631
    #define	RETURN_TYPE_identifier631 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    label_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(111)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier631.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:734:11: ( identifier[T_LABEL_NAME,T_USE] )
        // OraclePLSQL.g:734:13: identifier[T_LABEL_NAME,T_USE]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_identifier_in_label_name6237);
            identifier631=identifier(ctx, T_LABEL_NAME, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelabel_nameEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier631.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulelabel_nameEx; /* Prevent compiler warnings */
    rulelabel_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(111, label_name_StartIndex); }

    return retval;
}
/* $ANTLR end label_name */

/** 
 * $ANTLR start dblink_name
 * OraclePLSQL.g:736:1: dblink_name : AT_SIGN identifier[T_DBLINK_NAME,T_USE] ( DOT identifier[T_DBLINK_NAME,T_USE] )* ;
 */
static OraclePLSQLParser_dblink_name_return
dblink_name(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_dblink_name_return retval;
    ANTLR3_UINT32 dblink_name_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    AT_SIGN632;
    pANTLR3_COMMON_TOKEN    DOT634;
    OraclePLSQLParser_identifier_return identifier633;
    #undef	RETURN_TYPE_identifier633
    #define	RETURN_TYPE_identifier633 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier635;
    #undef	RETURN_TYPE_identifier635
    #define	RETURN_TYPE_identifier635 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE AT_SIGN632_tree;
    pANTLR3_BASE_TREE DOT634_tree;

    /* Initialize rule variables
     */
    dblink_name_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(112)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    AT_SIGN632       = NULL;
    DOT634       = NULL;
    identifier633.tree = NULL;
    identifier635.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    AT_SIGN632_tree   = NULL;
    DOT634_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:736:12: ( AT_SIGN identifier[T_DBLINK_NAME,T_USE] ( DOT identifier[T_DBLINK_NAME,T_USE] )* )
        // OraclePLSQL.g:736:14: AT_SIGN identifier[T_DBLINK_NAME,T_USE] ( DOT identifier[T_DBLINK_NAME,T_USE] )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            AT_SIGN632 = (pANTLR3_COMMON_TOKEN) MATCHT(AT_SIGN, &FOLLOW_AT_SIGN_in_dblink_name6245); 
            if  (HASEXCEPTION())
            {
                goto ruledblink_nameEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            AT_SIGN632_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, AT_SIGN632));
            ADAPTOR->addChild(ADAPTOR, root_0, AT_SIGN632_tree);
            }
            FOLLOWPUSH(FOLLOW_identifier_in_dblink_name6247);
            identifier633=identifier(ctx, T_DBLINK_NAME, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruledblink_nameEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier633.tree);

            // OraclePLSQL.g:736:54: ( DOT identifier[T_DBLINK_NAME,T_USE] )*

            for (;;)
            {
                int alt199=2;
                switch ( LA(1) ) 
                {
                case DOT:
                	{
                		switch ( LA(2) ) 
                		{
                		case ID:
                			{
                				{
                				   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                				    */
                				    int LA199_3 = LA(3);
                				    if ( (synpred326_OraclePLSQL(ctx))) 
                				    {
                				        alt199=1;
                				    }

                				}
                			}
                		    break;

                		}

                	}
                    break;

                }

                switch (alt199) 
                {
            	case 1:
            	    // OraclePLSQL.g:736:55: DOT identifier[T_DBLINK_NAME,T_USE]
            	    {
            	        DOT634 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_dblink_name6251); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledblink_nameEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT634_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT634));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT634_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_identifier_in_dblink_name6253);
            	        identifier635=identifier(ctx, T_DBLINK_NAME, T_USE);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruledblink_nameEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier635.tree);

            	    }
            	    break;

            	default:
            	    goto loop199;	/* break out of the loop */
            	    break;
                }
            }
            loop199: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruledblink_nameEx; /* Prevent compiler warnings */
    ruledblink_nameEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(112, dblink_name_StartIndex); }

    return retval;
}
/* $ANTLR end dblink_name */

/** 
 * $ANTLR start expression
 * OraclePLSQL.g:738:1: expression : or_expr ;
 */
static OraclePLSQLParser_expression_return
expression(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_expression_return retval;
    ANTLR3_UINT32 expression_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_or_expr_return or_expr636;
    #undef	RETURN_TYPE_or_expr636
    #define	RETURN_TYPE_or_expr636 OraclePLSQLParser_or_expr_return


    /* Initialize rule variables
     */
    expression_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(113)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    or_expr636.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:739:5: ( or_expr )
        // OraclePLSQL.g:739:7: or_expr
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_or_expr_in_expression6268);
            or_expr636=or_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleexpressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, or_expr636.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleexpressionEx; /* Prevent compiler warnings */
    ruleexpressionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(113, expression_StartIndex); }

    return retval;
}
/* $ANTLR end expression */

/** 
 * $ANTLR start or_expr
 * OraclePLSQL.g:742:1: or_expr : and_expr ( k_or and_expr )* ;
 */
static OraclePLSQLParser_or_expr_return
or_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_or_expr_return retval;
    ANTLR3_UINT32 or_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_and_expr_return and_expr637;
    #undef	RETURN_TYPE_and_expr637
    #define	RETURN_TYPE_and_expr637 OraclePLSQLParser_and_expr_return

    OraclePLSQLParser_k_or_return k_or638;
    #undef	RETURN_TYPE_k_or638
    #define	RETURN_TYPE_k_or638 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_and_expr_return and_expr639;
    #undef	RETURN_TYPE_and_expr639
    #define	RETURN_TYPE_and_expr639 OraclePLSQLParser_and_expr_return


    /* Initialize rule variables
     */
    or_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(114)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    and_expr637.tree = NULL;
    k_or638.tree = NULL;
    and_expr639.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:743:5: ( and_expr ( k_or and_expr )* )
        // OraclePLSQL.g:743:7: and_expr ( k_or and_expr )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_and_expr_in_or_expr6285);
            and_expr637=and_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleor_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, and_expr637.tree);

            // OraclePLSQL.g:743:16: ( k_or and_expr )*

            for (;;)
            {
                int alt200=2;
                switch ( LA(1) ) 
                {
                case 185:
                	{
                		alt200=1;
                	}
                    break;

                }

                switch (alt200) 
                {
            	case 1:
            	    // OraclePLSQL.g:743:18: k_or and_expr
            	    {
            	        FOLLOWPUSH(FOLLOW_k_or_in_or_expr6289);
            	        k_or638=k_or(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleor_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or638.tree);
            	        FOLLOWPUSH(FOLLOW_and_expr_in_or_expr6291);
            	        and_expr639=and_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleor_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, and_expr639.tree);

            	    }
            	    break;

            	default:
            	    goto loop200;	/* break out of the loop */
            	    break;
                }
            }
            loop200: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleor_exprEx; /* Prevent compiler warnings */
    ruleor_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(114, or_expr_StartIndex); }

    return retval;
}
/* $ANTLR end or_expr */

/** 
 * $ANTLR start and_expr
 * OraclePLSQL.g:746:1: and_expr : not_expr ( k_and not_expr )* ;
 */
static OraclePLSQLParser_and_expr_return
and_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_and_expr_return retval;
    ANTLR3_UINT32 and_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_not_expr_return not_expr640;
    #undef	RETURN_TYPE_not_expr640
    #define	RETURN_TYPE_not_expr640 OraclePLSQLParser_not_expr_return

    OraclePLSQLParser_k_and_return k_and641;
    #undef	RETURN_TYPE_k_and641
    #define	RETURN_TYPE_k_and641 OraclePLSQLParser_k_and_return

    OraclePLSQLParser_not_expr_return not_expr642;
    #undef	RETURN_TYPE_not_expr642
    #define	RETURN_TYPE_not_expr642 OraclePLSQLParser_not_expr_return


    /* Initialize rule variables
     */
    and_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(115)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    not_expr640.tree = NULL;
    k_and641.tree = NULL;
    not_expr642.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:747:5: ( not_expr ( k_and not_expr )* )
        // OraclePLSQL.g:747:7: not_expr ( k_and not_expr )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_not_expr_in_and_expr6311);
            not_expr640=not_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleand_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, not_expr640.tree);

            // OraclePLSQL.g:747:16: ( k_and not_expr )*

            for (;;)
            {
                int alt201=2;
                switch ( LA(1) ) 
                {
                case 150:
                	{
                		alt201=1;
                	}
                    break;

                }

                switch (alt201) 
                {
            	case 1:
            	    // OraclePLSQL.g:747:18: k_and not_expr
            	    {
            	        FOLLOWPUSH(FOLLOW_k_and_in_and_expr6315);
            	        k_and641=k_and(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleand_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_and641.tree);
            	        FOLLOWPUSH(FOLLOW_not_expr_in_and_expr6317);
            	        not_expr642=not_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleand_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, not_expr642.tree);

            	    }
            	    break;

            	default:
            	    goto loop201;	/* break out of the loop */
            	    break;
                }
            }
            loop201: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleand_exprEx; /* Prevent compiler warnings */
    ruleand_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(115, and_expr_StartIndex); }

    return retval;
}
/* $ANTLR end and_expr */

/** 
 * $ANTLR start not_expr
 * OraclePLSQL.g:750:1: not_expr : ( k_not )? compare_expr ;
 */
static OraclePLSQLParser_not_expr_return
not_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_not_expr_return retval;
    ANTLR3_UINT32 not_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_not_return k_not643;
    #undef	RETURN_TYPE_k_not643
    #define	RETURN_TYPE_k_not643 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_compare_expr_return compare_expr644;
    #undef	RETURN_TYPE_compare_expr644
    #define	RETURN_TYPE_compare_expr644 OraclePLSQLParser_compare_expr_return


    /* Initialize rule variables
     */
    not_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(116)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_not643.tree = NULL;
    compare_expr644.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:751:5: ( ( k_not )? compare_expr )
        // OraclePLSQL.g:751:7: ( k_not )? compare_expr
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:751:7: ( k_not )?
            {
                int alt202=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		alt202=1;
                    	}
                        break;
                }

                switch (alt202) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: k_not
            	    {
            	        FOLLOWPUSH(FOLLOW_k_not_in_not_expr6337);
            	        k_not643=k_not(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulenot_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not643.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_compare_expr_in_not_expr6340);
            compare_expr644=compare_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenot_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, compare_expr644.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenot_exprEx; /* Prevent compiler warnings */
    rulenot_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(116, not_expr_StartIndex); }

    return retval;
}
/* $ANTLR end not_expr */

/** 
 * $ANTLR start compare_expr
 * OraclePLSQL.g:754:1: compare_expr : is_null_expr ( ( EQ | not_equal | LTH | leq | GTH | geq ) is_null_expr )? ;
 */
static OraclePLSQLParser_compare_expr_return
compare_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_compare_expr_return retval;
    ANTLR3_UINT32 compare_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    EQ646;
    pANTLR3_COMMON_TOKEN    LTH648;
    pANTLR3_COMMON_TOKEN    GTH650;
    OraclePLSQLParser_is_null_expr_return is_null_expr645;
    #undef	RETURN_TYPE_is_null_expr645
    #define	RETURN_TYPE_is_null_expr645 OraclePLSQLParser_is_null_expr_return

    OraclePLSQLParser_not_equal_return not_equal647;
    #undef	RETURN_TYPE_not_equal647
    #define	RETURN_TYPE_not_equal647 OraclePLSQLParser_not_equal_return

    OraclePLSQLParser_leq_return leq649;
    #undef	RETURN_TYPE_leq649
    #define	RETURN_TYPE_leq649 OraclePLSQLParser_leq_return

    OraclePLSQLParser_geq_return geq651;
    #undef	RETURN_TYPE_geq651
    #define	RETURN_TYPE_geq651 OraclePLSQLParser_geq_return

    OraclePLSQLParser_is_null_expr_return is_null_expr652;
    #undef	RETURN_TYPE_is_null_expr652
    #define	RETURN_TYPE_is_null_expr652 OraclePLSQLParser_is_null_expr_return

    pANTLR3_BASE_TREE EQ646_tree;
    pANTLR3_BASE_TREE LTH648_tree;
    pANTLR3_BASE_TREE GTH650_tree;

    /* Initialize rule variables
     */
    compare_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(117)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    EQ646       = NULL;
    LTH648       = NULL;
    GTH650       = NULL;
    is_null_expr645.tree = NULL;
    not_equal647.tree = NULL;
    leq649.tree = NULL;
    geq651.tree = NULL;
    is_null_expr652.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    EQ646_tree   = NULL;
    LTH648_tree   = NULL;
    GTH650_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:755:5: ( is_null_expr ( ( EQ | not_equal | LTH | leq | GTH | geq ) is_null_expr )? )
        // OraclePLSQL.g:755:7: is_null_expr ( ( EQ | not_equal | LTH | leq | GTH | geq ) is_null_expr )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_is_null_expr_in_compare_expr6357);
            is_null_expr645=is_null_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecompare_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, is_null_expr645.tree);

            // OraclePLSQL.g:755:20: ( ( EQ | not_equal | LTH | leq | GTH | geq ) is_null_expr )?
            {
                int alt204=2;
                switch ( LA(1) ) 
                {
                    case EQ:
                    case LTH:
                    case GTH:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt204=1;
                    	}
                        break;
                }

                switch (alt204) 
                {
            	case 1:
            	    // OraclePLSQL.g:755:22: ( EQ | not_equal | LTH | leq | GTH | geq ) is_null_expr
            	    {

            	        // OraclePLSQL.g:755:22: ( EQ | not_equal | LTH | leq | GTH | geq )
            	        {
            	            int alt203=6;
            	            switch ( LA(1) ) 
            	            {
            	            case EQ:
            	            	{
            	            		alt203=1;
            	            	}
            	                break;
            	            case NOT_EQ:
            	            case 237:
            	            case 238:
            	            case 239:
            	            	{
            	            		alt203=2;
            	            	}
            	                break;
            	            case LTH:
            	            	{
            	            		switch ( LA(2) ) 
            	            		{
            	            		case GTH:
            	            			{
            	            				alt203=2;
            	            			}
            	            		    break;
            	            		case EQ:
            	            			{
            	            				alt203=4;
            	            			}
            	            		    break;
            	            		case LPAREN:
            	            		case K_OUT:
            	            		case ID:
            	            		case INTEGER:
            	            		case COLON:
            	            		case MINUS:
            	            		case PLUS:
            	            		case REAL_NUMBER:
            	            		case QUOTED_STRING:
            	            		case BINDVAR:
            	            		case 127:
            	            		case 128:
            	            		case 129:
            	            		case 130:
            	            		case 157:
            	            		case 163:
            	            		case 169:
            	            		case 184:
            	            		case 190:
            	            		case 194:
            	            		case 199:
            	            		case 200:
            	            		case 201:
            	            		case 203:
            	            		case 232:
            	            			{
            	            				alt203=3;
            	            			}
            	            		    break;

            	            		default:
            	            		    if (BACKTRACKING>0)
            	            		    {
            	            		        FAILEDFLAG = ANTLR3_TRUE;
            	            		        return retval;
            	            		    }
            	            		    CONSTRUCTEX();
            	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		    EXCEPTION->message      = (void *)"";
            	            		    EXCEPTION->decisionNum  = 203;
            	            		    EXCEPTION->state        = 3;


            	            		    goto rulecompare_exprEx;
            	            		}

            	            	}
            	                break;
            	            case LEQ:
            	            	{
            	            		alt203=4;
            	            	}
            	                break;
            	            case GTH:
            	            	{
            	            		switch ( LA(2) ) 
            	            		{
            	            		case EQ:
            	            			{
            	            				alt203=6;
            	            			}
            	            		    break;
            	            		case LPAREN:
            	            		case K_OUT:
            	            		case ID:
            	            		case INTEGER:
            	            		case COLON:
            	            		case MINUS:
            	            		case PLUS:
            	            		case REAL_NUMBER:
            	            		case QUOTED_STRING:
            	            		case BINDVAR:
            	            		case 127:
            	            		case 128:
            	            		case 129:
            	            		case 130:
            	            		case 157:
            	            		case 163:
            	            		case 169:
            	            		case 184:
            	            		case 190:
            	            		case 194:
            	            		case 199:
            	            		case 200:
            	            		case 201:
            	            		case 203:
            	            		case 232:
            	            			{
            	            				alt203=5;
            	            			}
            	            		    break;

            	            		default:
            	            		    if (BACKTRACKING>0)
            	            		    {
            	            		        FAILEDFLAG = ANTLR3_TRUE;
            	            		        return retval;
            	            		    }
            	            		    CONSTRUCTEX();
            	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	            		    EXCEPTION->message      = (void *)"";
            	            		    EXCEPTION->decisionNum  = 203;
            	            		    EXCEPTION->state        = 5;


            	            		    goto rulecompare_exprEx;
            	            		}

            	            	}
            	                break;
            	            case GEQ:
            	            	{
            	            		alt203=6;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 203;
            	                EXCEPTION->state        = 0;


            	                goto rulecompare_exprEx;
            	            }

            	            switch (alt203) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:755:24: EQ
            	        	    {
            	        	        EQ646 = (pANTLR3_COMMON_TOKEN) MATCHT(EQ, &FOLLOW_EQ_in_compare_expr6363); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecompare_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        EQ646_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, EQ646));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, EQ646_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:755:29: not_equal
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_not_equal_in_compare_expr6367);
            	        	        not_equal647=not_equal(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecompare_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, not_equal647.tree);

            	        	    }
            	        	    break;
            	        	case 3:
            	        	    // OraclePLSQL.g:755:41: LTH
            	        	    {
            	        	        LTH648 = (pANTLR3_COMMON_TOKEN) MATCHT(LTH, &FOLLOW_LTH_in_compare_expr6371); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecompare_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        LTH648_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LTH648));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, LTH648_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 4:
            	        	    // OraclePLSQL.g:755:47: leq
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_leq_in_compare_expr6375);
            	        	        leq649=leq(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecompare_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, leq649.tree);

            	        	    }
            	        	    break;
            	        	case 5:
            	        	    // OraclePLSQL.g:755:53: GTH
            	        	    {
            	        	        GTH650 = (pANTLR3_COMMON_TOKEN) MATCHT(GTH, &FOLLOW_GTH_in_compare_expr6379); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecompare_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        GTH650_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, GTH650));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, GTH650_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 6:
            	        	    // OraclePLSQL.g:755:59: geq
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_geq_in_compare_expr6383);
            	        	        geq651=geq(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecompare_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, geq651.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_is_null_expr_in_compare_expr6387);
            	        is_null_expr652=is_null_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecompare_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, is_null_expr652.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecompare_exprEx; /* Prevent compiler warnings */
    rulecompare_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(117, compare_expr_StartIndex); }

    return retval;
}
/* $ANTLR end compare_expr */

/** 
 * $ANTLR start is_null_expr
 * OraclePLSQL.g:758:1: is_null_expr : like_expr ( k_is ( k_not )? k_null )? ;
 */
static OraclePLSQLParser_is_null_expr_return
is_null_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_is_null_expr_return retval;
    ANTLR3_UINT32 is_null_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_like_expr_return like_expr653;
    #undef	RETURN_TYPE_like_expr653
    #define	RETURN_TYPE_like_expr653 OraclePLSQLParser_like_expr_return

    OraclePLSQLParser_k_is_return k_is654;
    #undef	RETURN_TYPE_k_is654
    #define	RETURN_TYPE_k_is654 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_not_return k_not655;
    #undef	RETURN_TYPE_k_not655
    #define	RETURN_TYPE_k_not655 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_null_return k_null656;
    #undef	RETURN_TYPE_k_null656
    #define	RETURN_TYPE_k_null656 OraclePLSQLParser_k_null_return


    /* Initialize rule variables
     */
    is_null_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(118)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    like_expr653.tree = NULL;
    k_is654.tree = NULL;
    k_not655.tree = NULL;
    k_null656.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:759:5: ( like_expr ( k_is ( k_not )? k_null )? )
        // OraclePLSQL.g:759:7: like_expr ( k_is ( k_not )? k_null )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_like_expr_in_is_null_expr6415);
            like_expr653=like_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleis_null_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, like_expr653.tree);

            // OraclePLSQL.g:759:17: ( k_is ( k_not )? k_null )?
            {
                int alt206=2;
                switch ( LA(1) ) 
                {
                    case 178:
                    	{
                    		alt206=1;
                    	}
                        break;
                }

                switch (alt206) 
                {
            	case 1:
            	    // OraclePLSQL.g:759:19: k_is ( k_not )? k_null
            	    {
            	        FOLLOWPUSH(FOLLOW_k_is_in_is_null_expr6419);
            	        k_is654=k_is(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleis_null_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is654.tree);

            	        // OraclePLSQL.g:759:24: ( k_not )?
            	        {
            	            int alt205=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 183:
            	                	{
            	                		alt205=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt205) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: k_not
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_not_in_is_null_expr6421);
            	        	        k_not655=k_not(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto ruleis_null_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not655.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_null_in_is_null_expr6424);
            	        k_null656=k_null(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleis_null_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null656.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleis_null_exprEx; /* Prevent compiler warnings */
    ruleis_null_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(118, is_null_expr_StartIndex); }

    return retval;
}
/* $ANTLR end is_null_expr */

/** 
 * $ANTLR start like_expr
 * OraclePLSQL.g:762:1: like_expr : between_expr ( ( k_not )? k_like between_expr ( k_escape quoted_string )? )? ;
 */
static OraclePLSQLParser_like_expr_return
like_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_like_expr_return retval;
    ANTLR3_UINT32 like_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_between_expr_return between_expr657;
    #undef	RETURN_TYPE_between_expr657
    #define	RETURN_TYPE_between_expr657 OraclePLSQLParser_between_expr_return

    OraclePLSQLParser_k_not_return k_not658;
    #undef	RETURN_TYPE_k_not658
    #define	RETURN_TYPE_k_not658 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_like_return k_like659;
    #undef	RETURN_TYPE_k_like659
    #define	RETURN_TYPE_k_like659 OraclePLSQLParser_k_like_return

    OraclePLSQLParser_between_expr_return between_expr660;
    #undef	RETURN_TYPE_between_expr660
    #define	RETURN_TYPE_between_expr660 OraclePLSQLParser_between_expr_return

    OraclePLSQLParser_k_escape_return k_escape661;
    #undef	RETURN_TYPE_k_escape661
    #define	RETURN_TYPE_k_escape661 OraclePLSQLParser_k_escape_return

    OraclePLSQLParser_quoted_string_return quoted_string662;
    #undef	RETURN_TYPE_quoted_string662
    #define	RETURN_TYPE_quoted_string662 OraclePLSQLParser_quoted_string_return


    /* Initialize rule variables
     */
    like_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(119)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    between_expr657.tree = NULL;
    k_not658.tree = NULL;
    k_like659.tree = NULL;
    between_expr660.tree = NULL;
    k_escape661.tree = NULL;
    quoted_string662.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:763:5: ( between_expr ( ( k_not )? k_like between_expr ( k_escape quoted_string )? )? )
        // OraclePLSQL.g:763:7: between_expr ( ( k_not )? k_like between_expr ( k_escape quoted_string )? )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_between_expr_in_like_expr6443);
            between_expr657=between_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulelike_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, between_expr657.tree);

            // OraclePLSQL.g:763:20: ( ( k_not )? k_like between_expr ( k_escape quoted_string )? )?
            {
                int alt209=2;
                switch ( LA(1) ) 
                {
                    case 179:
                    case 183:
                    	{
                    		alt209=1;
                    	}
                        break;
                }

                switch (alt209) 
                {
            	case 1:
            	    // OraclePLSQL.g:763:22: ( k_not )? k_like between_expr ( k_escape quoted_string )?
            	    {

            	        // OraclePLSQL.g:763:22: ( k_not )?
            	        {
            	            int alt207=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 183:
            	                	{
            	                		alt207=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt207) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: k_not
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_not_in_like_expr6447);
            	        	        k_not658=k_not(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulelike_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not658.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_like_in_like_expr6450);
            	        k_like659=k_like(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulelike_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_like659.tree);
            	        FOLLOWPUSH(FOLLOW_between_expr_in_like_expr6452);
            	        between_expr660=between_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulelike_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, between_expr660.tree);

            	        // OraclePLSQL.g:763:49: ( k_escape quoted_string )?
            	        {
            	            int alt208=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 211:
            	                	{
            	                		alt208=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt208) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:763:51: k_escape quoted_string
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_escape_in_like_expr6456);
            	        	        k_escape661=k_escape(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulelike_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_escape661.tree);
            	        	        FOLLOWPUSH(FOLLOW_quoted_string_in_like_expr6458);
            	        	        quoted_string662=quoted_string(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulelike_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, quoted_string662.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulelike_exprEx; /* Prevent compiler warnings */
    rulelike_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(119, like_expr_StartIndex); }

    return retval;
}
/* $ANTLR end like_expr */

/** 
 * $ANTLR start between_expr
 * OraclePLSQL.g:766:1: between_expr : in_expr ( ( k_not )? k_between in_expr k_and in_expr )? ;
 */
static OraclePLSQLParser_between_expr_return
between_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_between_expr_return retval;
    ANTLR3_UINT32 between_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_in_expr_return in_expr663;
    #undef	RETURN_TYPE_in_expr663
    #define	RETURN_TYPE_in_expr663 OraclePLSQLParser_in_expr_return

    OraclePLSQLParser_k_not_return k_not664;
    #undef	RETURN_TYPE_k_not664
    #define	RETURN_TYPE_k_not664 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_k_between_return k_between665;
    #undef	RETURN_TYPE_k_between665
    #define	RETURN_TYPE_k_between665 OraclePLSQLParser_k_between_return

    OraclePLSQLParser_in_expr_return in_expr666;
    #undef	RETURN_TYPE_in_expr666
    #define	RETURN_TYPE_in_expr666 OraclePLSQLParser_in_expr_return

    OraclePLSQLParser_k_and_return k_and667;
    #undef	RETURN_TYPE_k_and667
    #define	RETURN_TYPE_k_and667 OraclePLSQLParser_k_and_return

    OraclePLSQLParser_in_expr_return in_expr668;
    #undef	RETURN_TYPE_in_expr668
    #define	RETURN_TYPE_in_expr668 OraclePLSQLParser_in_expr_return


    /* Initialize rule variables
     */
    between_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(120)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    in_expr663.tree = NULL;
    k_not664.tree = NULL;
    k_between665.tree = NULL;
    in_expr666.tree = NULL;
    k_and667.tree = NULL;
    in_expr668.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:767:5: ( in_expr ( ( k_not )? k_between in_expr k_and in_expr )? )
        // OraclePLSQL.g:767:7: in_expr ( ( k_not )? k_between in_expr k_and in_expr )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_in_expr_in_between_expr6489);
            in_expr663=in_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulebetween_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, in_expr663.tree);

            // OraclePLSQL.g:767:15: ( ( k_not )? k_between in_expr k_and in_expr )?
            {
                int alt211=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case 153:
                    		    	{
                    		    		alt211=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                    case 153:
                    	{
                    		alt211=1;
                    	}
                        break;
                }

                switch (alt211) 
                {
            	case 1:
            	    // OraclePLSQL.g:767:17: ( k_not )? k_between in_expr k_and in_expr
            	    {

            	        // OraclePLSQL.g:767:17: ( k_not )?
            	        {
            	            int alt210=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 183:
            	                	{
            	                		alt210=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt210) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: k_not
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_not_in_between_expr6493);
            	        	        k_not664=k_not(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulebetween_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not664.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_between_in_between_expr6496);
            	        k_between665=k_between(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebetween_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_between665.tree);
            	        FOLLOWPUSH(FOLLOW_in_expr_in_between_expr6498);
            	        in_expr666=in_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebetween_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, in_expr666.tree);
            	        FOLLOWPUSH(FOLLOW_k_and_in_between_expr6500);
            	        k_and667=k_and(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebetween_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_and667.tree);
            	        FOLLOWPUSH(FOLLOW_in_expr_in_between_expr6502);
            	        in_expr668=in_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulebetween_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, in_expr668.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulebetween_exprEx; /* Prevent compiler warnings */
    rulebetween_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(120, between_expr_StartIndex); }

    return retval;
}
/* $ANTLR end between_expr */

/** 
 * $ANTLR start in_expr
 * OraclePLSQL.g:770:1: in_expr : add_expr ( ( k_not )? K_IN LPAREN add_expr ( COMMA add_expr )* RPAREN )? ;
 */
static OraclePLSQLParser_in_expr_return
in_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_in_expr_return retval;
    ANTLR3_UINT32 in_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    K_IN671;
    pANTLR3_COMMON_TOKEN    LPAREN672;
    pANTLR3_COMMON_TOKEN    COMMA674;
    pANTLR3_COMMON_TOKEN    RPAREN676;
    OraclePLSQLParser_add_expr_return add_expr669;
    #undef	RETURN_TYPE_add_expr669
    #define	RETURN_TYPE_add_expr669 OraclePLSQLParser_add_expr_return

    OraclePLSQLParser_k_not_return k_not670;
    #undef	RETURN_TYPE_k_not670
    #define	RETURN_TYPE_k_not670 OraclePLSQLParser_k_not_return

    OraclePLSQLParser_add_expr_return add_expr673;
    #undef	RETURN_TYPE_add_expr673
    #define	RETURN_TYPE_add_expr673 OraclePLSQLParser_add_expr_return

    OraclePLSQLParser_add_expr_return add_expr675;
    #undef	RETURN_TYPE_add_expr675
    #define	RETURN_TYPE_add_expr675 OraclePLSQLParser_add_expr_return

    pANTLR3_BASE_TREE K_IN671_tree;
    pANTLR3_BASE_TREE LPAREN672_tree;
    pANTLR3_BASE_TREE COMMA674_tree;
    pANTLR3_BASE_TREE RPAREN676_tree;

    /* Initialize rule variables
     */
    in_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(121)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    K_IN671       = NULL;
    LPAREN672       = NULL;
    COMMA674       = NULL;
    RPAREN676       = NULL;
    add_expr669.tree = NULL;
    k_not670.tree = NULL;
    add_expr673.tree = NULL;
    add_expr675.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    K_IN671_tree   = NULL;
    LPAREN672_tree   = NULL;
    COMMA674_tree   = NULL;
    RPAREN676_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:771:5: ( add_expr ( ( k_not )? K_IN LPAREN add_expr ( COMMA add_expr )* RPAREN )? )
        // OraclePLSQL.g:771:7: add_expr ( ( k_not )? K_IN LPAREN add_expr ( COMMA add_expr )* RPAREN )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_add_expr_in_in_expr6522);
            add_expr669=add_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulein_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, add_expr669.tree);

            // OraclePLSQL.g:771:16: ( ( k_not )? K_IN LPAREN add_expr ( COMMA add_expr )* RPAREN )?
            {
                int alt214=2;
                switch ( LA(1) ) 
                {
                    case 183:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case K_IN:
                    		    	{
                    		    		alt214=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                    case K_IN:
                    	{
                    		alt214=1;
                    	}
                        break;
                }

                switch (alt214) 
                {
            	case 1:
            	    // OraclePLSQL.g:771:18: ( k_not )? K_IN LPAREN add_expr ( COMMA add_expr )* RPAREN
            	    {

            	        // OraclePLSQL.g:771:18: ( k_not )?
            	        {
            	            int alt212=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 183:
            	                	{
            	                		alt212=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt212) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: k_not
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_not_in_in_expr6526);
            	        	        k_not670=k_not(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulein_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_not670.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        K_IN671 = (pANTLR3_COMMON_TOKEN) MATCHT(K_IN, &FOLLOW_K_IN_in_in_expr6529); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulein_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        K_IN671_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, K_IN671));
            	        ADAPTOR->addChild(ADAPTOR, root_0, K_IN671_tree);
            	        }
            	        LPAREN672 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_in_expr6531); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulein_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        LPAREN672_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN672));
            	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN672_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_add_expr_in_in_expr6533);
            	        add_expr673=add_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulein_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, add_expr673.tree);

            	        // OraclePLSQL.g:771:46: ( COMMA add_expr )*

            	        for (;;)
            	        {
            	            int alt213=2;
            	            switch ( LA(1) ) 
            	            {
            	            case COMMA:
            	            	{
            	            		alt213=1;
            	            	}
            	                break;

            	            }

            	            switch (alt213) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:771:48: COMMA add_expr
            	        	    {
            	        	        COMMA674 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_in_expr6537); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulein_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        COMMA674_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA674));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA674_tree);
            	        	        }
            	        	        FOLLOWPUSH(FOLLOW_add_expr_in_in_expr6539);
            	        	        add_expr675=add_expr(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulein_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, add_expr675.tree);

            	        	    }
            	        	    break;

            	        	default:
            	        	    goto loop213;	/* break out of the loop */
            	        	    break;
            	            }
            	        }
            	        loop213: ; /* Jump out to here if this rule does not match */

            	        RPAREN676 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_in_expr6544); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulein_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        RPAREN676_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN676));
            	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN676_tree);
            	        }

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulein_exprEx; /* Prevent compiler warnings */
    rulein_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(121, in_expr_StartIndex); }

    return retval;
}
/* $ANTLR end in_expr */

/** 
 * $ANTLR start numeric_expression
 * OraclePLSQL.g:774:1: numeric_expression : add_expr ;
 */
static OraclePLSQLParser_numeric_expression_return
numeric_expression(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_numeric_expression_return retval;
    ANTLR3_UINT32 numeric_expression_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_add_expr_return add_expr677;
    #undef	RETURN_TYPE_add_expr677
    #define	RETURN_TYPE_add_expr677 OraclePLSQLParser_add_expr_return


    /* Initialize rule variables
     */
    numeric_expression_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(122)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    add_expr677.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:775:5: ( add_expr )
        // OraclePLSQL.g:775:7: add_expr
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_add_expr_in_numeric_expression6564);
            add_expr677=add_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenumeric_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, add_expr677.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenumeric_expressionEx; /* Prevent compiler warnings */
    rulenumeric_expressionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(122, numeric_expression_StartIndex); }

    return retval;
}
/* $ANTLR end numeric_expression */

/** 
 * $ANTLR start add_expr
 * OraclePLSQL.g:778:1: add_expr : mul_expr ( ( MINUS | PLUS | DOUBLEVERTBAR ) mul_expr )* ;
 */
static OraclePLSQLParser_add_expr_return
add_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_add_expr_return retval;
    ANTLR3_UINT32 add_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    set679;
    OraclePLSQLParser_mul_expr_return mul_expr678;
    #undef	RETURN_TYPE_mul_expr678
    #define	RETURN_TYPE_mul_expr678 OraclePLSQLParser_mul_expr_return

    OraclePLSQLParser_mul_expr_return mul_expr680;
    #undef	RETURN_TYPE_mul_expr680
    #define	RETURN_TYPE_mul_expr680 OraclePLSQLParser_mul_expr_return

    pANTLR3_BASE_TREE set679_tree;

    /* Initialize rule variables
     */
    add_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(123)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    set679       = NULL;
    mul_expr678.tree = NULL;
    mul_expr680.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    set679_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:779:5: ( mul_expr ( ( MINUS | PLUS | DOUBLEVERTBAR ) mul_expr )* )
        // OraclePLSQL.g:779:7: mul_expr ( ( MINUS | PLUS | DOUBLEVERTBAR ) mul_expr )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_mul_expr_in_add_expr6581);
            mul_expr678=mul_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleadd_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, mul_expr678.tree);

            // OraclePLSQL.g:779:16: ( ( MINUS | PLUS | DOUBLEVERTBAR ) mul_expr )*

            for (;;)
            {
                int alt215=2;
                switch ( LA(1) ) 
                {
                case MINUS:
                case PLUS:
                case DOUBLEVERTBAR:
                	{
                		alt215=1;
                	}
                    break;

                }

                switch (alt215) 
                {
            	case 1:
            	    // OraclePLSQL.g:779:18: ( MINUS | PLUS | DOUBLEVERTBAR ) mul_expr
            	    {
            	        set679=(pANTLR3_COMMON_TOKEN)LT(1);
            	        if ( ((LA(1) >= MINUS) && (LA(1) <= DOUBLEVERTBAR)) )
            	        {
            	            CONSUME();
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set679)));
            	            PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	        }
            	        else 
            	        {
            	            if (BACKTRACKING>0)
            	            {
            	                FAILEDFLAG = ANTLR3_TRUE;
            	                return retval;
            	            }
            	            CONSTRUCTEX();
            	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	            EXCEPTION->expectingSet = &FOLLOW_set_in_add_expr6585;
            	            RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_add_expr6585);    goto ruleadd_exprEx;
            	        }

            	        FOLLOWPUSH(FOLLOW_mul_expr_in_add_expr6599);
            	        mul_expr680=mul_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleadd_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, mul_expr680.tree);

            	    }
            	    break;

            	default:
            	    goto loop215;	/* break out of the loop */
            	    break;
                }
            }
            loop215: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleadd_exprEx; /* Prevent compiler warnings */
    ruleadd_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(123, add_expr_StartIndex); }

    return retval;
}
/* $ANTLR end add_expr */

/** 
 * $ANTLR start mul_expr
 * OraclePLSQL.g:782:1: mul_expr : unary_sign_expr ( ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr )* ;
 */
static OraclePLSQLParser_mul_expr_return
mul_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_mul_expr_return retval;
    ANTLR3_UINT32 mul_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ASTERISK682;
    pANTLR3_COMMON_TOKEN    DIVIDE683;
    OraclePLSQLParser_unary_sign_expr_return unary_sign_expr681;
    #undef	RETURN_TYPE_unary_sign_expr681
    #define	RETURN_TYPE_unary_sign_expr681 OraclePLSQLParser_unary_sign_expr_return

    OraclePLSQLParser_kMOD_return kMOD684;
    #undef	RETURN_TYPE_kMOD684
    #define	RETURN_TYPE_kMOD684 OraclePLSQLParser_kMOD_return

    OraclePLSQLParser_unary_sign_expr_return unary_sign_expr685;
    #undef	RETURN_TYPE_unary_sign_expr685
    #define	RETURN_TYPE_unary_sign_expr685 OraclePLSQLParser_unary_sign_expr_return

    pANTLR3_BASE_TREE ASTERISK682_tree;
    pANTLR3_BASE_TREE DIVIDE683_tree;

    /* Initialize rule variables
     */
    mul_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(124)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ASTERISK682       = NULL;
    DIVIDE683       = NULL;
    unary_sign_expr681.tree = NULL;
    kMOD684.tree = NULL;
    unary_sign_expr685.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ASTERISK682_tree   = NULL;
    DIVIDE683_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:783:5: ( unary_sign_expr ( ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr )* )
        // OraclePLSQL.g:783:7: unary_sign_expr ( ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr )*
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_unary_sign_expr_in_mul_expr6619);
            unary_sign_expr681=unary_sign_expr(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulemul_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, unary_sign_expr681.tree);

            // OraclePLSQL.g:783:23: ( ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr )*

            for (;;)
            {
                int alt217=2;
                switch ( LA(1) ) 
                {
                case ID:
                	{
                		switch ( LA(2) ) 
                		{
                		case ID:
                			{
                				switch ( LA(3) ) 
                				{
                				case 161:
                					{
                						{
                						   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                						    */
                						    int LA217_5 = LA(4);
                						    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                						    {
                						        alt217=1;
                						    }

                						}
                					}
                				    break;
                				case 133:
                					{
                						switch ( LA(4) ) 
                						{
                						case T_UNKNOWN:
                						case T_RESERVED:
                						case T_SCHEMA_NAME:
                						case T_TRIGGER_NAME:
                						case T_PACKAGE_NAME:
                						case T_FUNCTION_NAME:
                						case T_PROCEDURE_NAME:
                						case T_PARAMETER_NAME:
                						case T_BINDVAR_NAME:
                						case T_VARIABLE_NAME:
                						case T_DATATYPE_NAME:
                						case T_CURSOR_NAME:
                						case T_TABLE_NAME:
                						case T_COLUMN_NAME:
                						case T_OBJECT_NAME:
                						case T_LABEL_NAME:
                						case T_EXCEPTION_NAME:
                						case T_DBLINK_NAME:
                						case T_DECL:
                						case T_USE:
                						case T_USEL:
                						case T_TYPE_DECL:
                						case T_SUBTYPE_DECL:
                						case T_CURSOR_DECL:
                						case T_VAR_DECL:
                						case T_CONST_DECL:
                						case T_EXC_DECL:
                						case T_FUNCTION_DECL:
                						case T_PROCEDURE_DECL:
                						case T_PRAGMA_DECL:
                						case T_DECL_BLOCK:
                						case T_BLOCK_BLOCK:
                						case T_PROCEDURE_BLOCK:
                						case T_FUNCTION_BLOCK:
                						case T_DECLARE_BLOCK:
                						case T_BEGIN_BLOCK:
                						case T_EXCEPTIONS_BLOCK:
                						case T_COMMIT:
                						case T_DELETE:
                						case T_INSERT:
                						case T_LOCK_TABLE:
                						case T_MERGE:
                						case T_ROLLBACK:
                						case T_SAVEPOINT:
                						case T_SELECT:
                						case T_SET_TRANSACTION:
                						case T_UPDATE:
                						case T_EXECUTE_IMMEDIATE:
                						case T_CASE:
                						case T_OPEN:
                						case T_CLOSE:
                						case T_CONTINUE:
                						case T_PIPE:
                						case T_GOTO:
                						case T_EXIT:
                						case T_RETURN:
                						case T_DECLARE:
                						case T_RAISE:
                						case T_FETCH:
                						case T_LOOP:
                						case T_WHILE:
                						case T_NULL_STAT:
                						case T_FOR:
                						case T_FORALL:
                						case T_IF:
                						case T_ELSIF:
                						case T_ELSE:
                						case T_ENDIF:
                						case T_ASSIGN:
                						case T_CALL:
                						case T_DECLARATION:
                						case T_STATEMENT:
                						case DIVIDE:
                						case LPAREN:
                						case COMMA:
                						case RPAREN:
                						case K_IN:
                						case K_OUT:
                						case ASSIGN:
                						case ID:
                						case INTEGER:
                						case DOT:
                						case K_USING:
                						case DOUBLEDOT:
                						case LLABEL:
                						case RLABEL:
                						case COLON:
                						case AT_SIGN:
                						case EQ:
                						case LTH:
                						case GTH:
                						case MINUS:
                						case PLUS:
                						case DOUBLEVERTBAR:
                						case ASTERISK:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case ARROW:
                						case QSTRING:
                						case QS_ANGLE:
                						case QS_BRACE:
                						case QS_BRACK:
                						case QS_PAREN:
                						case QS_OTHER:
                						case QUOTE:
                						case QS_OTHER_CH:
                						case BINDVAR:
                						case DOUBLEQUOTED_STRING:
                						case NUM:
                						case POINT:
                						case RBRACK:
                						case LBRACK:
                						case PERCENT:
                						case VERTBAR:
                						case NOT_EQ:
                						case LEQ:
                						case GEQ:
                						case NUMBER_VALUE:
                						case WS:
                						case SL_COMMENT:
                						case ML_COMMENT:
                						case 126:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 131:
                						case 132:
                						case 133:
                						case 134:
                						case 135:
                						case 136:
                						case 137:
                						case 138:
                						case 139:
                						case 140:
                						case 141:
                						case 142:
                						case 143:
                						case 144:
                						case 145:
                						case 146:
                						case 147:
                						case 148:
                						case 149:
                						case 150:
                						case 151:
                						case 152:
                						case 153:
                						case 154:
                						case 155:
                						case 156:
                						case 157:
                						case 158:
                						case 159:
                						case 160:
                						case 161:
                						case 162:
                						case 163:
                						case 164:
                						case 165:
                						case 166:
                						case 167:
                						case 168:
                						case 169:
                						case 170:
                						case 171:
                						case 172:
                						case 173:
                						case 174:
                						case 175:
                						case 176:
                						case 177:
                						case 178:
                						case 179:
                						case 180:
                						case 181:
                						case 182:
                						case 183:
                						case 184:
                						case 185:
                						case 186:
                						case 187:
                						case 188:
                						case 189:
                						case 190:
                						case 191:
                						case 192:
                						case 193:
                						case 194:
                						case 195:
                						case 196:
                						case 197:
                						case 198:
                						case 199:
                						case 200:
                						case 201:
                						case 202:
                						case 203:
                						case 204:
                						case 205:
                						case 206:
                						case 207:
                						case 208:
                						case 209:
                						case 210:
                						case 211:
                						case 212:
                						case 213:
                						case 214:
                						case 215:
                						case 216:
                						case 217:
                						case 218:
                						case 219:
                						case 220:
                						case 221:
                						case 222:
                						case 223:
                						case 224:
                						case 225:
                						case 226:
                						case 227:
                						case 228:
                						case 229:
                						case 230:
                						case 231:
                						case 232:
                						case 233:
                						case 234:
                						case 235:
                						case 236:
                						case 237:
                						case 238:
                						case 239:
                						case 240:
                						case 241:
                						case 242:
                						case 243:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_17 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case 176:
                					{
                						switch ( LA(4) ) 
                						{
                						case T_UNKNOWN:
                						case T_RESERVED:
                						case T_SCHEMA_NAME:
                						case T_TRIGGER_NAME:
                						case T_PACKAGE_NAME:
                						case T_FUNCTION_NAME:
                						case T_PROCEDURE_NAME:
                						case T_PARAMETER_NAME:
                						case T_BINDVAR_NAME:
                						case T_VARIABLE_NAME:
                						case T_DATATYPE_NAME:
                						case T_CURSOR_NAME:
                						case T_TABLE_NAME:
                						case T_COLUMN_NAME:
                						case T_OBJECT_NAME:
                						case T_LABEL_NAME:
                						case T_EXCEPTION_NAME:
                						case T_DBLINK_NAME:
                						case T_DECL:
                						case T_USE:
                						case T_USEL:
                						case T_TYPE_DECL:
                						case T_SUBTYPE_DECL:
                						case T_CURSOR_DECL:
                						case T_VAR_DECL:
                						case T_CONST_DECL:
                						case T_EXC_DECL:
                						case T_FUNCTION_DECL:
                						case T_PROCEDURE_DECL:
                						case T_PRAGMA_DECL:
                						case T_DECL_BLOCK:
                						case T_BLOCK_BLOCK:
                						case T_PROCEDURE_BLOCK:
                						case T_FUNCTION_BLOCK:
                						case T_DECLARE_BLOCK:
                						case T_BEGIN_BLOCK:
                						case T_EXCEPTIONS_BLOCK:
                						case T_COMMIT:
                						case T_DELETE:
                						case T_INSERT:
                						case T_LOCK_TABLE:
                						case T_MERGE:
                						case T_ROLLBACK:
                						case T_SAVEPOINT:
                						case T_SELECT:
                						case T_SET_TRANSACTION:
                						case T_UPDATE:
                						case T_EXECUTE_IMMEDIATE:
                						case T_CASE:
                						case T_OPEN:
                						case T_CLOSE:
                						case T_CONTINUE:
                						case T_PIPE:
                						case T_GOTO:
                						case T_EXIT:
                						case T_RETURN:
                						case T_DECLARE:
                						case T_RAISE:
                						case T_FETCH:
                						case T_LOOP:
                						case T_WHILE:
                						case T_NULL_STAT:
                						case T_FOR:
                						case T_FORALL:
                						case T_IF:
                						case T_ELSIF:
                						case T_ELSE:
                						case T_ENDIF:
                						case T_ASSIGN:
                						case T_CALL:
                						case T_DECLARATION:
                						case T_STATEMENT:
                						case DIVIDE:
                						case LPAREN:
                						case COMMA:
                						case RPAREN:
                						case K_IN:
                						case K_OUT:
                						case ASSIGN:
                						case ID:
                						case INTEGER:
                						case DOT:
                						case K_USING:
                						case DOUBLEDOT:
                						case LLABEL:
                						case RLABEL:
                						case COLON:
                						case AT_SIGN:
                						case EQ:
                						case LTH:
                						case GTH:
                						case MINUS:
                						case PLUS:
                						case DOUBLEVERTBAR:
                						case ASTERISK:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case ARROW:
                						case QSTRING:
                						case QS_ANGLE:
                						case QS_BRACE:
                						case QS_BRACK:
                						case QS_PAREN:
                						case QS_OTHER:
                						case QUOTE:
                						case QS_OTHER_CH:
                						case BINDVAR:
                						case DOUBLEQUOTED_STRING:
                						case NUM:
                						case POINT:
                						case RBRACK:
                						case LBRACK:
                						case PERCENT:
                						case VERTBAR:
                						case NOT_EQ:
                						case LEQ:
                						case GEQ:
                						case NUMBER_VALUE:
                						case WS:
                						case SL_COMMENT:
                						case ML_COMMENT:
                						case 126:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 131:
                						case 132:
                						case 133:
                						case 134:
                						case 135:
                						case 136:
                						case 137:
                						case 138:
                						case 139:
                						case 140:
                						case 141:
                						case 142:
                						case 143:
                						case 144:
                						case 145:
                						case 146:
                						case 147:
                						case 148:
                						case 149:
                						case 150:
                						case 151:
                						case 152:
                						case 153:
                						case 154:
                						case 155:
                						case 156:
                						case 157:
                						case 158:
                						case 159:
                						case 160:
                						case 161:
                						case 162:
                						case 163:
                						case 164:
                						case 165:
                						case 166:
                						case 167:
                						case 168:
                						case 169:
                						case 170:
                						case 171:
                						case 172:
                						case 173:
                						case 174:
                						case 175:
                						case 176:
                						case 177:
                						case 178:
                						case 179:
                						case 180:
                						case 181:
                						case 182:
                						case 183:
                						case 184:
                						case 185:
                						case 186:
                						case 187:
                						case 188:
                						case 189:
                						case 190:
                						case 191:
                						case 192:
                						case 193:
                						case 194:
                						case 195:
                						case 196:
                						case 197:
                						case 198:
                						case 199:
                						case 200:
                						case 201:
                						case 202:
                						case 203:
                						case 204:
                						case 205:
                						case 206:
                						case 207:
                						case 208:
                						case 209:
                						case 210:
                						case 211:
                						case 212:
                						case 213:
                						case 214:
                						case 215:
                						case 216:
                						case 217:
                						case 218:
                						case 219:
                						case 220:
                						case 221:
                						case 222:
                						case 223:
                						case 224:
                						case 225:
                						case 226:
                						case 227:
                						case 228:
                						case 229:
                						case 230:
                						case 231:
                						case 232:
                						case 233:
                						case 234:
                						case 235:
                						case 236:
                						case 237:
                						case 238:
                						case 239:
                						case 240:
                						case 241:
                						case 242:
                						case 243:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_18 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case 181:
                					{
                						switch ( LA(4) ) 
                						{
                						case 191:
                							{
                								switch ( LA(5) ) 
                								{
                								case T_UNKNOWN:
                								case T_RESERVED:
                								case T_SCHEMA_NAME:
                								case T_TRIGGER_NAME:
                								case T_PACKAGE_NAME:
                								case T_FUNCTION_NAME:
                								case T_PROCEDURE_NAME:
                								case T_PARAMETER_NAME:
                								case T_BINDVAR_NAME:
                								case T_VARIABLE_NAME:
                								case T_DATATYPE_NAME:
                								case T_CURSOR_NAME:
                								case T_TABLE_NAME:
                								case T_COLUMN_NAME:
                								case T_OBJECT_NAME:
                								case T_LABEL_NAME:
                								case T_EXCEPTION_NAME:
                								case T_DBLINK_NAME:
                								case T_DECL:
                								case T_USE:
                								case T_USEL:
                								case T_TYPE_DECL:
                								case T_SUBTYPE_DECL:
                								case T_CURSOR_DECL:
                								case T_VAR_DECL:
                								case T_CONST_DECL:
                								case T_EXC_DECL:
                								case T_FUNCTION_DECL:
                								case T_PROCEDURE_DECL:
                								case T_PRAGMA_DECL:
                								case T_DECL_BLOCK:
                								case T_BLOCK_BLOCK:
                								case T_PROCEDURE_BLOCK:
                								case T_FUNCTION_BLOCK:
                								case T_DECLARE_BLOCK:
                								case T_BEGIN_BLOCK:
                								case T_EXCEPTIONS_BLOCK:
                								case T_COMMIT:
                								case T_DELETE:
                								case T_INSERT:
                								case T_LOCK_TABLE:
                								case T_MERGE:
                								case T_ROLLBACK:
                								case T_SAVEPOINT:
                								case T_SELECT:
                								case T_SET_TRANSACTION:
                								case T_UPDATE:
                								case T_EXECUTE_IMMEDIATE:
                								case T_CASE:
                								case T_OPEN:
                								case T_CLOSE:
                								case T_CONTINUE:
                								case T_PIPE:
                								case T_GOTO:
                								case T_EXIT:
                								case T_RETURN:
                								case T_DECLARE:
                								case T_RAISE:
                								case T_FETCH:
                								case T_LOOP:
                								case T_WHILE:
                								case T_NULL_STAT:
                								case T_FOR:
                								case T_FORALL:
                								case T_IF:
                								case T_ELSIF:
                								case T_ELSE:
                								case T_ENDIF:
                								case T_ASSIGN:
                								case T_CALL:
                								case T_DECLARATION:
                								case T_STATEMENT:
                								case DIVIDE:
                								case LPAREN:
                								case COMMA:
                								case RPAREN:
                								case K_IN:
                								case K_OUT:
                								case ASSIGN:
                								case ID:
                								case INTEGER:
                								case DOT:
                								case K_USING:
                								case DOUBLEDOT:
                								case LLABEL:
                								case RLABEL:
                								case COLON:
                								case AT_SIGN:
                								case EQ:
                								case LTH:
                								case GTH:
                								case MINUS:
                								case PLUS:
                								case DOUBLEVERTBAR:
                								case ASTERISK:
                								case REAL_NUMBER:
                								case QUOTED_STRING:
                								case ARROW:
                								case QSTRING:
                								case QS_ANGLE:
                								case QS_BRACE:
                								case QS_BRACK:
                								case QS_PAREN:
                								case QS_OTHER:
                								case QUOTE:
                								case QS_OTHER_CH:
                								case BINDVAR:
                								case DOUBLEQUOTED_STRING:
                								case NUM:
                								case POINT:
                								case RBRACK:
                								case LBRACK:
                								case PERCENT:
                								case VERTBAR:
                								case NOT_EQ:
                								case LEQ:
                								case GEQ:
                								case NUMBER_VALUE:
                								case WS:
                								case SL_COMMENT:
                								case ML_COMMENT:
                								case 126:
                								case 127:
                								case 128:
                								case 129:
                								case 130:
                								case 131:
                								case 132:
                								case 133:
                								case 134:
                								case 135:
                								case 136:
                								case 137:
                								case 138:
                								case 139:
                								case 140:
                								case 141:
                								case 142:
                								case 143:
                								case 144:
                								case 145:
                								case 146:
                								case 147:
                								case 148:
                								case 149:
                								case 150:
                								case 151:
                								case 152:
                								case 153:
                								case 154:
                								case 155:
                								case 156:
                								case 157:
                								case 158:
                								case 159:
                								case 160:
                								case 161:
                								case 162:
                								case 163:
                								case 164:
                								case 165:
                								case 166:
                								case 167:
                								case 168:
                								case 169:
                								case 170:
                								case 171:
                								case 172:
                								case 173:
                								case 174:
                								case 175:
                								case 176:
                								case 177:
                								case 178:
                								case 179:
                								case 180:
                								case 181:
                								case 182:
                								case 183:
                								case 184:
                								case 185:
                								case 186:
                								case 187:
                								case 188:
                								case 189:
                								case 190:
                								case 191:
                								case 192:
                								case 193:
                								case 194:
                								case 195:
                								case 196:
                								case 197:
                								case 198:
                								case 199:
                								case 200:
                								case 201:
                								case 202:
                								case 203:
                								case 204:
                								case 205:
                								case 206:
                								case 207:
                								case 208:
                								case 209:
                								case 210:
                								case 211:
                								case 212:
                								case 213:
                								case 214:
                								case 215:
                								case 216:
                								case 217:
                								case 218:
                								case 219:
                								case 220:
                								case 221:
                								case 222:
                								case 223:
                								case 224:
                								case 225:
                								case 226:
                								case 227:
                								case 228:
                								case 229:
                								case 230:
                								case 231:
                								case 232:
                								case 233:
                								case 234:
                								case 235:
                								case 236:
                								case 237:
                								case 238:
                								case 239:
                								case 240:
                								case 241:
                								case 242:
                								case 243:
                									{
                										{
                										   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                										    */
                										    int LA217_27 = LA(6);
                										    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                										    {
                										        alt217=1;
                										    }

                										}
                									}
                								    break;

                								}

                							}
                						    break;

                						}

                					}
                				    break;
                				case 187:
                					{
                						{
                						   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                						    */
                						    int LA217_9 = LA(4);
                						    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                						    {
                						        alt217=1;
                						    }

                						}
                					}
                				    break;
                				case 188:
                					{
                						switch ( LA(4) ) 
                						{
                						case ID:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_20 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case LPAREN:
                					{
                						switch ( LA(4) ) 
                						{
                						case 189:
                							{
                								switch ( LA(5) ) 
                								{
                								case T_UNKNOWN:
                								case T_RESERVED:
                								case T_SCHEMA_NAME:
                								case T_TRIGGER_NAME:
                								case T_PACKAGE_NAME:
                								case T_FUNCTION_NAME:
                								case T_PROCEDURE_NAME:
                								case T_PARAMETER_NAME:
                								case T_BINDVAR_NAME:
                								case T_VARIABLE_NAME:
                								case T_DATATYPE_NAME:
                								case T_CURSOR_NAME:
                								case T_TABLE_NAME:
                								case T_COLUMN_NAME:
                								case T_OBJECT_NAME:
                								case T_LABEL_NAME:
                								case T_EXCEPTION_NAME:
                								case T_DBLINK_NAME:
                								case T_DECL:
                								case T_USE:
                								case T_USEL:
                								case T_TYPE_DECL:
                								case T_SUBTYPE_DECL:
                								case T_CURSOR_DECL:
                								case T_VAR_DECL:
                								case T_CONST_DECL:
                								case T_EXC_DECL:
                								case T_FUNCTION_DECL:
                								case T_PROCEDURE_DECL:
                								case T_PRAGMA_DECL:
                								case T_DECL_BLOCK:
                								case T_BLOCK_BLOCK:
                								case T_PROCEDURE_BLOCK:
                								case T_FUNCTION_BLOCK:
                								case T_DECLARE_BLOCK:
                								case T_BEGIN_BLOCK:
                								case T_EXCEPTIONS_BLOCK:
                								case T_COMMIT:
                								case T_DELETE:
                								case T_INSERT:
                								case T_LOCK_TABLE:
                								case T_MERGE:
                								case T_ROLLBACK:
                								case T_SAVEPOINT:
                								case T_SELECT:
                								case T_SET_TRANSACTION:
                								case T_UPDATE:
                								case T_EXECUTE_IMMEDIATE:
                								case T_CASE:
                								case T_OPEN:
                								case T_CLOSE:
                								case T_CONTINUE:
                								case T_PIPE:
                								case T_GOTO:
                								case T_EXIT:
                								case T_RETURN:
                								case T_DECLARE:
                								case T_RAISE:
                								case T_FETCH:
                								case T_LOOP:
                								case T_WHILE:
                								case T_NULL_STAT:
                								case T_FOR:
                								case T_FORALL:
                								case T_IF:
                								case T_ELSIF:
                								case T_ELSE:
                								case T_ENDIF:
                								case T_ASSIGN:
                								case T_CALL:
                								case T_DECLARATION:
                								case T_STATEMENT:
                								case DIVIDE:
                								case LPAREN:
                								case COMMA:
                								case RPAREN:
                								case K_IN:
                								case K_OUT:
                								case ASSIGN:
                								case ID:
                								case INTEGER:
                								case DOT:
                								case K_USING:
                								case DOUBLEDOT:
                								case LLABEL:
                								case RLABEL:
                								case COLON:
                								case AT_SIGN:
                								case EQ:
                								case LTH:
                								case GTH:
                								case MINUS:
                								case PLUS:
                								case DOUBLEVERTBAR:
                								case ASTERISK:
                								case REAL_NUMBER:
                								case QUOTED_STRING:
                								case ARROW:
                								case QSTRING:
                								case QS_ANGLE:
                								case QS_BRACE:
                								case QS_BRACK:
                								case QS_PAREN:
                								case QS_OTHER:
                								case QUOTE:
                								case QS_OTHER_CH:
                								case BINDVAR:
                								case DOUBLEQUOTED_STRING:
                								case NUM:
                								case POINT:
                								case RBRACK:
                								case LBRACK:
                								case PERCENT:
                								case VERTBAR:
                								case NOT_EQ:
                								case LEQ:
                								case GEQ:
                								case NUMBER_VALUE:
                								case WS:
                								case SL_COMMENT:
                								case ML_COMMENT:
                								case 126:
                								case 127:
                								case 128:
                								case 129:
                								case 130:
                								case 131:
                								case 132:
                								case 133:
                								case 134:
                								case 135:
                								case 136:
                								case 137:
                								case 138:
                								case 139:
                								case 140:
                								case 141:
                								case 142:
                								case 143:
                								case 144:
                								case 145:
                								case 146:
                								case 147:
                								case 148:
                								case 149:
                								case 150:
                								case 151:
                								case 152:
                								case 153:
                								case 154:
                								case 155:
                								case 156:
                								case 157:
                								case 158:
                								case 159:
                								case 160:
                								case 161:
                								case 162:
                								case 163:
                								case 164:
                								case 165:
                								case 166:
                								case 167:
                								case 168:
                								case 169:
                								case 170:
                								case 171:
                								case 172:
                								case 173:
                								case 174:
                								case 175:
                								case 176:
                								case 177:
                								case 178:
                								case 179:
                								case 180:
                								case 181:
                								case 182:
                								case 183:
                								case 184:
                								case 185:
                								case 186:
                								case 187:
                								case 188:
                								case 189:
                								case 190:
                								case 191:
                								case 192:
                								case 193:
                								case 194:
                								case 195:
                								case 196:
                								case 197:
                								case 198:
                								case 199:
                								case 200:
                								case 201:
                								case 202:
                								case 203:
                								case 204:
                								case 205:
                								case 206:
                								case 207:
                								case 208:
                								case 209:
                								case 210:
                								case 211:
                								case 212:
                								case 213:
                								case 214:
                								case 215:
                								case 216:
                								case 217:
                								case 218:
                								case 219:
                								case 220:
                								case 221:
                								case 222:
                								case 223:
                								case 224:
                								case 225:
                								case 226:
                								case 227:
                								case 228:
                								case 229:
                								case 230:
                								case 231:
                								case 232:
                								case 233:
                								case 234:
                								case 235:
                								case 236:
                								case 237:
                								case 238:
                								case 239:
                								case 240:
                								case 241:
                								case 242:
                								case 243:
                									{
                										{
                										   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                										    */
                										    int LA217_22 = LA(6);
                										    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                										    {
                										        alt217=1;
                										    }

                										}
                									}
                								    break;

                								}

                							}
                						    break;
                						case LPAREN:
                							{
                								switch ( LA(5) ) 
                								{
                								case 189:
                									{
                										switch ( LA(6) ) 
                										{
                										case T_UNKNOWN:
                										case T_RESERVED:
                										case T_SCHEMA_NAME:
                										case T_TRIGGER_NAME:
                										case T_PACKAGE_NAME:
                										case T_FUNCTION_NAME:
                										case T_PROCEDURE_NAME:
                										case T_PARAMETER_NAME:
                										case T_BINDVAR_NAME:
                										case T_VARIABLE_NAME:
                										case T_DATATYPE_NAME:
                										case T_CURSOR_NAME:
                										case T_TABLE_NAME:
                										case T_COLUMN_NAME:
                										case T_OBJECT_NAME:
                										case T_LABEL_NAME:
                										case T_EXCEPTION_NAME:
                										case T_DBLINK_NAME:
                										case T_DECL:
                										case T_USE:
                										case T_USEL:
                										case T_TYPE_DECL:
                										case T_SUBTYPE_DECL:
                										case T_CURSOR_DECL:
                										case T_VAR_DECL:
                										case T_CONST_DECL:
                										case T_EXC_DECL:
                										case T_FUNCTION_DECL:
                										case T_PROCEDURE_DECL:
                										case T_PRAGMA_DECL:
                										case T_DECL_BLOCK:
                										case T_BLOCK_BLOCK:
                										case T_PROCEDURE_BLOCK:
                										case T_FUNCTION_BLOCK:
                										case T_DECLARE_BLOCK:
                										case T_BEGIN_BLOCK:
                										case T_EXCEPTIONS_BLOCK:
                										case T_COMMIT:
                										case T_DELETE:
                										case T_INSERT:
                										case T_LOCK_TABLE:
                										case T_MERGE:
                										case T_ROLLBACK:
                										case T_SAVEPOINT:
                										case T_SELECT:
                										case T_SET_TRANSACTION:
                										case T_UPDATE:
                										case T_EXECUTE_IMMEDIATE:
                										case T_CASE:
                										case T_OPEN:
                										case T_CLOSE:
                										case T_CONTINUE:
                										case T_PIPE:
                										case T_GOTO:
                										case T_EXIT:
                										case T_RETURN:
                										case T_DECLARE:
                										case T_RAISE:
                										case T_FETCH:
                										case T_LOOP:
                										case T_WHILE:
                										case T_NULL_STAT:
                										case T_FOR:
                										case T_FORALL:
                										case T_IF:
                										case T_ELSIF:
                										case T_ELSE:
                										case T_ENDIF:
                										case T_ASSIGN:
                										case T_CALL:
                										case T_DECLARATION:
                										case T_STATEMENT:
                										case DIVIDE:
                										case LPAREN:
                										case COMMA:
                										case RPAREN:
                										case K_IN:
                										case K_OUT:
                										case ASSIGN:
                										case ID:
                										case INTEGER:
                										case DOT:
                										case K_USING:
                										case DOUBLEDOT:
                										case LLABEL:
                										case RLABEL:
                										case COLON:
                										case AT_SIGN:
                										case EQ:
                										case LTH:
                										case GTH:
                										case MINUS:
                										case PLUS:
                										case DOUBLEVERTBAR:
                										case ASTERISK:
                										case REAL_NUMBER:
                										case QUOTED_STRING:
                										case ARROW:
                										case QSTRING:
                										case QS_ANGLE:
                										case QS_BRACE:
                										case QS_BRACK:
                										case QS_PAREN:
                										case QS_OTHER:
                										case QUOTE:
                										case QS_OTHER_CH:
                										case BINDVAR:
                										case DOUBLEQUOTED_STRING:
                										case NUM:
                										case POINT:
                										case RBRACK:
                										case LBRACK:
                										case PERCENT:
                										case VERTBAR:
                										case NOT_EQ:
                										case LEQ:
                										case GEQ:
                										case NUMBER_VALUE:
                										case WS:
                										case SL_COMMENT:
                										case ML_COMMENT:
                										case 126:
                										case 127:
                										case 128:
                										case 129:
                										case 130:
                										case 131:
                										case 132:
                										case 133:
                										case 134:
                										case 135:
                										case 136:
                										case 137:
                										case 138:
                										case 139:
                										case 140:
                										case 141:
                										case 142:
                										case 143:
                										case 144:
                										case 145:
                										case 146:
                										case 147:
                										case 148:
                										case 149:
                										case 150:
                										case 151:
                										case 152:
                										case 153:
                										case 154:
                										case 155:
                										case 156:
                										case 157:
                										case 158:
                										case 159:
                										case 160:
                										case 161:
                										case 162:
                										case 163:
                										case 164:
                										case 165:
                										case 166:
                										case 167:
                										case 168:
                										case 169:
                										case 170:
                										case 171:
                										case 172:
                										case 173:
                										case 174:
                										case 175:
                										case 176:
                										case 177:
                										case 178:
                										case 179:
                										case 180:
                										case 181:
                										case 182:
                										case 183:
                										case 184:
                										case 185:
                										case 186:
                										case 187:
                										case 188:
                										case 189:
                										case 190:
                										case 191:
                										case 192:
                										case 193:
                										case 194:
                										case 195:
                										case 196:
                										case 197:
                										case 198:
                										case 199:
                										case 200:
                										case 201:
                										case 202:
                										case 203:
                										case 204:
                										case 205:
                										case 206:
                										case 207:
                										case 208:
                										case 209:
                										case 210:
                										case 211:
                										case 212:
                										case 213:
                										case 214:
                										case 215:
                										case 216:
                										case 217:
                										case 218:
                										case 219:
                										case 220:
                										case 221:
                										case 222:
                										case 223:
                										case 224:
                										case 225:
                										case 226:
                										case 227:
                										case 228:
                										case 229:
                										case 230:
                										case 231:
                										case 232:
                										case 233:
                										case 234:
                										case 235:
                										case 236:
                										case 237:
                										case 238:
                										case 239:
                										case 240:
                										case 241:
                										case 242:
                										case 243:
                											{
                												{
                												   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                												    */
                												    int LA217_22 = LA(7);
                												    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                												    {
                												        alt217=1;
                												    }

                												}
                											}
                										    break;

                										}

                									}
                								    break;
                								case LPAREN:
                									{
                										switch ( LA(6) ) 
                										{
                										case 189:
                											{
                												switch ( LA(7) ) 
                												{
                												case T_UNKNOWN:
                												case T_RESERVED:
                												case T_SCHEMA_NAME:
                												case T_TRIGGER_NAME:
                												case T_PACKAGE_NAME:
                												case T_FUNCTION_NAME:
                												case T_PROCEDURE_NAME:
                												case T_PARAMETER_NAME:
                												case T_BINDVAR_NAME:
                												case T_VARIABLE_NAME:
                												case T_DATATYPE_NAME:
                												case T_CURSOR_NAME:
                												case T_TABLE_NAME:
                												case T_COLUMN_NAME:
                												case T_OBJECT_NAME:
                												case T_LABEL_NAME:
                												case T_EXCEPTION_NAME:
                												case T_DBLINK_NAME:
                												case T_DECL:
                												case T_USE:
                												case T_USEL:
                												case T_TYPE_DECL:
                												case T_SUBTYPE_DECL:
                												case T_CURSOR_DECL:
                												case T_VAR_DECL:
                												case T_CONST_DECL:
                												case T_EXC_DECL:
                												case T_FUNCTION_DECL:
                												case T_PROCEDURE_DECL:
                												case T_PRAGMA_DECL:
                												case T_DECL_BLOCK:
                												case T_BLOCK_BLOCK:
                												case T_PROCEDURE_BLOCK:
                												case T_FUNCTION_BLOCK:
                												case T_DECLARE_BLOCK:
                												case T_BEGIN_BLOCK:
                												case T_EXCEPTIONS_BLOCK:
                												case T_COMMIT:
                												case T_DELETE:
                												case T_INSERT:
                												case T_LOCK_TABLE:
                												case T_MERGE:
                												case T_ROLLBACK:
                												case T_SAVEPOINT:
                												case T_SELECT:
                												case T_SET_TRANSACTION:
                												case T_UPDATE:
                												case T_EXECUTE_IMMEDIATE:
                												case T_CASE:
                												case T_OPEN:
                												case T_CLOSE:
                												case T_CONTINUE:
                												case T_PIPE:
                												case T_GOTO:
                												case T_EXIT:
                												case T_RETURN:
                												case T_DECLARE:
                												case T_RAISE:
                												case T_FETCH:
                												case T_LOOP:
                												case T_WHILE:
                												case T_NULL_STAT:
                												case T_FOR:
                												case T_FORALL:
                												case T_IF:
                												case T_ELSIF:
                												case T_ELSE:
                												case T_ENDIF:
                												case T_ASSIGN:
                												case T_CALL:
                												case T_DECLARATION:
                												case T_STATEMENT:
                												case DIVIDE:
                												case LPAREN:
                												case COMMA:
                												case RPAREN:
                												case K_IN:
                												case K_OUT:
                												case ASSIGN:
                												case ID:
                												case INTEGER:
                												case DOT:
                												case K_USING:
                												case DOUBLEDOT:
                												case LLABEL:
                												case RLABEL:
                												case COLON:
                												case AT_SIGN:
                												case EQ:
                												case LTH:
                												case GTH:
                												case MINUS:
                												case PLUS:
                												case DOUBLEVERTBAR:
                												case ASTERISK:
                												case REAL_NUMBER:
                												case QUOTED_STRING:
                												case ARROW:
                												case QSTRING:
                												case QS_ANGLE:
                												case QS_BRACE:
                												case QS_BRACK:
                												case QS_PAREN:
                												case QS_OTHER:
                												case QUOTE:
                												case QS_OTHER_CH:
                												case BINDVAR:
                												case DOUBLEQUOTED_STRING:
                												case NUM:
                												case POINT:
                												case RBRACK:
                												case LBRACK:
                												case PERCENT:
                												case VERTBAR:
                												case NOT_EQ:
                												case LEQ:
                												case GEQ:
                												case NUMBER_VALUE:
                												case WS:
                												case SL_COMMENT:
                												case ML_COMMENT:
                												case 126:
                												case 127:
                												case 128:
                												case 129:
                												case 130:
                												case 131:
                												case 132:
                												case 133:
                												case 134:
                												case 135:
                												case 136:
                												case 137:
                												case 138:
                												case 139:
                												case 140:
                												case 141:
                												case 142:
                												case 143:
                												case 144:
                												case 145:
                												case 146:
                												case 147:
                												case 148:
                												case 149:
                												case 150:
                												case 151:
                												case 152:
                												case 153:
                												case 154:
                												case 155:
                												case 156:
                												case 157:
                												case 158:
                												case 159:
                												case 160:
                												case 161:
                												case 162:
                												case 163:
                												case 164:
                												case 165:
                												case 166:
                												case 167:
                												case 168:
                												case 169:
                												case 170:
                												case 171:
                												case 172:
                												case 173:
                												case 174:
                												case 175:
                												case 176:
                												case 177:
                												case 178:
                												case 179:
                												case 180:
                												case 181:
                												case 182:
                												case 183:
                												case 184:
                												case 185:
                												case 186:
                												case 187:
                												case 188:
                												case 189:
                												case 190:
                												case 191:
                												case 192:
                												case 193:
                												case 194:
                												case 195:
                												case 196:
                												case 197:
                												case 198:
                												case 199:
                												case 200:
                												case 201:
                												case 202:
                												case 203:
                												case 204:
                												case 205:
                												case 206:
                												case 207:
                												case 208:
                												case 209:
                												case 210:
                												case 211:
                												case 212:
                												case 213:
                												case 214:
                												case 215:
                												case 216:
                												case 217:
                												case 218:
                												case 219:
                												case 220:
                												case 221:
                												case 222:
                												case 223:
                												case 224:
                												case 225:
                												case 226:
                												case 227:
                												case 228:
                												case 229:
                												case 230:
                												case 231:
                												case 232:
                												case 233:
                												case 234:
                												case 235:
                												case 236:
                												case 237:
                												case 238:
                												case 239:
                												case 240:
                												case 241:
                												case 242:
                												case 243:
                													{
                														{
                														   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                														    */
                														    int LA217_22 = LA(8);
                														    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                														    {
                														        alt217=1;
                														    }

                														}
                													}
                												    break;

                												}

                											}
                										    break;
                										case LPAREN:
                											{
                												{
                												   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                												    */
                												    int LA217_30 = LA(7);
                												    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                												    {
                												        alt217=1;
                												    }

                												}
                											}
                										    break;
                										case 148:
                											{
                												switch ( LA(7) ) 
                												{
                												case T_UNKNOWN:
                												case T_RESERVED:
                												case T_SCHEMA_NAME:
                												case T_TRIGGER_NAME:
                												case T_PACKAGE_NAME:
                												case T_FUNCTION_NAME:
                												case T_PROCEDURE_NAME:
                												case T_PARAMETER_NAME:
                												case T_BINDVAR_NAME:
                												case T_VARIABLE_NAME:
                												case T_DATATYPE_NAME:
                												case T_CURSOR_NAME:
                												case T_TABLE_NAME:
                												case T_COLUMN_NAME:
                												case T_OBJECT_NAME:
                												case T_LABEL_NAME:
                												case T_EXCEPTION_NAME:
                												case T_DBLINK_NAME:
                												case T_DECL:
                												case T_USE:
                												case T_USEL:
                												case T_TYPE_DECL:
                												case T_SUBTYPE_DECL:
                												case T_CURSOR_DECL:
                												case T_VAR_DECL:
                												case T_CONST_DECL:
                												case T_EXC_DECL:
                												case T_FUNCTION_DECL:
                												case T_PROCEDURE_DECL:
                												case T_PRAGMA_DECL:
                												case T_DECL_BLOCK:
                												case T_BLOCK_BLOCK:
                												case T_PROCEDURE_BLOCK:
                												case T_FUNCTION_BLOCK:
                												case T_DECLARE_BLOCK:
                												case T_BEGIN_BLOCK:
                												case T_EXCEPTIONS_BLOCK:
                												case T_COMMIT:
                												case T_DELETE:
                												case T_INSERT:
                												case T_LOCK_TABLE:
                												case T_MERGE:
                												case T_ROLLBACK:
                												case T_SAVEPOINT:
                												case T_SELECT:
                												case T_SET_TRANSACTION:
                												case T_UPDATE:
                												case T_EXECUTE_IMMEDIATE:
                												case T_CASE:
                												case T_OPEN:
                												case T_CLOSE:
                												case T_CONTINUE:
                												case T_PIPE:
                												case T_GOTO:
                												case T_EXIT:
                												case T_RETURN:
                												case T_DECLARE:
                												case T_RAISE:
                												case T_FETCH:
                												case T_LOOP:
                												case T_WHILE:
                												case T_NULL_STAT:
                												case T_FOR:
                												case T_FORALL:
                												case T_IF:
                												case T_ELSIF:
                												case T_ELSE:
                												case T_ENDIF:
                												case T_ASSIGN:
                												case T_CALL:
                												case T_DECLARATION:
                												case T_STATEMENT:
                												case DIVIDE:
                												case LPAREN:
                												case COMMA:
                												case RPAREN:
                												case K_IN:
                												case K_OUT:
                												case ASSIGN:
                												case ID:
                												case INTEGER:
                												case DOT:
                												case K_USING:
                												case DOUBLEDOT:
                												case LLABEL:
                												case RLABEL:
                												case COLON:
                												case AT_SIGN:
                												case EQ:
                												case LTH:
                												case GTH:
                												case MINUS:
                												case PLUS:
                												case DOUBLEVERTBAR:
                												case ASTERISK:
                												case REAL_NUMBER:
                												case QUOTED_STRING:
                												case ARROW:
                												case QSTRING:
                												case QS_ANGLE:
                												case QS_BRACE:
                												case QS_BRACK:
                												case QS_PAREN:
                												case QS_OTHER:
                												case QUOTE:
                												case QS_OTHER_CH:
                												case BINDVAR:
                												case DOUBLEQUOTED_STRING:
                												case NUM:
                												case POINT:
                												case RBRACK:
                												case LBRACK:
                												case PERCENT:
                												case VERTBAR:
                												case NOT_EQ:
                												case LEQ:
                												case GEQ:
                												case NUMBER_VALUE:
                												case WS:
                												case SL_COMMENT:
                												case ML_COMMENT:
                												case 126:
                												case 127:
                												case 128:
                												case 129:
                												case 130:
                												case 131:
                												case 132:
                												case 133:
                												case 134:
                												case 135:
                												case 136:
                												case 137:
                												case 138:
                												case 139:
                												case 140:
                												case 141:
                												case 142:
                												case 143:
                												case 144:
                												case 145:
                												case 146:
                												case 147:
                												case 148:
                												case 149:
                												case 150:
                												case 151:
                												case 152:
                												case 153:
                												case 154:
                												case 155:
                												case 156:
                												case 157:
                												case 158:
                												case 159:
                												case 160:
                												case 161:
                												case 162:
                												case 163:
                												case 164:
                												case 165:
                												case 166:
                												case 167:
                												case 168:
                												case 169:
                												case 170:
                												case 171:
                												case 172:
                												case 173:
                												case 174:
                												case 175:
                												case 176:
                												case 177:
                												case 178:
                												case 179:
                												case 180:
                												case 181:
                												case 182:
                												case 183:
                												case 184:
                												case 185:
                												case 186:
                												case 187:
                												case 188:
                												case 189:
                												case 190:
                												case 191:
                												case 192:
                												case 193:
                												case 194:
                												case 195:
                												case 196:
                												case 197:
                												case 198:
                												case 199:
                												case 200:
                												case 201:
                												case 202:
                												case 203:
                												case 204:
                												case 205:
                												case 206:
                												case 207:
                												case 208:
                												case 209:
                												case 210:
                												case 211:
                												case 212:
                												case 213:
                												case 214:
                												case 215:
                												case 216:
                												case 217:
                												case 218:
                												case 219:
                												case 220:
                												case 221:
                												case 222:
                												case 223:
                												case 224:
                												case 225:
                												case 226:
                												case 227:
                												case 228:
                												case 229:
                												case 230:
                												case 231:
                												case 232:
                												case 233:
                												case 234:
                												case 235:
                												case 236:
                												case 237:
                												case 238:
                												case 239:
                												case 240:
                												case 241:
                												case 242:
                												case 243:
                													{
                														{
                														   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                														    */
                														    int LA217_23 = LA(8);
                														    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                														    {
                														        alt217=1;
                														    }

                														}
                													}
                												    break;

                												}

                											}
                										    break;
                										case K_OUT:
                										case ID:
                										case INTEGER:
                										case COLON:
                										case MINUS:
                										case PLUS:
                										case REAL_NUMBER:
                										case QUOTED_STRING:
                										case BINDVAR:
                										case 127:
                										case 128:
                										case 129:
                										case 130:
                										case 157:
                										case 163:
                										case 169:
                										case 183:
                										case 184:
                										case 190:
                										case 194:
                										case 199:
                										case 200:
                										case 201:
                										case 203:
                										case 232:
                											{
                												alt217=1;
                											}
                										    break;

                										}

                									}
                								    break;
                								case 148:
                									{
                										switch ( LA(6) ) 
                										{
                										case T_UNKNOWN:
                										case T_RESERVED:
                										case T_SCHEMA_NAME:
                										case T_TRIGGER_NAME:
                										case T_PACKAGE_NAME:
                										case T_FUNCTION_NAME:
                										case T_PROCEDURE_NAME:
                										case T_PARAMETER_NAME:
                										case T_BINDVAR_NAME:
                										case T_VARIABLE_NAME:
                										case T_DATATYPE_NAME:
                										case T_CURSOR_NAME:
                										case T_TABLE_NAME:
                										case T_COLUMN_NAME:
                										case T_OBJECT_NAME:
                										case T_LABEL_NAME:
                										case T_EXCEPTION_NAME:
                										case T_DBLINK_NAME:
                										case T_DECL:
                										case T_USE:
                										case T_USEL:
                										case T_TYPE_DECL:
                										case T_SUBTYPE_DECL:
                										case T_CURSOR_DECL:
                										case T_VAR_DECL:
                										case T_CONST_DECL:
                										case T_EXC_DECL:
                										case T_FUNCTION_DECL:
                										case T_PROCEDURE_DECL:
                										case T_PRAGMA_DECL:
                										case T_DECL_BLOCK:
                										case T_BLOCK_BLOCK:
                										case T_PROCEDURE_BLOCK:
                										case T_FUNCTION_BLOCK:
                										case T_DECLARE_BLOCK:
                										case T_BEGIN_BLOCK:
                										case T_EXCEPTIONS_BLOCK:
                										case T_COMMIT:
                										case T_DELETE:
                										case T_INSERT:
                										case T_LOCK_TABLE:
                										case T_MERGE:
                										case T_ROLLBACK:
                										case T_SAVEPOINT:
                										case T_SELECT:
                										case T_SET_TRANSACTION:
                										case T_UPDATE:
                										case T_EXECUTE_IMMEDIATE:
                										case T_CASE:
                										case T_OPEN:
                										case T_CLOSE:
                										case T_CONTINUE:
                										case T_PIPE:
                										case T_GOTO:
                										case T_EXIT:
                										case T_RETURN:
                										case T_DECLARE:
                										case T_RAISE:
                										case T_FETCH:
                										case T_LOOP:
                										case T_WHILE:
                										case T_NULL_STAT:
                										case T_FOR:
                										case T_FORALL:
                										case T_IF:
                										case T_ELSIF:
                										case T_ELSE:
                										case T_ENDIF:
                										case T_ASSIGN:
                										case T_CALL:
                										case T_DECLARATION:
                										case T_STATEMENT:
                										case DIVIDE:
                										case LPAREN:
                										case COMMA:
                										case RPAREN:
                										case K_IN:
                										case K_OUT:
                										case ASSIGN:
                										case ID:
                										case INTEGER:
                										case DOT:
                										case K_USING:
                										case DOUBLEDOT:
                										case LLABEL:
                										case RLABEL:
                										case COLON:
                										case AT_SIGN:
                										case EQ:
                										case LTH:
                										case GTH:
                										case MINUS:
                										case PLUS:
                										case DOUBLEVERTBAR:
                										case ASTERISK:
                										case REAL_NUMBER:
                										case QUOTED_STRING:
                										case ARROW:
                										case QSTRING:
                										case QS_ANGLE:
                										case QS_BRACE:
                										case QS_BRACK:
                										case QS_PAREN:
                										case QS_OTHER:
                										case QUOTE:
                										case QS_OTHER_CH:
                										case BINDVAR:
                										case DOUBLEQUOTED_STRING:
                										case NUM:
                										case POINT:
                										case RBRACK:
                										case LBRACK:
                										case PERCENT:
                										case VERTBAR:
                										case NOT_EQ:
                										case LEQ:
                										case GEQ:
                										case NUMBER_VALUE:
                										case WS:
                										case SL_COMMENT:
                										case ML_COMMENT:
                										case 126:
                										case 127:
                										case 128:
                										case 129:
                										case 130:
                										case 131:
                										case 132:
                										case 133:
                										case 134:
                										case 135:
                										case 136:
                										case 137:
                										case 138:
                										case 139:
                										case 140:
                										case 141:
                										case 142:
                										case 143:
                										case 144:
                										case 145:
                										case 146:
                										case 147:
                										case 148:
                										case 149:
                										case 150:
                										case 151:
                										case 152:
                										case 153:
                										case 154:
                										case 155:
                										case 156:
                										case 157:
                										case 158:
                										case 159:
                										case 160:
                										case 161:
                										case 162:
                										case 163:
                										case 164:
                										case 165:
                										case 166:
                										case 167:
                										case 168:
                										case 169:
                										case 170:
                										case 171:
                										case 172:
                										case 173:
                										case 174:
                										case 175:
                										case 176:
                										case 177:
                										case 178:
                										case 179:
                										case 180:
                										case 181:
                										case 182:
                										case 183:
                										case 184:
                										case 185:
                										case 186:
                										case 187:
                										case 188:
                										case 189:
                										case 190:
                										case 191:
                										case 192:
                										case 193:
                										case 194:
                										case 195:
                										case 196:
                										case 197:
                										case 198:
                										case 199:
                										case 200:
                										case 201:
                										case 202:
                										case 203:
                										case 204:
                										case 205:
                										case 206:
                										case 207:
                										case 208:
                										case 209:
                										case 210:
                										case 211:
                										case 212:
                										case 213:
                										case 214:
                										case 215:
                										case 216:
                										case 217:
                										case 218:
                										case 219:
                										case 220:
                										case 221:
                										case 222:
                										case 223:
                										case 224:
                										case 225:
                										case 226:
                										case 227:
                										case 228:
                										case 229:
                										case 230:
                										case 231:
                										case 232:
                										case 233:
                										case 234:
                										case 235:
                										case 236:
                										case 237:
                										case 238:
                										case 239:
                										case 240:
                										case 241:
                										case 242:
                										case 243:
                											{
                												{
                												   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                												    */
                												    int LA217_23 = LA(7);
                												    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                												    {
                												        alt217=1;
                												    }

                												}
                											}
                										    break;

                										}

                									}
                								    break;
                								case K_OUT:
                								case ID:
                								case INTEGER:
                								case COLON:
                								case MINUS:
                								case PLUS:
                								case REAL_NUMBER:
                								case QUOTED_STRING:
                								case BINDVAR:
                								case 127:
                								case 128:
                								case 129:
                								case 130:
                								case 157:
                								case 163:
                								case 169:
                								case 183:
                								case 184:
                								case 190:
                								case 194:
                								case 199:
                								case 200:
                								case 201:
                								case 203:
                								case 232:
                									{
                										alt217=1;
                									}
                								    break;

                								}

                							}
                						    break;
                						case 148:
                							{
                								switch ( LA(5) ) 
                								{
                								case T_UNKNOWN:
                								case T_RESERVED:
                								case T_SCHEMA_NAME:
                								case T_TRIGGER_NAME:
                								case T_PACKAGE_NAME:
                								case T_FUNCTION_NAME:
                								case T_PROCEDURE_NAME:
                								case T_PARAMETER_NAME:
                								case T_BINDVAR_NAME:
                								case T_VARIABLE_NAME:
                								case T_DATATYPE_NAME:
                								case T_CURSOR_NAME:
                								case T_TABLE_NAME:
                								case T_COLUMN_NAME:
                								case T_OBJECT_NAME:
                								case T_LABEL_NAME:
                								case T_EXCEPTION_NAME:
                								case T_DBLINK_NAME:
                								case T_DECL:
                								case T_USE:
                								case T_USEL:
                								case T_TYPE_DECL:
                								case T_SUBTYPE_DECL:
                								case T_CURSOR_DECL:
                								case T_VAR_DECL:
                								case T_CONST_DECL:
                								case T_EXC_DECL:
                								case T_FUNCTION_DECL:
                								case T_PROCEDURE_DECL:
                								case T_PRAGMA_DECL:
                								case T_DECL_BLOCK:
                								case T_BLOCK_BLOCK:
                								case T_PROCEDURE_BLOCK:
                								case T_FUNCTION_BLOCK:
                								case T_DECLARE_BLOCK:
                								case T_BEGIN_BLOCK:
                								case T_EXCEPTIONS_BLOCK:
                								case T_COMMIT:
                								case T_DELETE:
                								case T_INSERT:
                								case T_LOCK_TABLE:
                								case T_MERGE:
                								case T_ROLLBACK:
                								case T_SAVEPOINT:
                								case T_SELECT:
                								case T_SET_TRANSACTION:
                								case T_UPDATE:
                								case T_EXECUTE_IMMEDIATE:
                								case T_CASE:
                								case T_OPEN:
                								case T_CLOSE:
                								case T_CONTINUE:
                								case T_PIPE:
                								case T_GOTO:
                								case T_EXIT:
                								case T_RETURN:
                								case T_DECLARE:
                								case T_RAISE:
                								case T_FETCH:
                								case T_LOOP:
                								case T_WHILE:
                								case T_NULL_STAT:
                								case T_FOR:
                								case T_FORALL:
                								case T_IF:
                								case T_ELSIF:
                								case T_ELSE:
                								case T_ENDIF:
                								case T_ASSIGN:
                								case T_CALL:
                								case T_DECLARATION:
                								case T_STATEMENT:
                								case DIVIDE:
                								case LPAREN:
                								case COMMA:
                								case RPAREN:
                								case K_IN:
                								case K_OUT:
                								case ASSIGN:
                								case ID:
                								case INTEGER:
                								case DOT:
                								case K_USING:
                								case DOUBLEDOT:
                								case LLABEL:
                								case RLABEL:
                								case COLON:
                								case AT_SIGN:
                								case EQ:
                								case LTH:
                								case GTH:
                								case MINUS:
                								case PLUS:
                								case DOUBLEVERTBAR:
                								case ASTERISK:
                								case REAL_NUMBER:
                								case QUOTED_STRING:
                								case ARROW:
                								case QSTRING:
                								case QS_ANGLE:
                								case QS_BRACE:
                								case QS_BRACK:
                								case QS_PAREN:
                								case QS_OTHER:
                								case QUOTE:
                								case QS_OTHER_CH:
                								case BINDVAR:
                								case DOUBLEQUOTED_STRING:
                								case NUM:
                								case POINT:
                								case RBRACK:
                								case LBRACK:
                								case PERCENT:
                								case VERTBAR:
                								case NOT_EQ:
                								case LEQ:
                								case GEQ:
                								case NUMBER_VALUE:
                								case WS:
                								case SL_COMMENT:
                								case ML_COMMENT:
                								case 126:
                								case 127:
                								case 128:
                								case 129:
                								case 130:
                								case 131:
                								case 132:
                								case 133:
                								case 134:
                								case 135:
                								case 136:
                								case 137:
                								case 138:
                								case 139:
                								case 140:
                								case 141:
                								case 142:
                								case 143:
                								case 144:
                								case 145:
                								case 146:
                								case 147:
                								case 148:
                								case 149:
                								case 150:
                								case 151:
                								case 152:
                								case 153:
                								case 154:
                								case 155:
                								case 156:
                								case 157:
                								case 158:
                								case 159:
                								case 160:
                								case 161:
                								case 162:
                								case 163:
                								case 164:
                								case 165:
                								case 166:
                								case 167:
                								case 168:
                								case 169:
                								case 170:
                								case 171:
                								case 172:
                								case 173:
                								case 174:
                								case 175:
                								case 176:
                								case 177:
                								case 178:
                								case 179:
                								case 180:
                								case 181:
                								case 182:
                								case 183:
                								case 184:
                								case 185:
                								case 186:
                								case 187:
                								case 188:
                								case 189:
                								case 190:
                								case 191:
                								case 192:
                								case 193:
                								case 194:
                								case 195:
                								case 196:
                								case 197:
                								case 198:
                								case 199:
                								case 200:
                								case 201:
                								case 202:
                								case 203:
                								case 204:
                								case 205:
                								case 206:
                								case 207:
                								case 208:
                								case 209:
                								case 210:
                								case 211:
                								case 212:
                								case 213:
                								case 214:
                								case 215:
                								case 216:
                								case 217:
                								case 218:
                								case 219:
                								case 220:
                								case 221:
                								case 222:
                								case 223:
                								case 224:
                								case 225:
                								case 226:
                								case 227:
                								case 228:
                								case 229:
                								case 230:
                								case 231:
                								case 232:
                								case 233:
                								case 234:
                								case 235:
                								case 236:
                								case 237:
                								case 238:
                								case 239:
                								case 240:
                								case 241:
                								case 242:
                								case 243:
                									{
                										{
                										   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                										    */
                										    int LA217_23 = LA(6);
                										    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                										    {
                										        alt217=1;
                										    }

                										}
                									}
                								    break;

                								}

                							}
                						    break;
                						case RPAREN:
                						case K_OUT:
                						case ID:
                						case INTEGER:
                						case COLON:
                						case MINUS:
                						case PLUS:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case BINDVAR:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 157:
                						case 163:
                						case 169:
                						case 183:
                						case 184:
                						case 190:
                						case 194:
                						case 199:
                						case 200:
                						case 201:
                						case 203:
                						case 232:
                							{
                								alt217=1;
                							}
                						    break;

                						}

                					}
                				    break;
                				case 189:
                					{
                						switch ( LA(4) ) 
                						{
                						case T_UNKNOWN:
                						case T_RESERVED:
                						case T_SCHEMA_NAME:
                						case T_TRIGGER_NAME:
                						case T_PACKAGE_NAME:
                						case T_FUNCTION_NAME:
                						case T_PROCEDURE_NAME:
                						case T_PARAMETER_NAME:
                						case T_BINDVAR_NAME:
                						case T_VARIABLE_NAME:
                						case T_DATATYPE_NAME:
                						case T_CURSOR_NAME:
                						case T_TABLE_NAME:
                						case T_COLUMN_NAME:
                						case T_OBJECT_NAME:
                						case T_LABEL_NAME:
                						case T_EXCEPTION_NAME:
                						case T_DBLINK_NAME:
                						case T_DECL:
                						case T_USE:
                						case T_USEL:
                						case T_TYPE_DECL:
                						case T_SUBTYPE_DECL:
                						case T_CURSOR_DECL:
                						case T_VAR_DECL:
                						case T_CONST_DECL:
                						case T_EXC_DECL:
                						case T_FUNCTION_DECL:
                						case T_PROCEDURE_DECL:
                						case T_PRAGMA_DECL:
                						case T_DECL_BLOCK:
                						case T_BLOCK_BLOCK:
                						case T_PROCEDURE_BLOCK:
                						case T_FUNCTION_BLOCK:
                						case T_DECLARE_BLOCK:
                						case T_BEGIN_BLOCK:
                						case T_EXCEPTIONS_BLOCK:
                						case T_COMMIT:
                						case T_DELETE:
                						case T_INSERT:
                						case T_LOCK_TABLE:
                						case T_MERGE:
                						case T_ROLLBACK:
                						case T_SAVEPOINT:
                						case T_SELECT:
                						case T_SET_TRANSACTION:
                						case T_UPDATE:
                						case T_EXECUTE_IMMEDIATE:
                						case T_CASE:
                						case T_OPEN:
                						case T_CLOSE:
                						case T_CONTINUE:
                						case T_PIPE:
                						case T_GOTO:
                						case T_EXIT:
                						case T_RETURN:
                						case T_DECLARE:
                						case T_RAISE:
                						case T_FETCH:
                						case T_LOOP:
                						case T_WHILE:
                						case T_NULL_STAT:
                						case T_FOR:
                						case T_FORALL:
                						case T_IF:
                						case T_ELSIF:
                						case T_ELSE:
                						case T_ENDIF:
                						case T_ASSIGN:
                						case T_CALL:
                						case T_DECLARATION:
                						case T_STATEMENT:
                						case DIVIDE:
                						case LPAREN:
                						case COMMA:
                						case RPAREN:
                						case K_IN:
                						case K_OUT:
                						case ASSIGN:
                						case ID:
                						case INTEGER:
                						case DOT:
                						case K_USING:
                						case DOUBLEDOT:
                						case LLABEL:
                						case RLABEL:
                						case COLON:
                						case AT_SIGN:
                						case EQ:
                						case LTH:
                						case GTH:
                						case MINUS:
                						case PLUS:
                						case DOUBLEVERTBAR:
                						case ASTERISK:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case ARROW:
                						case QSTRING:
                						case QS_ANGLE:
                						case QS_BRACE:
                						case QS_BRACK:
                						case QS_PAREN:
                						case QS_OTHER:
                						case QUOTE:
                						case QS_OTHER_CH:
                						case BINDVAR:
                						case DOUBLEQUOTED_STRING:
                						case NUM:
                						case POINT:
                						case RBRACK:
                						case LBRACK:
                						case PERCENT:
                						case VERTBAR:
                						case NOT_EQ:
                						case LEQ:
                						case GEQ:
                						case NUMBER_VALUE:
                						case WS:
                						case SL_COMMENT:
                						case ML_COMMENT:
                						case 126:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 131:
                						case 132:
                						case 133:
                						case 134:
                						case 135:
                						case 136:
                						case 137:
                						case 138:
                						case 139:
                						case 140:
                						case 141:
                						case 142:
                						case 143:
                						case 144:
                						case 145:
                						case 146:
                						case 147:
                						case 148:
                						case 149:
                						case 150:
                						case 151:
                						case 152:
                						case 153:
                						case 154:
                						case 155:
                						case 156:
                						case 157:
                						case 158:
                						case 159:
                						case 160:
                						case 161:
                						case 162:
                						case 163:
                						case 164:
                						case 165:
                						case 166:
                						case 167:
                						case 168:
                						case 169:
                						case 170:
                						case 171:
                						case 172:
                						case 173:
                						case 174:
                						case 175:
                						case 176:
                						case 177:
                						case 178:
                						case 179:
                						case 180:
                						case 181:
                						case 182:
                						case 183:
                						case 184:
                						case 185:
                						case 186:
                						case 187:
                						case 188:
                						case 189:
                						case 190:
                						case 191:
                						case 192:
                						case 193:
                						case 194:
                						case 195:
                						case 196:
                						case 197:
                						case 198:
                						case 199:
                						case 200:
                						case 201:
                						case 202:
                						case 203:
                						case 204:
                						case 205:
                						case 206:
                						case 207:
                						case 208:
                						case 209:
                						case 210:
                						case 211:
                						case 212:
                						case 213:
                						case 214:
                						case 215:
                						case 216:
                						case 217:
                						case 218:
                						case 219:
                						case 220:
                						case 221:
                						case 222:
                						case 223:
                						case 224:
                						case 225:
                						case 226:
                						case 227:
                						case 228:
                						case 229:
                						case 230:
                						case 231:
                						case 232:
                						case 233:
                						case 234:
                						case 235:
                						case 236:
                						case 237:
                						case 238:
                						case 239:
                						case 240:
                						case 241:
                						case 242:
                						case 243:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_22 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case 148:
                					{
                						switch ( LA(4) ) 
                						{
                						case T_UNKNOWN:
                						case T_RESERVED:
                						case T_SCHEMA_NAME:
                						case T_TRIGGER_NAME:
                						case T_PACKAGE_NAME:
                						case T_FUNCTION_NAME:
                						case T_PROCEDURE_NAME:
                						case T_PARAMETER_NAME:
                						case T_BINDVAR_NAME:
                						case T_VARIABLE_NAME:
                						case T_DATATYPE_NAME:
                						case T_CURSOR_NAME:
                						case T_TABLE_NAME:
                						case T_COLUMN_NAME:
                						case T_OBJECT_NAME:
                						case T_LABEL_NAME:
                						case T_EXCEPTION_NAME:
                						case T_DBLINK_NAME:
                						case T_DECL:
                						case T_USE:
                						case T_USEL:
                						case T_TYPE_DECL:
                						case T_SUBTYPE_DECL:
                						case T_CURSOR_DECL:
                						case T_VAR_DECL:
                						case T_CONST_DECL:
                						case T_EXC_DECL:
                						case T_FUNCTION_DECL:
                						case T_PROCEDURE_DECL:
                						case T_PRAGMA_DECL:
                						case T_DECL_BLOCK:
                						case T_BLOCK_BLOCK:
                						case T_PROCEDURE_BLOCK:
                						case T_FUNCTION_BLOCK:
                						case T_DECLARE_BLOCK:
                						case T_BEGIN_BLOCK:
                						case T_EXCEPTIONS_BLOCK:
                						case T_COMMIT:
                						case T_DELETE:
                						case T_INSERT:
                						case T_LOCK_TABLE:
                						case T_MERGE:
                						case T_ROLLBACK:
                						case T_SAVEPOINT:
                						case T_SELECT:
                						case T_SET_TRANSACTION:
                						case T_UPDATE:
                						case T_EXECUTE_IMMEDIATE:
                						case T_CASE:
                						case T_OPEN:
                						case T_CLOSE:
                						case T_CONTINUE:
                						case T_PIPE:
                						case T_GOTO:
                						case T_EXIT:
                						case T_RETURN:
                						case T_DECLARE:
                						case T_RAISE:
                						case T_FETCH:
                						case T_LOOP:
                						case T_WHILE:
                						case T_NULL_STAT:
                						case T_FOR:
                						case T_FORALL:
                						case T_IF:
                						case T_ELSIF:
                						case T_ELSE:
                						case T_ENDIF:
                						case T_ASSIGN:
                						case T_CALL:
                						case T_DECLARATION:
                						case T_STATEMENT:
                						case DIVIDE:
                						case LPAREN:
                						case COMMA:
                						case RPAREN:
                						case K_IN:
                						case K_OUT:
                						case ASSIGN:
                						case ID:
                						case INTEGER:
                						case DOT:
                						case K_USING:
                						case DOUBLEDOT:
                						case LLABEL:
                						case RLABEL:
                						case COLON:
                						case AT_SIGN:
                						case EQ:
                						case LTH:
                						case GTH:
                						case MINUS:
                						case PLUS:
                						case DOUBLEVERTBAR:
                						case ASTERISK:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case ARROW:
                						case QSTRING:
                						case QS_ANGLE:
                						case QS_BRACE:
                						case QS_BRACK:
                						case QS_PAREN:
                						case QS_OTHER:
                						case QUOTE:
                						case QS_OTHER_CH:
                						case BINDVAR:
                						case DOUBLEQUOTED_STRING:
                						case NUM:
                						case POINT:
                						case RBRACK:
                						case LBRACK:
                						case PERCENT:
                						case VERTBAR:
                						case NOT_EQ:
                						case LEQ:
                						case GEQ:
                						case NUMBER_VALUE:
                						case WS:
                						case SL_COMMENT:
                						case ML_COMMENT:
                						case 126:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 131:
                						case 132:
                						case 133:
                						case 134:
                						case 135:
                						case 136:
                						case 137:
                						case 138:
                						case 139:
                						case 140:
                						case 141:
                						case 142:
                						case 143:
                						case 144:
                						case 145:
                						case 146:
                						case 147:
                						case 148:
                						case 149:
                						case 150:
                						case 151:
                						case 152:
                						case 153:
                						case 154:
                						case 155:
                						case 156:
                						case 157:
                						case 158:
                						case 159:
                						case 160:
                						case 161:
                						case 162:
                						case 163:
                						case 164:
                						case 165:
                						case 166:
                						case 167:
                						case 168:
                						case 169:
                						case 170:
                						case 171:
                						case 172:
                						case 173:
                						case 174:
                						case 175:
                						case 176:
                						case 177:
                						case 178:
                						case 179:
                						case 180:
                						case 181:
                						case 182:
                						case 183:
                						case 184:
                						case 185:
                						case 186:
                						case 187:
                						case 188:
                						case 189:
                						case 190:
                						case 191:
                						case 192:
                						case 193:
                						case 194:
                						case 195:
                						case 196:
                						case 197:
                						case 198:
                						case 199:
                						case 200:
                						case 201:
                						case 202:
                						case 203:
                						case 204:
                						case 205:
                						case 206:
                						case 207:
                						case 208:
                						case 209:
                						case 210:
                						case 211:
                						case 212:
                						case 213:
                						case 214:
                						case 215:
                						case 216:
                						case 217:
                						case 218:
                						case 219:
                						case 220:
                						case 221:
                						case 222:
                						case 223:
                						case 224:
                						case 225:
                						case 226:
                						case 227:
                						case 228:
                						case 229:
                						case 230:
                						case 231:
                						case 232:
                						case 233:
                						case 234:
                						case 235:
                						case 236:
                						case 237:
                						case 238:
                						case 239:
                						case 240:
                						case 241:
                						case 242:
                						case 243:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_23 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case 216:
                					{
                						switch ( LA(4) ) 
                						{
                						case T_UNKNOWN:
                						case T_RESERVED:
                						case T_SCHEMA_NAME:
                						case T_TRIGGER_NAME:
                						case T_PACKAGE_NAME:
                						case T_FUNCTION_NAME:
                						case T_PROCEDURE_NAME:
                						case T_PARAMETER_NAME:
                						case T_BINDVAR_NAME:
                						case T_VARIABLE_NAME:
                						case T_DATATYPE_NAME:
                						case T_CURSOR_NAME:
                						case T_TABLE_NAME:
                						case T_COLUMN_NAME:
                						case T_OBJECT_NAME:
                						case T_LABEL_NAME:
                						case T_EXCEPTION_NAME:
                						case T_DBLINK_NAME:
                						case T_DECL:
                						case T_USE:
                						case T_USEL:
                						case T_TYPE_DECL:
                						case T_SUBTYPE_DECL:
                						case T_CURSOR_DECL:
                						case T_VAR_DECL:
                						case T_CONST_DECL:
                						case T_EXC_DECL:
                						case T_FUNCTION_DECL:
                						case T_PROCEDURE_DECL:
                						case T_PRAGMA_DECL:
                						case T_DECL_BLOCK:
                						case T_BLOCK_BLOCK:
                						case T_PROCEDURE_BLOCK:
                						case T_FUNCTION_BLOCK:
                						case T_DECLARE_BLOCK:
                						case T_BEGIN_BLOCK:
                						case T_EXCEPTIONS_BLOCK:
                						case T_COMMIT:
                						case T_DELETE:
                						case T_INSERT:
                						case T_LOCK_TABLE:
                						case T_MERGE:
                						case T_ROLLBACK:
                						case T_SAVEPOINT:
                						case T_SELECT:
                						case T_SET_TRANSACTION:
                						case T_UPDATE:
                						case T_EXECUTE_IMMEDIATE:
                						case T_CASE:
                						case T_OPEN:
                						case T_CLOSE:
                						case T_CONTINUE:
                						case T_PIPE:
                						case T_GOTO:
                						case T_EXIT:
                						case T_RETURN:
                						case T_DECLARE:
                						case T_RAISE:
                						case T_FETCH:
                						case T_LOOP:
                						case T_WHILE:
                						case T_NULL_STAT:
                						case T_FOR:
                						case T_FORALL:
                						case T_IF:
                						case T_ELSIF:
                						case T_ELSE:
                						case T_ENDIF:
                						case T_ASSIGN:
                						case T_CALL:
                						case T_DECLARATION:
                						case T_STATEMENT:
                						case DIVIDE:
                						case LPAREN:
                						case COMMA:
                						case RPAREN:
                						case K_IN:
                						case K_OUT:
                						case ASSIGN:
                						case ID:
                						case INTEGER:
                						case DOT:
                						case K_USING:
                						case DOUBLEDOT:
                						case LLABEL:
                						case RLABEL:
                						case COLON:
                						case AT_SIGN:
                						case EQ:
                						case LTH:
                						case GTH:
                						case MINUS:
                						case PLUS:
                						case DOUBLEVERTBAR:
                						case ASTERISK:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case ARROW:
                						case QSTRING:
                						case QS_ANGLE:
                						case QS_BRACE:
                						case QS_BRACK:
                						case QS_PAREN:
                						case QS_OTHER:
                						case QUOTE:
                						case QS_OTHER_CH:
                						case BINDVAR:
                						case DOUBLEQUOTED_STRING:
                						case NUM:
                						case POINT:
                						case RBRACK:
                						case LBRACK:
                						case PERCENT:
                						case VERTBAR:
                						case NOT_EQ:
                						case LEQ:
                						case GEQ:
                						case NUMBER_VALUE:
                						case WS:
                						case SL_COMMENT:
                						case ML_COMMENT:
                						case 126:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 131:
                						case 132:
                						case 133:
                						case 134:
                						case 135:
                						case 136:
                						case 137:
                						case 138:
                						case 139:
                						case 140:
                						case 141:
                						case 142:
                						case 143:
                						case 144:
                						case 145:
                						case 146:
                						case 147:
                						case 148:
                						case 149:
                						case 150:
                						case 151:
                						case 152:
                						case 153:
                						case 154:
                						case 155:
                						case 156:
                						case 157:
                						case 158:
                						case 159:
                						case 160:
                						case 161:
                						case 162:
                						case 163:
                						case 164:
                						case 165:
                						case 166:
                						case 167:
                						case 168:
                						case 169:
                						case 170:
                						case 171:
                						case 172:
                						case 173:
                						case 174:
                						case 175:
                						case 176:
                						case 177:
                						case 178:
                						case 179:
                						case 180:
                						case 181:
                						case 182:
                						case 183:
                						case 184:
                						case 185:
                						case 186:
                						case 187:
                						case 188:
                						case 189:
                						case 190:
                						case 191:
                						case 192:
                						case 193:
                						case 194:
                						case 195:
                						case 196:
                						case 197:
                						case 198:
                						case 199:
                						case 200:
                						case 201:
                						case 202:
                						case 203:
                						case 204:
                						case 205:
                						case 206:
                						case 207:
                						case 208:
                						case 209:
                						case 210:
                						case 211:
                						case 212:
                						case 213:
                						case 214:
                						case 215:
                						case 216:
                						case 217:
                						case 218:
                						case 219:
                						case 220:
                						case 221:
                						case 222:
                						case 223:
                						case 224:
                						case 225:
                						case 226:
                						case 227:
                						case 228:
                						case 229:
                						case 230:
                						case 231:
                						case 232:
                						case 233:
                						case 234:
                						case 235:
                						case 236:
                						case 237:
                						case 238:
                						case 239:
                						case 240:
                						case 241:
                						case 242:
                						case 243:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_24 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case 144:
                					{
                						switch ( LA(4) ) 
                						{
                						case 192:
                							{
                								switch ( LA(5) ) 
                								{
                								case T_UNKNOWN:
                								case T_RESERVED:
                								case T_SCHEMA_NAME:
                								case T_TRIGGER_NAME:
                								case T_PACKAGE_NAME:
                								case T_FUNCTION_NAME:
                								case T_PROCEDURE_NAME:
                								case T_PARAMETER_NAME:
                								case T_BINDVAR_NAME:
                								case T_VARIABLE_NAME:
                								case T_DATATYPE_NAME:
                								case T_CURSOR_NAME:
                								case T_TABLE_NAME:
                								case T_COLUMN_NAME:
                								case T_OBJECT_NAME:
                								case T_LABEL_NAME:
                								case T_EXCEPTION_NAME:
                								case T_DBLINK_NAME:
                								case T_DECL:
                								case T_USE:
                								case T_USEL:
                								case T_TYPE_DECL:
                								case T_SUBTYPE_DECL:
                								case T_CURSOR_DECL:
                								case T_VAR_DECL:
                								case T_CONST_DECL:
                								case T_EXC_DECL:
                								case T_FUNCTION_DECL:
                								case T_PROCEDURE_DECL:
                								case T_PRAGMA_DECL:
                								case T_DECL_BLOCK:
                								case T_BLOCK_BLOCK:
                								case T_PROCEDURE_BLOCK:
                								case T_FUNCTION_BLOCK:
                								case T_DECLARE_BLOCK:
                								case T_BEGIN_BLOCK:
                								case T_EXCEPTIONS_BLOCK:
                								case T_COMMIT:
                								case T_DELETE:
                								case T_INSERT:
                								case T_LOCK_TABLE:
                								case T_MERGE:
                								case T_ROLLBACK:
                								case T_SAVEPOINT:
                								case T_SELECT:
                								case T_SET_TRANSACTION:
                								case T_UPDATE:
                								case T_EXECUTE_IMMEDIATE:
                								case T_CASE:
                								case T_OPEN:
                								case T_CLOSE:
                								case T_CONTINUE:
                								case T_PIPE:
                								case T_GOTO:
                								case T_EXIT:
                								case T_RETURN:
                								case T_DECLARE:
                								case T_RAISE:
                								case T_FETCH:
                								case T_LOOP:
                								case T_WHILE:
                								case T_NULL_STAT:
                								case T_FOR:
                								case T_FORALL:
                								case T_IF:
                								case T_ELSIF:
                								case T_ELSE:
                								case T_ENDIF:
                								case T_ASSIGN:
                								case T_CALL:
                								case T_DECLARATION:
                								case T_STATEMENT:
                								case DIVIDE:
                								case LPAREN:
                								case COMMA:
                								case RPAREN:
                								case K_IN:
                								case K_OUT:
                								case ASSIGN:
                								case ID:
                								case INTEGER:
                								case DOT:
                								case K_USING:
                								case DOUBLEDOT:
                								case LLABEL:
                								case RLABEL:
                								case COLON:
                								case AT_SIGN:
                								case EQ:
                								case LTH:
                								case GTH:
                								case MINUS:
                								case PLUS:
                								case DOUBLEVERTBAR:
                								case ASTERISK:
                								case REAL_NUMBER:
                								case QUOTED_STRING:
                								case ARROW:
                								case QSTRING:
                								case QS_ANGLE:
                								case QS_BRACE:
                								case QS_BRACK:
                								case QS_PAREN:
                								case QS_OTHER:
                								case QUOTE:
                								case QS_OTHER_CH:
                								case BINDVAR:
                								case DOUBLEQUOTED_STRING:
                								case NUM:
                								case POINT:
                								case RBRACK:
                								case LBRACK:
                								case PERCENT:
                								case VERTBAR:
                								case NOT_EQ:
                								case LEQ:
                								case GEQ:
                								case NUMBER_VALUE:
                								case WS:
                								case SL_COMMENT:
                								case ML_COMMENT:
                								case 126:
                								case 127:
                								case 128:
                								case 129:
                								case 130:
                								case 131:
                								case 132:
                								case 133:
                								case 134:
                								case 135:
                								case 136:
                								case 137:
                								case 138:
                								case 139:
                								case 140:
                								case 141:
                								case 142:
                								case 143:
                								case 144:
                								case 145:
                								case 146:
                								case 147:
                								case 148:
                								case 149:
                								case 150:
                								case 151:
                								case 152:
                								case 153:
                								case 154:
                								case 155:
                								case 156:
                								case 157:
                								case 158:
                								case 159:
                								case 160:
                								case 161:
                								case 162:
                								case 163:
                								case 164:
                								case 165:
                								case 166:
                								case 167:
                								case 168:
                								case 169:
                								case 170:
                								case 171:
                								case 172:
                								case 173:
                								case 174:
                								case 175:
                								case 176:
                								case 177:
                								case 178:
                								case 179:
                								case 180:
                								case 181:
                								case 182:
                								case 183:
                								case 184:
                								case 185:
                								case 186:
                								case 187:
                								case 188:
                								case 189:
                								case 190:
                								case 191:
                								case 192:
                								case 193:
                								case 194:
                								case 195:
                								case 196:
                								case 197:
                								case 198:
                								case 199:
                								case 200:
                								case 201:
                								case 202:
                								case 203:
                								case 204:
                								case 205:
                								case 206:
                								case 207:
                								case 208:
                								case 209:
                								case 210:
                								case 211:
                								case 212:
                								case 213:
                								case 214:
                								case 215:
                								case 216:
                								case 217:
                								case 218:
                								case 219:
                								case 220:
                								case 221:
                								case 222:
                								case 223:
                								case 224:
                								case 225:
                								case 226:
                								case 227:
                								case 228:
                								case 229:
                								case 230:
                								case 231:
                								case 232:
                								case 233:
                								case 234:
                								case 235:
                								case 236:
                								case 237:
                								case 238:
                								case 239:
                								case 240:
                								case 241:
                								case 242:
                								case 243:
                									{
                										{
                										   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                										    */
                										    int LA217_29 = LA(6);
                										    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                										    {
                										        alt217=1;
                										    }

                										}
                									}
                								    break;

                								}

                							}
                						    break;

                						}

                					}
                				    break;
                				case 197:
                					{
                						switch ( LA(4) ) 
                						{
                						case T_UNKNOWN:
                						case T_RESERVED:
                						case T_SCHEMA_NAME:
                						case T_TRIGGER_NAME:
                						case T_PACKAGE_NAME:
                						case T_FUNCTION_NAME:
                						case T_PROCEDURE_NAME:
                						case T_PARAMETER_NAME:
                						case T_BINDVAR_NAME:
                						case T_VARIABLE_NAME:
                						case T_DATATYPE_NAME:
                						case T_CURSOR_NAME:
                						case T_TABLE_NAME:
                						case T_COLUMN_NAME:
                						case T_OBJECT_NAME:
                						case T_LABEL_NAME:
                						case T_EXCEPTION_NAME:
                						case T_DBLINK_NAME:
                						case T_DECL:
                						case T_USE:
                						case T_USEL:
                						case T_TYPE_DECL:
                						case T_SUBTYPE_DECL:
                						case T_CURSOR_DECL:
                						case T_VAR_DECL:
                						case T_CONST_DECL:
                						case T_EXC_DECL:
                						case T_FUNCTION_DECL:
                						case T_PROCEDURE_DECL:
                						case T_PRAGMA_DECL:
                						case T_DECL_BLOCK:
                						case T_BLOCK_BLOCK:
                						case T_PROCEDURE_BLOCK:
                						case T_FUNCTION_BLOCK:
                						case T_DECLARE_BLOCK:
                						case T_BEGIN_BLOCK:
                						case T_EXCEPTIONS_BLOCK:
                						case T_COMMIT:
                						case T_DELETE:
                						case T_INSERT:
                						case T_LOCK_TABLE:
                						case T_MERGE:
                						case T_ROLLBACK:
                						case T_SAVEPOINT:
                						case T_SELECT:
                						case T_SET_TRANSACTION:
                						case T_UPDATE:
                						case T_EXECUTE_IMMEDIATE:
                						case T_CASE:
                						case T_OPEN:
                						case T_CLOSE:
                						case T_CONTINUE:
                						case T_PIPE:
                						case T_GOTO:
                						case T_EXIT:
                						case T_RETURN:
                						case T_DECLARE:
                						case T_RAISE:
                						case T_FETCH:
                						case T_LOOP:
                						case T_WHILE:
                						case T_NULL_STAT:
                						case T_FOR:
                						case T_FORALL:
                						case T_IF:
                						case T_ELSIF:
                						case T_ELSE:
                						case T_ENDIF:
                						case T_ASSIGN:
                						case T_CALL:
                						case T_DECLARATION:
                						case T_STATEMENT:
                						case DIVIDE:
                						case LPAREN:
                						case COMMA:
                						case RPAREN:
                						case K_IN:
                						case K_OUT:
                						case ASSIGN:
                						case ID:
                						case INTEGER:
                						case DOT:
                						case K_USING:
                						case DOUBLEDOT:
                						case LLABEL:
                						case RLABEL:
                						case COLON:
                						case AT_SIGN:
                						case EQ:
                						case LTH:
                						case GTH:
                						case MINUS:
                						case PLUS:
                						case DOUBLEVERTBAR:
                						case ASTERISK:
                						case REAL_NUMBER:
                						case QUOTED_STRING:
                						case ARROW:
                						case QSTRING:
                						case QS_ANGLE:
                						case QS_BRACE:
                						case QS_BRACK:
                						case QS_PAREN:
                						case QS_OTHER:
                						case QUOTE:
                						case QS_OTHER_CH:
                						case BINDVAR:
                						case DOUBLEQUOTED_STRING:
                						case NUM:
                						case POINT:
                						case RBRACK:
                						case LBRACK:
                						case PERCENT:
                						case VERTBAR:
                						case NOT_EQ:
                						case LEQ:
                						case GEQ:
                						case NUMBER_VALUE:
                						case WS:
                						case SL_COMMENT:
                						case ML_COMMENT:
                						case 126:
                						case 127:
                						case 128:
                						case 129:
                						case 130:
                						case 131:
                						case 132:
                						case 133:
                						case 134:
                						case 135:
                						case 136:
                						case 137:
                						case 138:
                						case 139:
                						case 140:
                						case 141:
                						case 142:
                						case 143:
                						case 144:
                						case 145:
                						case 146:
                						case 147:
                						case 148:
                						case 149:
                						case 150:
                						case 151:
                						case 152:
                						case 153:
                						case 154:
                						case 155:
                						case 156:
                						case 157:
                						case 158:
                						case 159:
                						case 160:
                						case 161:
                						case 162:
                						case 163:
                						case 164:
                						case 165:
                						case 166:
                						case 167:
                						case 168:
                						case 169:
                						case 170:
                						case 171:
                						case 172:
                						case 173:
                						case 174:
                						case 175:
                						case 176:
                						case 177:
                						case 178:
                						case 179:
                						case 180:
                						case 181:
                						case 182:
                						case 183:
                						case 184:
                						case 185:
                						case 186:
                						case 187:
                						case 188:
                						case 189:
                						case 190:
                						case 191:
                						case 192:
                						case 193:
                						case 194:
                						case 195:
                						case 196:
                						case 197:
                						case 198:
                						case 199:
                						case 200:
                						case 201:
                						case 202:
                						case 203:
                						case 204:
                						case 205:
                						case 206:
                						case 207:
                						case 208:
                						case 209:
                						case 210:
                						case 211:
                						case 212:
                						case 213:
                						case 214:
                						case 215:
                						case 216:
                						case 217:
                						case 218:
                						case 219:
                						case 220:
                						case 221:
                						case 222:
                						case 223:
                						case 224:
                						case 225:
                						case 226:
                						case 227:
                						case 228:
                						case 229:
                						case 230:
                						case 231:
                						case 232:
                						case 233:
                						case 234:
                						case 235:
                						case 236:
                						case 237:
                						case 238:
                						case 239:
                						case 240:
                						case 241:
                						case 242:
                						case 243:
                							{
                								{
                								   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                								    */
                								    int LA217_26 = LA(5);
                								    if ( (( (synpred351_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ))) 
                								    {
                								        alt217=1;
                								    }

                								}
                							}
                						    break;

                						}

                					}
                				    break;
                				case EOF:
                				case DIVIDE:
                				case SEMI:
                				case COMMA:
                				case RPAREN:
                				case K_IN:
                				case ID:
                				case DOT:
                				case K_USING:
                				case DOUBLEDOT:
                				case AT_SIGN:
                				case EQ:
                				case LTH:
                				case GTH:
                				case MINUS:
                				case PLUS:
                				case DOUBLEVERTBAR:
                				case ASTERISK:
                				case PERCENT:
                				case NOT_EQ:
                				case LEQ:
                				case GEQ:
                				case 126:
                				case 131:
                				case 150:
                				case 151:
                				case 153:
                				case 155:
                				case 166:
                				case 177:
                				case 178:
                				case 179:
                				case 183:
                				case 185:
                				case 195:
                				case 210:
                				case 211:
                				case 228:
                				case 229:
                				case 236:
                				case 237:
                				case 238:
                				case 239:
                					{
                						alt217=1;
                					}
                				    break;

                				}

                			}
                		    break;
                		case LPAREN:
                		case K_OUT:
                		case INTEGER:
                		case COLON:
                		case MINUS:
                		case PLUS:
                		case REAL_NUMBER:
                		case QUOTED_STRING:
                		case BINDVAR:
                		case 127:
                		case 128:
                		case 129:
                		case 130:
                		case 157:
                		case 163:
                		case 169:
                		case 184:
                		case 190:
                		case 194:
                		case 199:
                		case 200:
                		case 201:
                		case 203:
                		case 232:
                			{
                				alt217=1;
                			}
                		    break;

                		}

                	}
                    break;
                case DIVIDE:
                case ASTERISK:
                	{
                		alt217=1;
                	}
                    break;

                }

                switch (alt217) 
                {
            	case 1:
            	    // OraclePLSQL.g:783:25: ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr
            	    {

            	        // OraclePLSQL.g:783:25: ( ASTERISK | DIVIDE | kMOD )
            	        {
            	            int alt216=3;
            	            switch ( LA(1) ) 
            	            {
            	            case ASTERISK:
            	            	{
            	            		alt216=1;
            	            	}
            	                break;
            	            case DIVIDE:
            	            	{
            	            		alt216=2;
            	            	}
            	                break;
            	            case ID:
            	            	{
            	            		alt216=3;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 216;
            	                EXCEPTION->state        = 0;


            	                goto rulemul_exprEx;
            	            }

            	            switch (alt216) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:783:27: ASTERISK
            	        	    {
            	        	        ASTERISK682 = (pANTLR3_COMMON_TOKEN) MATCHT(ASTERISK, &FOLLOW_ASTERISK_in_mul_expr6625); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulemul_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ASTERISK682_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ASTERISK682));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ASTERISK682_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:783:38: DIVIDE
            	        	    {
            	        	        DIVIDE683 = (pANTLR3_COMMON_TOKEN) MATCHT(DIVIDE, &FOLLOW_DIVIDE_in_mul_expr6629); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulemul_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        DIVIDE683_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DIVIDE683));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, DIVIDE683_tree);
            	        	        }

            	        	    }
            	        	    break;
            	        	case 3:
            	        	    // OraclePLSQL.g:783:47: kMOD
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_kMOD_in_mul_expr6633);
            	        	        kMOD684=kMOD(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulemul_exprEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kMOD684.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_unary_sign_expr_in_mul_expr6637);
            	        unary_sign_expr685=unary_sign_expr(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulemul_exprEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, unary_sign_expr685.tree);

            	    }
            	    break;

            	default:
            	    goto loop217;	/* break out of the loop */
            	    break;
                }
            }
            loop217: ; /* Jump out to here if this rule does not match */


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulemul_exprEx; /* Prevent compiler warnings */
    rulemul_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(124, mul_expr_StartIndex); }

    return retval;
}
/* $ANTLR end mul_expr */

/** 
 * $ANTLR start unary_sign_expr
 * OraclePLSQL.g:786:1: unary_sign_expr : ( MINUS | PLUS )? atom ;
 */
static OraclePLSQLParser_unary_sign_expr_return
unary_sign_expr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_unary_sign_expr_return retval;
    ANTLR3_UINT32 unary_sign_expr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    set686;
    OraclePLSQLParser_atom_return atom687;
    #undef	RETURN_TYPE_atom687
    #define	RETURN_TYPE_atom687 OraclePLSQLParser_atom_return

    pANTLR3_BASE_TREE set686_tree;

    /* Initialize rule variables
     */
    unary_sign_expr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(125)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    set686       = NULL;
    atom687.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    set686_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:787:5: ( ( MINUS | PLUS )? atom )
        // OraclePLSQL.g:787:7: ( MINUS | PLUS )? atom
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:787:7: ( MINUS | PLUS )?
            {
                int alt218=2;
                switch ( LA(1) ) 
                {
                    case MINUS:
                    case PLUS:
                    	{
                    		alt218=1;
                    	}
                        break;
                }

                switch (alt218) 
                {
            	case 1:
            	    // OraclePLSQL.g:
            	    {
            	        set686=(pANTLR3_COMMON_TOKEN)LT(1);
            	        if ( ((LA(1) >= MINUS) && (LA(1) <= PLUS)) )
            	        {
            	            CONSUME();
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set686)));
            	            PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	        }
            	        else 
            	        {
            	            if (BACKTRACKING>0)
            	            {
            	                FAILEDFLAG = ANTLR3_TRUE;
            	                return retval;
            	            }
            	            CONSTRUCTEX();
            	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	            EXCEPTION->expectingSet = &FOLLOW_set_in_unary_sign_expr6657;
            	            RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_unary_sign_expr6657);    goto ruleunary_sign_exprEx;
            	        }


            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_atom_in_unary_sign_expr6668);
            atom687=atom(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleunary_sign_exprEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, atom687.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleunary_sign_exprEx; /* Prevent compiler warnings */
    ruleunary_sign_exprEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(125, unary_sign_expr_StartIndex); }

    return retval;
}
/* $ANTLR end unary_sign_expr */

/** 
 * $ANTLR start atom
 * OraclePLSQL.g:794:1: atom : ( ( k_case )=> case_statement | ( k_cast )=> cast_expression | extract_datetime_expression | variable_or_function_call ( attribute )? | k_sql attribute | string_literal | numeric_atom | boolean_atom | k_null | timestamp_expression | LPAREN expression RPAREN );
 */
static OraclePLSQLParser_atom_return
atom(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_atom_return retval;
    ANTLR3_UINT32 atom_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN700;
    pANTLR3_COMMON_TOKEN    RPAREN702;
    OraclePLSQLParser_case_statement_return case_statement688;
    #undef	RETURN_TYPE_case_statement688
    #define	RETURN_TYPE_case_statement688 OraclePLSQLParser_case_statement_return

    OraclePLSQLParser_cast_expression_return cast_expression689;
    #undef	RETURN_TYPE_cast_expression689
    #define	RETURN_TYPE_cast_expression689 OraclePLSQLParser_cast_expression_return

    OraclePLSQLParser_extract_datetime_expression_return extract_datetime_expression690;
    #undef	RETURN_TYPE_extract_datetime_expression690
    #define	RETURN_TYPE_extract_datetime_expression690 OraclePLSQLParser_extract_datetime_expression_return

    OraclePLSQLParser_variable_or_function_call_return variable_or_function_call691;
    #undef	RETURN_TYPE_variable_or_function_call691
    #define	RETURN_TYPE_variable_or_function_call691 OraclePLSQLParser_variable_or_function_call_return

    OraclePLSQLParser_attribute_return attribute692;
    #undef	RETURN_TYPE_attribute692
    #define	RETURN_TYPE_attribute692 OraclePLSQLParser_attribute_return

    OraclePLSQLParser_k_sql_return k_sql693;
    #undef	RETURN_TYPE_k_sql693
    #define	RETURN_TYPE_k_sql693 OraclePLSQLParser_k_sql_return

    OraclePLSQLParser_attribute_return attribute694;
    #undef	RETURN_TYPE_attribute694
    #define	RETURN_TYPE_attribute694 OraclePLSQLParser_attribute_return

    OraclePLSQLParser_string_literal_return string_literal695;
    #undef	RETURN_TYPE_string_literal695
    #define	RETURN_TYPE_string_literal695 OraclePLSQLParser_string_literal_return

    OraclePLSQLParser_numeric_atom_return numeric_atom696;
    #undef	RETURN_TYPE_numeric_atom696
    #define	RETURN_TYPE_numeric_atom696 OraclePLSQLParser_numeric_atom_return

    OraclePLSQLParser_boolean_atom_return boolean_atom697;
    #undef	RETURN_TYPE_boolean_atom697
    #define	RETURN_TYPE_boolean_atom697 OraclePLSQLParser_boolean_atom_return

    OraclePLSQLParser_k_null_return k_null698;
    #undef	RETURN_TYPE_k_null698
    #define	RETURN_TYPE_k_null698 OraclePLSQLParser_k_null_return

    OraclePLSQLParser_timestamp_expression_return timestamp_expression699;
    #undef	RETURN_TYPE_timestamp_expression699
    #define	RETURN_TYPE_timestamp_expression699 OraclePLSQLParser_timestamp_expression_return

    OraclePLSQLParser_expression_return expression701;
    #undef	RETURN_TYPE_expression701
    #define	RETURN_TYPE_expression701 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE LPAREN700_tree;
    pANTLR3_BASE_TREE RPAREN702_tree;

    /* Initialize rule variables
     */
    atom_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(126)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN700       = NULL;
    RPAREN702       = NULL;
    case_statement688.tree = NULL;
    cast_expression689.tree = NULL;
    extract_datetime_expression690.tree = NULL;
    variable_or_function_call691.tree = NULL;
    attribute692.tree = NULL;
    k_sql693.tree = NULL;
    attribute694.tree = NULL;
    string_literal695.tree = NULL;
    numeric_atom696.tree = NULL;
    boolean_atom697.tree = NULL;
    k_null698.tree = NULL;
    timestamp_expression699.tree = NULL;
    expression701.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN700_tree   = NULL;
    RPAREN702_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:795:5: ( ( k_case )=> case_statement | ( k_cast )=> cast_expression | extract_datetime_expression | variable_or_function_call ( attribute )? | k_sql attribute | string_literal | numeric_atom | boolean_atom | k_null | timestamp_expression | LPAREN expression RPAREN )
            
            ANTLR3_UINT32 alt220;

            alt220=11;


            {
                int LA220_0 = LA(1);
                if ( (synpred354_OraclePLSQL(ctx)) && (LA220_0 == 157)) 
                {
                    alt220=1;
                }
                else if ( (synpred355_OraclePLSQL(ctx)) && (LA220_0 == 203)) 
                {
                    alt220=2;
                }
                else if ( (LA220_0 == ID)) 
                {
                    switch ( LA(2) ) 
                    {
                    case LPAREN:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    			{
                    				switch ( LA(4) ) 
                    				{
                    				case DIVIDE:
                    				case LPAREN:
                    				case COMMA:
                    				case RPAREN:
                    				case K_IN:
                    				case ID:
                    				case DOT:
                    				case AT_SIGN:
                    				case EQ:
                    				case LTH:
                    				case GTH:
                    				case MINUS:
                    				case PLUS:
                    				case DOUBLEVERTBAR:
                    				case ASTERISK:
                    				case ARROW:
                    				case PERCENT:
                    				case NOT_EQ:
                    				case LEQ:
                    				case GEQ:
                    				case 150:
                    				case 153:
                    				case 178:
                    				case 179:
                    				case 183:
                    				case 185:
                    				case 237:
                    				case 238:
                    				case 239:
                    					{
                    						alt220=4;
                    					}
                    				    break;
                    				case 141:
                    					{
                    						alt220=3;
                    					}
                    				    break;

                    				default:
                    				    if (BACKTRACKING>0)
                    				    {
                    				        FAILEDFLAG = ANTLR3_TRUE;
                    				        return retval;
                    				    }
                    				    CONSTRUCTEX();
                    				    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    				    EXCEPTION->message      = (void *)"";
                    				    EXCEPTION->decisionNum  = 220;
                    				    EXCEPTION->state        = 19;


                    				    goto ruleatomEx;
                    				}

                    			}
                    		    break;
                    		case LPAREN:
                    		case RPAREN:
                    		case K_OUT:
                    		case INTEGER:
                    		case COLON:
                    		case MINUS:
                    		case PLUS:
                    		case REAL_NUMBER:
                    		case QUOTED_STRING:
                    		case BINDVAR:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 148:
                    		case 157:
                    		case 163:
                    		case 169:
                    		case 183:
                    		case 184:
                    		case 189:
                    		case 190:
                    		case 194:
                    		case 199:
                    		case 200:
                    		case 201:
                    		case 203:
                    		case 232:
                    			{
                    				alt220=4;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 17;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;
                    case EOF:
                    case DIVIDE:
                    case SEMI:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case ID:
                    case K_USING:
                    case DOUBLEDOT:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case PERCENT:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 126:
                    case 131:
                    case 133:
                    case 144:
                    case 148:
                    case 150:
                    case 151:
                    case 153:
                    case 155:
                    case 161:
                    case 166:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 181:
                    case 183:
                    case 185:
                    case 187:
                    case 188:
                    case 189:
                    case 195:
                    case 197:
                    case 210:
                    case 211:
                    case 216:
                    case 228:
                    case 229:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt220=4;
                    	}
                        break;
                    case DOT:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 131:
                    		case 132:
                    		case 133:
                    		case 134:
                    		case 135:
                    		case 136:
                    			{
                    				alt220=4;
                    			}
                    		    break;
                    		case 202:
                    			{
                    				alt220=8;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 18;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;

                    default:
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 220;
                        EXCEPTION->state        = 3;


                        goto ruleatomEx;
                    }

                }
                else if ( (LA220_0 == COLON || LA220_0 == BINDVAR)) 
                {
                    alt220=4;
                }
                else if ( (LA220_0 == 127)) 
                {
                    switch ( LA(2) ) 
                    {
                    case EOF:
                    case DIVIDE:
                    case SEMI:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case ID:
                    case K_USING:
                    case DOUBLEDOT:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case PERCENT:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 126:
                    case 131:
                    case 133:
                    case 144:
                    case 148:
                    case 150:
                    case 151:
                    case 153:
                    case 155:
                    case 161:
                    case 166:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 181:
                    case 183:
                    case 185:
                    case 187:
                    case 188:
                    case 189:
                    case 195:
                    case 197:
                    case 210:
                    case 211:
                    case 216:
                    case 228:
                    case 229:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt220=4;
                    	}
                        break;
                    case DOT:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 131:
                    		case 132:
                    		case 133:
                    		case 134:
                    		case 135:
                    		case 136:
                    			{
                    				alt220=4;
                    			}
                    		    break;
                    		case 202:
                    			{
                    				alt220=8;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 18;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;

                    default:
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 220;
                        EXCEPTION->state        = 5;


                        goto ruleatomEx;
                    }

                }
                else if ( (LA220_0 == 128)) 
                {
                    switch ( LA(2) ) 
                    {
                    case EOF:
                    case DIVIDE:
                    case SEMI:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case ID:
                    case K_USING:
                    case DOUBLEDOT:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case PERCENT:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 126:
                    case 131:
                    case 133:
                    case 144:
                    case 148:
                    case 150:
                    case 151:
                    case 153:
                    case 155:
                    case 161:
                    case 166:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 181:
                    case 183:
                    case 185:
                    case 187:
                    case 188:
                    case 189:
                    case 195:
                    case 197:
                    case 210:
                    case 211:
                    case 216:
                    case 228:
                    case 229:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt220=4;
                    	}
                        break;
                    case DOT:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 131:
                    		case 132:
                    		case 133:
                    		case 134:
                    		case 135:
                    		case 136:
                    			{
                    				alt220=4;
                    			}
                    		    break;
                    		case 202:
                    			{
                    				alt220=8;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 18;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;
                    case QUOTED_STRING:
                    case QSTRING:
                    	{
                    		alt220=10;
                    	}
                        break;

                    default:
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 220;
                        EXCEPTION->state        = 6;


                        goto ruleatomEx;
                    }

                }
                else if ( (LA220_0 == K_OUT)) 
                {
                    switch ( LA(2) ) 
                    {
                    case EOF:
                    case DIVIDE:
                    case SEMI:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case ID:
                    case K_USING:
                    case DOUBLEDOT:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case PERCENT:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 126:
                    case 131:
                    case 133:
                    case 144:
                    case 148:
                    case 150:
                    case 151:
                    case 153:
                    case 155:
                    case 161:
                    case 166:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 181:
                    case 183:
                    case 185:
                    case 187:
                    case 188:
                    case 189:
                    case 195:
                    case 197:
                    case 210:
                    case 211:
                    case 216:
                    case 228:
                    case 229:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt220=4;
                    	}
                        break;
                    case DOT:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 131:
                    		case 132:
                    		case 133:
                    		case 134:
                    		case 135:
                    		case 136:
                    			{
                    				alt220=4;
                    			}
                    		    break;
                    		case 202:
                    			{
                    				alt220=8;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 18;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;

                    default:
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 220;
                        EXCEPTION->state        = 7;


                        goto ruleatomEx;
                    }

                }
                else if ( (LA220_0 == 129)) 
                {
                    switch ( LA(2) ) 
                    {
                    case EOF:
                    case DIVIDE:
                    case SEMI:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case ID:
                    case K_USING:
                    case DOUBLEDOT:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case PERCENT:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 126:
                    case 131:
                    case 133:
                    case 144:
                    case 148:
                    case 150:
                    case 151:
                    case 153:
                    case 155:
                    case 161:
                    case 166:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 181:
                    case 183:
                    case 185:
                    case 187:
                    case 188:
                    case 189:
                    case 195:
                    case 197:
                    case 210:
                    case 211:
                    case 216:
                    case 228:
                    case 229:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt220=4;
                    	}
                        break;
                    case DOT:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 131:
                    		case 132:
                    		case 133:
                    		case 134:
                    		case 135:
                    		case 136:
                    			{
                    				alt220=4;
                    			}
                    		    break;
                    		case 202:
                    			{
                    				alt220=8;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 18;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;

                    default:
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 220;
                        EXCEPTION->state        = 8;


                        goto ruleatomEx;
                    }

                }
                else if ( (LA220_0 == 130)) 
                {
                    switch ( LA(2) ) 
                    {
                    case EOF:
                    case DIVIDE:
                    case SEMI:
                    case LPAREN:
                    case COMMA:
                    case RPAREN:
                    case K_IN:
                    case ID:
                    case K_USING:
                    case DOUBLEDOT:
                    case AT_SIGN:
                    case EQ:
                    case LTH:
                    case GTH:
                    case MINUS:
                    case PLUS:
                    case DOUBLEVERTBAR:
                    case ASTERISK:
                    case PERCENT:
                    case NOT_EQ:
                    case LEQ:
                    case GEQ:
                    case 126:
                    case 131:
                    case 133:
                    case 144:
                    case 148:
                    case 150:
                    case 151:
                    case 153:
                    case 155:
                    case 161:
                    case 166:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 181:
                    case 183:
                    case 185:
                    case 187:
                    case 188:
                    case 189:
                    case 195:
                    case 197:
                    case 210:
                    case 211:
                    case 216:
                    case 228:
                    case 229:
                    case 236:
                    case 237:
                    case 238:
                    case 239:
                    	{
                    		alt220=4;
                    	}
                        break;
                    case DOT:
                    	{
                    		switch ( LA(3) ) 
                    		{
                    		case ID:
                    		case 127:
                    		case 128:
                    		case 129:
                    		case 130:
                    		case 131:
                    		case 132:
                    		case 133:
                    		case 134:
                    		case 135:
                    		case 136:
                    			{
                    				alt220=4;
                    			}
                    		    break;
                    		case 202:
                    			{
                    				alt220=8;
                    			}
                    		    break;

                    		default:
                    		    if (BACKTRACKING>0)
                    		    {
                    		        FAILEDFLAG = ANTLR3_TRUE;
                    		        return retval;
                    		    }
                    		    CONSTRUCTEX();
                    		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    		    EXCEPTION->message      = (void *)"";
                    		    EXCEPTION->decisionNum  = 220;
                    		    EXCEPTION->state        = 18;


                    		    goto ruleatomEx;
                    		}

                    	}
                        break;

                    default:
                        if (BACKTRACKING>0)
                        {
                            FAILEDFLAG = ANTLR3_TRUE;
                            return retval;
                        }
                        CONSTRUCTEX();
                        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                        EXCEPTION->message      = (void *)"";
                        EXCEPTION->decisionNum  = 220;
                        EXCEPTION->state        = 9;


                        goto ruleatomEx;
                    }

                }
                else if ( (LA220_0 == 190)) 
                {
                    alt220=5;
                }
                else if ( (LA220_0 == QUOTED_STRING)) 
                {
                    alt220=6;
                }
                else if ( (LA220_0 == INTEGER || LA220_0 == REAL_NUMBER)) 
                {
                    alt220=7;
                }
                else if ( (LA220_0 == 169 || LA220_0 == 194 || ((LA220_0 >= 199) && (LA220_0 <= 201)))) 
                {
                    alt220=8;
                }
                else if ( (LA220_0 == 184)) 
                {
                    alt220=9;
                }
                else if ( (LA220_0 == 163 || LA220_0 == 232)) 
                {
                    alt220=10;
                }
                else if ( (LA220_0 == LPAREN)) 
                {
                    alt220=11;
                }
                else 
                {
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 220;
                    EXCEPTION->state        = 0;


                    goto ruleatomEx;
                }
            }
            switch (alt220) 
            {
        	case 1:
        	    // OraclePLSQL.g:795:7: ( k_case )=> case_statement
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_case_statement_in_atom6695);
        	        case_statement688=case_statement(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, case_statement688.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:796:4: ( k_cast )=> cast_expression
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_cast_expression_in_atom6706);
        	        cast_expression689=cast_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, cast_expression689.tree);

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:797:4: extract_datetime_expression
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_extract_datetime_expression_in_atom6711);
        	        extract_datetime_expression690=extract_datetime_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, extract_datetime_expression690.tree);

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:798:4: variable_or_function_call ( attribute )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_variable_or_function_call_in_atom6716);
        	        variable_or_function_call691=variable_or_function_call(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_or_function_call691.tree);

        	        // OraclePLSQL.g:798:30: ( attribute )?
        	        {
        	            int alt219=2;
        	            switch ( LA(1) ) 
        	            {
        	                case PERCENT:
        	                	{
        	                		alt219=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt219) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:0:0: attribute
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_attribute_in_atom6718);
        	        	        attribute692=attribute(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleatomEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, attribute692.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:799:7: k_sql attribute
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_sql_in_atom6727);
        	        k_sql693=k_sql(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_sql693.tree);
        	        FOLLOWPUSH(FOLLOW_attribute_in_atom6729);
        	        attribute694=attribute(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, attribute694.tree);

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:800:7: string_literal
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_string_literal_in_atom6737);
        	        string_literal695=string_literal(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, string_literal695.tree);

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:801:7: numeric_atom
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_numeric_atom_in_atom6745);
        	        numeric_atom696=numeric_atom(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_atom696.tree);

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:802:7: boolean_atom
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_boolean_atom_in_atom6753);
        	        boolean_atom697=boolean_atom(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, boolean_atom697.tree);

        	    }
        	    break;
        	case 9:
        	    // OraclePLSQL.g:803:7: k_null
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_null_in_atom6761);
        	        k_null698=k_null(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_null698.tree);

        	    }
        	    break;
        	case 10:
        	    // OraclePLSQL.g:804:4: timestamp_expression
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_timestamp_expression_in_atom6766);
        	        timestamp_expression699=timestamp_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, timestamp_expression699.tree);

        	    }
        	    break;
        	case 11:
        	    // OraclePLSQL.g:805:7: LPAREN expression RPAREN
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        LPAREN700 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_atom6774); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        LPAREN700_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN700));
        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN700_tree);
        	        }
        	        FOLLOWPUSH(FOLLOW_expression_in_atom6776);
        	        expression701=expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression701.tree);
        	        RPAREN702 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_atom6778); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleatomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        RPAREN702_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN702));
        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN702_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleatomEx; /* Prevent compiler warnings */
    ruleatomEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(126, atom_StartIndex); }

    return retval;
}
/* $ANTLR end atom */

/** 
 * $ANTLR start variable_or_function_call
 * OraclePLSQL.g:808:1: variable_or_function_call : call_first[T_USE] ( DOT call_next[T_USE] )* ( DOT delete_call )? ;
 */
static OraclePLSQLParser_variable_or_function_call_return
variable_or_function_call(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_variable_or_function_call_return retval;
    ANTLR3_UINT32 variable_or_function_call_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT704;
    pANTLR3_COMMON_TOKEN    DOT706;
    OraclePLSQLParser_call_first_return call_first703;
    #undef	RETURN_TYPE_call_first703
    #define	RETURN_TYPE_call_first703 OraclePLSQLParser_call_first_return

    OraclePLSQLParser_call_next_return call_next705;
    #undef	RETURN_TYPE_call_next705
    #define	RETURN_TYPE_call_next705 OraclePLSQLParser_call_next_return

    OraclePLSQLParser_delete_call_return delete_call707;
    #undef	RETURN_TYPE_delete_call707
    #define	RETURN_TYPE_delete_call707 OraclePLSQLParser_delete_call_return

    pANTLR3_BASE_TREE DOT704_tree;
    pANTLR3_BASE_TREE DOT706_tree;

    /* Initialize rule variables
     */
    variable_or_function_call_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(127)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT704       = NULL;
    DOT706       = NULL;
    call_first703.tree = NULL;
    call_next705.tree = NULL;
    delete_call707.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT704_tree   = NULL;
    DOT706_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:809:5: ( call_first[T_USE] ( DOT call_next[T_USE] )* ( DOT delete_call )? )
        // OraclePLSQL.g:809:7: call_first[T_USE] ( DOT call_next[T_USE] )* ( DOT delete_call )?
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_call_first_in_variable_or_function_call6799);
            call_first703=call_first(ctx, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulevariable_or_function_callEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_first703.tree);

            // OraclePLSQL.g:809:25: ( DOT call_next[T_USE] )*

            for (;;)
            {
                int alt221=2;
                switch ( LA(1) ) 
                {
                case DOT:
                	{
                		switch ( LA(2) ) 
                		{
                		case 133:
                			{
                				{
                				   /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
                				    */
                				    int LA221_3 = LA(3);
                				    if ( (synpred365_OraclePLSQL(ctx))) 
                				    {
                				        alt221=1;
                				    }

                				}
                			}
                		    break;
                		case ID:
                		case 127:
                		case 128:
                		case 129:
                		case 130:
                		case 131:
                		case 132:
                		case 134:
                		case 135:
                		case 136:
                			{
                				alt221=1;
                			}
                		    break;

                		}

                	}
                    break;

                }

                switch (alt221) 
                {
            	case 1:
            	    // OraclePLSQL.g:809:27: DOT call_next[T_USE]
            	    {
            	        DOT704 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_variable_or_function_call6804); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevariable_or_function_callEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT704_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT704));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT704_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_call_next_in_variable_or_function_call6806);
            	        call_next705=call_next(ctx, T_USE);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevariable_or_function_callEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_next705.tree);

            	    }
            	    break;

            	default:
            	    goto loop221;	/* break out of the loop */
            	    break;
                }
            }
            loop221: ; /* Jump out to here if this rule does not match */


            // OraclePLSQL.g:809:51: ( DOT delete_call )?
            {
                int alt222=2;
                switch ( LA(1) ) 
                {
                    case DOT:
                    	{
                    		alt222=1;
                    	}
                        break;
                }

                switch (alt222) 
                {
            	case 1:
            	    // OraclePLSQL.g:809:53: DOT delete_call
            	    {
            	        DOT706 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_variable_or_function_call6814); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevariable_or_function_callEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT706_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT706));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT706_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_delete_call_in_variable_or_function_call6816);
            	        delete_call707=delete_call(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulevariable_or_function_callEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, delete_call707.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulevariable_or_function_callEx; /* Prevent compiler warnings */
    rulevariable_or_function_callEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(127, variable_or_function_call_StartIndex); }

    return retval;
}
/* $ANTLR end variable_or_function_call */

/** 
 * $ANTLR start timestamp_expression
 * OraclePLSQL.g:812:1: timestamp_expression : ( ( k_date | k_timestamp ) quoted_string | k_systimestamp ( kAT kTIME kZONE quoted_string )? );
 */
static OraclePLSQLParser_timestamp_expression_return
timestamp_expression(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_timestamp_expression_return retval;
    ANTLR3_UINT32 timestamp_expression_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_date_return k_date708;
    #undef	RETURN_TYPE_k_date708
    #define	RETURN_TYPE_k_date708 OraclePLSQLParser_k_date_return

    OraclePLSQLParser_k_timestamp_return k_timestamp709;
    #undef	RETURN_TYPE_k_timestamp709
    #define	RETURN_TYPE_k_timestamp709 OraclePLSQLParser_k_timestamp_return

    OraclePLSQLParser_quoted_string_return quoted_string710;
    #undef	RETURN_TYPE_quoted_string710
    #define	RETURN_TYPE_quoted_string710 OraclePLSQLParser_quoted_string_return

    OraclePLSQLParser_k_systimestamp_return k_systimestamp711;
    #undef	RETURN_TYPE_k_systimestamp711
    #define	RETURN_TYPE_k_systimestamp711 OraclePLSQLParser_k_systimestamp_return

    OraclePLSQLParser_kAT_return kAT712;
    #undef	RETURN_TYPE_kAT712
    #define	RETURN_TYPE_kAT712 OraclePLSQLParser_kAT_return

    OraclePLSQLParser_kTIME_return kTIME713;
    #undef	RETURN_TYPE_kTIME713
    #define	RETURN_TYPE_kTIME713 OraclePLSQLParser_kTIME_return

    OraclePLSQLParser_kZONE_return kZONE714;
    #undef	RETURN_TYPE_kZONE714
    #define	RETURN_TYPE_kZONE714 OraclePLSQLParser_kZONE_return

    OraclePLSQLParser_quoted_string_return quoted_string715;
    #undef	RETURN_TYPE_quoted_string715
    #define	RETURN_TYPE_quoted_string715 OraclePLSQLParser_quoted_string_return


    /* Initialize rule variables
     */
    timestamp_expression_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(128)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_date708.tree = NULL;
    k_timestamp709.tree = NULL;
    quoted_string710.tree = NULL;
    k_systimestamp711.tree = NULL;
    kAT712.tree = NULL;
    kTIME713.tree = NULL;
    kZONE714.tree = NULL;
    quoted_string715.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:813:2: ( ( k_date | k_timestamp ) quoted_string | k_systimestamp ( kAT kTIME kZONE quoted_string )? )
            
            ANTLR3_UINT32 alt225;

            alt225=2;

            switch ( LA(1) ) 
            {
            case 128:
            case 163:
            	{
            		alt225=1;
            	}
                break;
            case 232:
            	{
            		alt225=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 225;
                EXCEPTION->state        = 0;


                goto ruletimestamp_expressionEx;
            }

            switch (alt225) 
            {
        	case 1:
        	    // OraclePLSQL.g:813:4: ( k_date | k_timestamp ) quoted_string
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


        	        // OraclePLSQL.g:813:4: ( k_date | k_timestamp )
        	        {
        	            int alt223=2;
        	            switch ( LA(1) ) 
        	            {
        	            case 163:
        	            	{
        	            		alt223=1;
        	            	}
        	                break;
        	            case 128:
        	            	{
        	            		alt223=2;
        	            	}
        	                break;

        	            default:
        	                if (BACKTRACKING>0)
        	                {
        	                    FAILEDFLAG = ANTLR3_TRUE;
        	                    return retval;
        	                }
        	                CONSTRUCTEX();
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
        	                EXCEPTION->message      = (void *)"";
        	                EXCEPTION->decisionNum  = 223;
        	                EXCEPTION->state        = 0;


        	                goto ruletimestamp_expressionEx;
        	            }

        	            switch (alt223) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:813:5: k_date
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_date_in_timestamp_expression6834);
        	        	        k_date708=k_date(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruletimestamp_expressionEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_date708.tree);

        	        	    }
        	        	    break;
        	        	case 2:
        	        	    // OraclePLSQL.g:813:14: k_timestamp
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_k_timestamp_in_timestamp_expression6838);
        	        	        k_timestamp709=k_timestamp(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruletimestamp_expressionEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_timestamp709.tree);

        	        	    }
        	        	    break;

        	            }
        	        }
        	        FOLLOWPUSH(FOLLOW_quoted_string_in_timestamp_expression6841);
        	        quoted_string710=quoted_string(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruletimestamp_expressionEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, quoted_string710.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:814:4: k_systimestamp ( kAT kTIME kZONE quoted_string )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_systimestamp_in_timestamp_expression6846);
        	        k_systimestamp711=k_systimestamp(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruletimestamp_expressionEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_systimestamp711.tree);

        	        // OraclePLSQL.g:814:19: ( kAT kTIME kZONE quoted_string )?
        	        {
        	            int alt224=2;
        	            switch ( LA(1) ) 
        	            {
        	                case ID:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case ID:
        	                		    	{
        	                		    		switch ( LA(3) ) 
        	                		    		{
        	                		    		    case ID:
        	                		    		    	{
        	                		    		    		switch ( LA(4) ) 
        	                		    		    		{
        	                		    		    		    case QUOTED_STRING:
        	                		    		    		    	{
        	                		    		    		    		{
        	                		    		    		    		    int LA224_5 = LA(5);
        	                		    		    		    		    if ( (( (synpred369_OraclePLSQL(ctx)) && ((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "AT"     )))) ))) 
        	                		    		    		    		    {
        	                		    		    		    		        alt224=1;
        	                		    		    		    		    }
        	                		    		    		    		}
        	                		    		    		    	}
        	                		    		    		        break;
        	                		    		    		    case QSTRING:
        	                		    		    		    	{
        	                		    		    		    		alt224=1;
        	                		    		    		    	}
        	                		    		    		        break;
        	                		    		    		}

        	                		    		    	}
        	                		    		        break;
        	                		    		}

        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt224) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:814:20: kAT kTIME kZONE quoted_string
        	        	    {
        	        	        FOLLOWPUSH(FOLLOW_kAT_in_timestamp_expression6849);
        	        	        kAT712=kAT(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruletimestamp_expressionEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kAT712.tree);
        	        	        FOLLOWPUSH(FOLLOW_kTIME_in_timestamp_expression6851);
        	        	        kTIME713=kTIME(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruletimestamp_expressionEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kTIME713.tree);
        	        	        FOLLOWPUSH(FOLLOW_kZONE_in_timestamp_expression6853);
        	        	        kZONE714=kZONE(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruletimestamp_expressionEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kZONE714.tree);
        	        	        FOLLOWPUSH(FOLLOW_quoted_string_in_timestamp_expression6855);
        	        	        quoted_string715=quoted_string(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruletimestamp_expressionEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, quoted_string715.tree);

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruletimestamp_expressionEx; /* Prevent compiler warnings */
    ruletimestamp_expressionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(128, timestamp_expression_StartIndex); }

    return retval;
}
/* $ANTLR end timestamp_expression */

/** 
 * $ANTLR start cast_expression
 * OraclePLSQL.g:817:1: cast_expression : k_cast LPAREN ( expression ) k_as ( datatype | identifier[T_DATATYPE_NAME,T_USE] ) RPAREN ;
 */
static OraclePLSQLParser_cast_expression_return
cast_expression(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_cast_expression_return retval;
    ANTLR3_UINT32 cast_expression_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN717;
    pANTLR3_COMMON_TOKEN    RPAREN722;
    OraclePLSQLParser_k_cast_return k_cast716;
    #undef	RETURN_TYPE_k_cast716
    #define	RETURN_TYPE_k_cast716 OraclePLSQLParser_k_cast_return

    OraclePLSQLParser_expression_return expression718;
    #undef	RETURN_TYPE_expression718
    #define	RETURN_TYPE_expression718 OraclePLSQLParser_expression_return

    OraclePLSQLParser_k_as_return k_as719;
    #undef	RETURN_TYPE_k_as719
    #define	RETURN_TYPE_k_as719 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_datatype_return datatype720;
    #undef	RETURN_TYPE_datatype720
    #define	RETURN_TYPE_datatype720 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_identifier_return identifier721;
    #undef	RETURN_TYPE_identifier721
    #define	RETURN_TYPE_identifier721 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE LPAREN717_tree;
    pANTLR3_BASE_TREE RPAREN722_tree;

    /* Initialize rule variables
     */
    cast_expression_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(129)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN717       = NULL;
    RPAREN722       = NULL;
    k_cast716.tree = NULL;
    expression718.tree = NULL;
    k_as719.tree = NULL;
    datatype720.tree = NULL;
    identifier721.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN717_tree   = NULL;
    RPAREN722_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:818:5: ( k_cast LPAREN ( expression ) k_as ( datatype | identifier[T_DATATYPE_NAME,T_USE] ) RPAREN )
        // OraclePLSQL.g:818:7: k_cast LPAREN ( expression ) k_as ( datatype | identifier[T_DATATYPE_NAME,T_USE] ) RPAREN
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_cast_in_cast_expression6874);
            k_cast716=k_cast(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecast_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_cast716.tree);
            LPAREN717 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_cast_expression6876); 
            if  (HASEXCEPTION())
            {
                goto rulecast_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN717_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN717));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN717_tree);
            }
            // OraclePLSQL.g:818:21: ( expression )
            // OraclePLSQL.g:818:22: expression
            {
                FOLLOWPUSH(FOLLOW_expression_in_cast_expression6879);
                expression718=expression(ctx);

                FOLLOWPOP();
                if  (HASEXCEPTION())
                {
                    goto rulecast_expressionEx;
                }
                if (HASFAILED())
                {
                    return retval;
                }
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression718.tree);

            }

            FOLLOWPUSH(FOLLOW_k_as_in_cast_expression6884);
            k_as719=k_as(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecast_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as719.tree);

            // OraclePLSQL.g:818:72: ( datatype | identifier[T_DATATYPE_NAME,T_USE] )
            {
                int alt226=2;
                switch ( LA(1) ) 
                {
                case 127:
                case 128:
                case 129:
                case 130:
                case 131:
                case 132:
                case 133:
                case 134:
                case 135:
                case 136:
                case 140:
                case 142:
                case 143:
                case 146:
                case 147:
                case 158:
                case 163:
                case 182:
                case 204:
                case 217:
                case 226:
                	{
                		alt226=1;
                	}
                    break;
                case ID:
                	{

                		{
                		    int LA226_2 = LA(2);
                		    if ( (synpred370_OraclePLSQL(ctx))) 
                		    {
                		        alt226=1;
                		    }
                		    else if ( (ANTLR3_TRUE)) 
                		    {
                		        alt226=2;
                		    }
                		    else 
                		    {
                		        if (BACKTRACKING>0)
                		        {
                		            FAILEDFLAG = ANTLR3_TRUE;
                		            return retval;
                		        }
                		    
                		        CONSTRUCTEX();
                		        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                		        EXCEPTION->message      = (void *)"";
                		        EXCEPTION->decisionNum  = 226;
                		        EXCEPTION->state        = 2;


                		        goto rulecast_expressionEx;
                		    }
                		}
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 226;
                    EXCEPTION->state        = 0;


                    goto rulecast_expressionEx;
                }

                switch (alt226) 
                {
            	case 1:
            	    // OraclePLSQL.g:818:73: datatype
            	    {
            	        FOLLOWPUSH(FOLLOW_datatype_in_cast_expression6887);
            	        datatype720=datatype(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecast_expressionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype720.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:818:84: identifier[T_DATATYPE_NAME,T_USE]
            	    {
            	        FOLLOWPUSH(FOLLOW_identifier_in_cast_expression6891);
            	        identifier721=identifier(ctx, T_DATATYPE_NAME, T_USE);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecast_expressionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier721.tree);

            	    }
            	    break;

                }
            }
            RPAREN722 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_cast_expression6896); 
            if  (HASEXCEPTION())
            {
                goto rulecast_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN722_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN722));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN722_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecast_expressionEx; /* Prevent compiler warnings */
    rulecast_expressionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(129, cast_expression_StartIndex); }

    return retval;
}
/* $ANTLR end cast_expression */

/** 
 * $ANTLR start extract_datetime_expression
 * OraclePLSQL.g:821:1: extract_datetime_expression : identifier[T_FUNCTION_NAME,0] LPAREN ( identifier[T_RESERVED,0] ) r_from expression ( identifier[T_RESERVED,0] r_to identifier[T_RESERVED,0] )? RPAREN ;
 */
static OraclePLSQLParser_extract_datetime_expression_return
extract_datetime_expression(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_extract_datetime_expression_return retval;
    ANTLR3_UINT32 extract_datetime_expression_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN724;
    pANTLR3_COMMON_TOKEN    RPAREN731;
    OraclePLSQLParser_identifier_return identifier723;
    #undef	RETURN_TYPE_identifier723
    #define	RETURN_TYPE_identifier723 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_identifier_return identifier725;
    #undef	RETURN_TYPE_identifier725
    #define	RETURN_TYPE_identifier725 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_r_from_return r_from726;
    #undef	RETURN_TYPE_r_from726
    #define	RETURN_TYPE_r_from726 OraclePLSQLParser_r_from_return

    OraclePLSQLParser_expression_return expression727;
    #undef	RETURN_TYPE_expression727
    #define	RETURN_TYPE_expression727 OraclePLSQLParser_expression_return

    OraclePLSQLParser_identifier_return identifier728;
    #undef	RETURN_TYPE_identifier728
    #define	RETURN_TYPE_identifier728 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_r_to_return r_to729;
    #undef	RETURN_TYPE_r_to729
    #define	RETURN_TYPE_r_to729 OraclePLSQLParser_r_to_return

    OraclePLSQLParser_identifier_return identifier730;
    #undef	RETURN_TYPE_identifier730
    #define	RETURN_TYPE_identifier730 OraclePLSQLParser_identifier_return

    pANTLR3_BASE_TREE LPAREN724_tree;
    pANTLR3_BASE_TREE RPAREN731_tree;

    /* Initialize rule variables
     */
    extract_datetime_expression_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(130)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN724       = NULL;
    RPAREN731       = NULL;
    identifier723.tree = NULL;
    identifier725.tree = NULL;
    r_from726.tree = NULL;
    expression727.tree = NULL;
    identifier728.tree = NULL;
    r_to729.tree = NULL;
    identifier730.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN724_tree   = NULL;
    RPAREN731_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:822:2: ( identifier[T_FUNCTION_NAME,0] LPAREN ( identifier[T_RESERVED,0] ) r_from expression ( identifier[T_RESERVED,0] r_to identifier[T_RESERVED,0] )? RPAREN )
        // OraclePLSQL.g:823:3: identifier[T_FUNCTION_NAME,0] LPAREN ( identifier[T_RESERVED,0] ) r_from expression ( identifier[T_RESERVED,0] r_to identifier[T_RESERVED,0] )? RPAREN
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_identifier_in_extract_datetime_expression6913);
            identifier723=identifier(ctx, T_FUNCTION_NAME, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleextract_datetime_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier723.tree);
            LPAREN724 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_extract_datetime_expression6924); 
            if  (HASEXCEPTION())
            {
                goto ruleextract_datetime_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN724_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN724));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN724_tree);
            }
            // OraclePLSQL.g:825:9: ( identifier[T_RESERVED,0] )
            // OraclePLSQL.g:825:11: identifier[T_RESERVED,0]
            {
                FOLLOWPUSH(FOLLOW_identifier_in_extract_datetime_expression6936);
                identifier725=identifier(ctx, T_RESERVED, 0);

                FOLLOWPOP();
                if  (HASEXCEPTION())
                {
                    goto ruleextract_datetime_expressionEx;
                }
                if (HASFAILED())
                {
                    return retval;
                }
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier725.tree);

            }

            FOLLOWPUSH(FOLLOW_r_from_in_extract_datetime_expression7047);
            r_from726=r_from(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleextract_datetime_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_from726.tree);
            FOLLOWPUSH(FOLLOW_expression_in_extract_datetime_expression7057);
            expression727=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleextract_datetime_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression727.tree);

            // OraclePLSQL.g:840:9: ( identifier[T_RESERVED,0] r_to identifier[T_RESERVED,0] )?
            {
                int alt227=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		alt227=1;
                    	}
                        break;
                }

                switch (alt227) 
                {
            	case 1:
            	    // OraclePLSQL.g:840:11: identifier[T_RESERVED,0] r_to identifier[T_RESERVED,0]
            	    {
            	        FOLLOWPUSH(FOLLOW_identifier_in_extract_datetime_expression7078);
            	        identifier728=identifier(ctx, T_RESERVED, 0);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleextract_datetime_expressionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier728.tree);
            	        FOLLOWPUSH(FOLLOW_r_to_in_extract_datetime_expression7081);
            	        r_to729=r_to(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleextract_datetime_expressionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, r_to729.tree);
            	        FOLLOWPUSH(FOLLOW_identifier_in_extract_datetime_expression7083);
            	        identifier730=identifier(ctx, T_RESERVED, 0);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleextract_datetime_expressionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier730.tree);

            	    }
            	    break;

                }
            }
            RPAREN731 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_extract_datetime_expression7096); 
            if  (HASEXCEPTION())
            {
                goto ruleextract_datetime_expressionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN731_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN731));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN731_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleextract_datetime_expressionEx; /* Prevent compiler warnings */
    ruleextract_datetime_expressionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(130, extract_datetime_expression_StartIndex); }

    return retval;
}
/* $ANTLR end extract_datetime_expression */

/** 
 * $ANTLR start attribute
 * OraclePLSQL.g:844:1: attribute : ( type_attr | rowtype_attr | notfound_attr | found_attr | isopen_attr | rowcount_attr | bulk_rowcount_attr LPAREN expression RPAREN | charset_attr );
 */
static OraclePLSQLParser_attribute_return
attribute(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_attribute_return retval;
    ANTLR3_UINT32 attribute_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN739;
    pANTLR3_COMMON_TOKEN    RPAREN741;
    OraclePLSQLParser_type_attr_return type_attr732;
    #undef	RETURN_TYPE_type_attr732
    #define	RETURN_TYPE_type_attr732 OraclePLSQLParser_type_attr_return

    OraclePLSQLParser_rowtype_attr_return rowtype_attr733;
    #undef	RETURN_TYPE_rowtype_attr733
    #define	RETURN_TYPE_rowtype_attr733 OraclePLSQLParser_rowtype_attr_return

    OraclePLSQLParser_notfound_attr_return notfound_attr734;
    #undef	RETURN_TYPE_notfound_attr734
    #define	RETURN_TYPE_notfound_attr734 OraclePLSQLParser_notfound_attr_return

    OraclePLSQLParser_found_attr_return found_attr735;
    #undef	RETURN_TYPE_found_attr735
    #define	RETURN_TYPE_found_attr735 OraclePLSQLParser_found_attr_return

    OraclePLSQLParser_isopen_attr_return isopen_attr736;
    #undef	RETURN_TYPE_isopen_attr736
    #define	RETURN_TYPE_isopen_attr736 OraclePLSQLParser_isopen_attr_return

    OraclePLSQLParser_rowcount_attr_return rowcount_attr737;
    #undef	RETURN_TYPE_rowcount_attr737
    #define	RETURN_TYPE_rowcount_attr737 OraclePLSQLParser_rowcount_attr_return

    OraclePLSQLParser_bulk_rowcount_attr_return bulk_rowcount_attr738;
    #undef	RETURN_TYPE_bulk_rowcount_attr738
    #define	RETURN_TYPE_bulk_rowcount_attr738 OraclePLSQLParser_bulk_rowcount_attr_return

    OraclePLSQLParser_expression_return expression740;
    #undef	RETURN_TYPE_expression740
    #define	RETURN_TYPE_expression740 OraclePLSQLParser_expression_return

    OraclePLSQLParser_charset_attr_return charset_attr742;
    #undef	RETURN_TYPE_charset_attr742
    #define	RETURN_TYPE_charset_attr742 OraclePLSQLParser_charset_attr_return

    pANTLR3_BASE_TREE LPAREN739_tree;
    pANTLR3_BASE_TREE RPAREN741_tree;

    /* Initialize rule variables
     */
    attribute_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(131)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN739       = NULL;
    RPAREN741       = NULL;
    type_attr732.tree = NULL;
    rowtype_attr733.tree = NULL;
    notfound_attr734.tree = NULL;
    found_attr735.tree = NULL;
    isopen_attr736.tree = NULL;
    rowcount_attr737.tree = NULL;
    bulk_rowcount_attr738.tree = NULL;
    expression740.tree = NULL;
    charset_attr742.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN739_tree   = NULL;
    RPAREN741_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:845:5: ( type_attr | rowtype_attr | notfound_attr | found_attr | isopen_attr | rowcount_attr | bulk_rowcount_attr LPAREN expression RPAREN | charset_attr )
            
            ANTLR3_UINT32 alt228;

            alt228=8;

            switch ( LA(1) ) 
            {
            case PERCENT:
            	{
            		switch ( LA(2) ) 
            		{
            		case 240:
            			{
            				alt228=3;
            			}
            		    break;
            		case 127:
            			{
            				alt228=4;
            			}
            		    break;
            		case 241:
            			{
            				alt228=5;
            			}
            		    break;
            		case 129:
            			{
            				alt228=6;
            			}
            		    break;
            		case 242:
            			{
            				alt228=7;
            			}
            		    break;
            		case 243:
            			{
            				alt228=8;
            			}
            		    break;
            		case 196:
            			{
            				alt228=1;
            			}
            		    break;
            		case 231:
            			{
            				alt228=2;
            			}
            		    break;

            		default:
            		    if (BACKTRACKING>0)
            		    {
            		        FAILEDFLAG = ANTLR3_TRUE;
            		        return retval;
            		    }
            		    CONSTRUCTEX();
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            		    EXCEPTION->message      = (void *)"";
            		    EXCEPTION->decisionNum  = 228;
            		    EXCEPTION->state        = 1;


            		    goto ruleattributeEx;
            		}

            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 228;
                EXCEPTION->state        = 0;


                goto ruleattributeEx;
            }

            switch (alt228) 
            {
        	case 1:
        	    // OraclePLSQL.g:845:7: type_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_type_attr_in_attribute7113);
        	        type_attr732=type_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, type_attr732.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:846:7: rowtype_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_rowtype_attr_in_attribute7121);
        	        rowtype_attr733=rowtype_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, rowtype_attr733.tree);

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:847:7: notfound_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_notfound_attr_in_attribute7129);
        	        notfound_attr734=notfound_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, notfound_attr734.tree);

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:848:7: found_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_found_attr_in_attribute7137);
        	        found_attr735=found_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, found_attr735.tree);

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:849:7: isopen_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_isopen_attr_in_attribute7145);
        	        isopen_attr736=isopen_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, isopen_attr736.tree);

        	    }
        	    break;
        	case 6:
        	    // OraclePLSQL.g:850:7: rowcount_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_rowcount_attr_in_attribute7153);
        	        rowcount_attr737=rowcount_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, rowcount_attr737.tree);

        	    }
        	    break;
        	case 7:
        	    // OraclePLSQL.g:851:7: bulk_rowcount_attr LPAREN expression RPAREN
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_bulk_rowcount_attr_in_attribute7161);
        	        bulk_rowcount_attr738=bulk_rowcount_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, bulk_rowcount_attr738.tree);
        	        LPAREN739 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_attribute7163); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        LPAREN739_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN739));
        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN739_tree);
        	        }
        	        FOLLOWPUSH(FOLLOW_expression_in_attribute7165);
        	        expression740=expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression740.tree);
        	        RPAREN741 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_attribute7167); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        RPAREN741_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN741));
        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN741_tree);
        	        }

        	    }
        	    break;
        	case 8:
        	    // OraclePLSQL.g:852:7: charset_attr
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_charset_attr_in_attribute7175);
        	        charset_attr742=charset_attr(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleattributeEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, charset_attr742.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleattributeEx; /* Prevent compiler warnings */
    ruleattributeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(131, attribute_StartIndex); }

    return retval;
}
/* $ANTLR end attribute */

/** 
 * $ANTLR start call_args
 * OraclePLSQL.g:855:1: call_args : LPAREN ( parameter ( COMMA parameter )* )? RPAREN ;
 */
static OraclePLSQLParser_call_args_return
call_args(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_call_args_return retval;
    ANTLR3_UINT32 call_args_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN743;
    pANTLR3_COMMON_TOKEN    COMMA745;
    pANTLR3_COMMON_TOKEN    RPAREN747;
    OraclePLSQLParser_parameter_return parameter744;
    #undef	RETURN_TYPE_parameter744
    #define	RETURN_TYPE_parameter744 OraclePLSQLParser_parameter_return

    OraclePLSQLParser_parameter_return parameter746;
    #undef	RETURN_TYPE_parameter746
    #define	RETURN_TYPE_parameter746 OraclePLSQLParser_parameter_return

    pANTLR3_BASE_TREE LPAREN743_tree;
    pANTLR3_BASE_TREE COMMA745_tree;
    pANTLR3_BASE_TREE RPAREN747_tree;

    /* Initialize rule variables
     */
    call_args_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(132)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN743       = NULL;
    COMMA745       = NULL;
    RPAREN747       = NULL;
    parameter744.tree = NULL;
    parameter746.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN743_tree   = NULL;
    COMMA745_tree   = NULL;
    RPAREN747_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:856:5: ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )
        // OraclePLSQL.g:856:7: LPAREN ( parameter ( COMMA parameter )* )? RPAREN
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            LPAREN743 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_call_args7206); 
            if  (HASEXCEPTION())
            {
                goto rulecall_argsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN743_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN743));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN743_tree);
            }

            // OraclePLSQL.g:856:14: ( parameter ( COMMA parameter )* )?
            {
                int alt230=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    case K_OUT:
                    case ID:
                    case INTEGER:
                    case COLON:
                    case MINUS:
                    case PLUS:
                    case REAL_NUMBER:
                    case QUOTED_STRING:
                    case BINDVAR:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 157:
                    case 163:
                    case 169:
                    case 183:
                    case 184:
                    case 190:
                    case 194:
                    case 199:
                    case 200:
                    case 201:
                    case 203:
                    case 232:
                    	{
                    		alt230=1;
                    	}
                        break;
                }

                switch (alt230) 
                {
            	case 1:
            	    // OraclePLSQL.g:856:16: parameter ( COMMA parameter )*
            	    {
            	        FOLLOWPUSH(FOLLOW_parameter_in_call_args7210);
            	        parameter744=parameter(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecall_argsEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter744.tree);

            	        // OraclePLSQL.g:856:26: ( COMMA parameter )*

            	        for (;;)
            	        {
            	            int alt229=2;
            	            switch ( LA(1) ) 
            	            {
            	            case COMMA:
            	            	{
            	            		alt229=1;
            	            	}
            	                break;

            	            }

            	            switch (alt229) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:856:28: COMMA parameter
            	        	    {
            	        	        COMMA745 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_call_args7214); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecall_argsEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        COMMA745_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA745));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA745_tree);
            	        	        }
            	        	        FOLLOWPUSH(FOLLOW_parameter_in_call_args7216);
            	        	        parameter746=parameter(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecall_argsEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter746.tree);

            	        	    }
            	        	    break;

            	        	default:
            	        	    goto loop229;	/* break out of the loop */
            	        	    break;
            	            }
            	        }
            	        loop229: ; /* Jump out to here if this rule does not match */


            	    }
            	    break;

                }
            }
            RPAREN747 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_call_args7224); 
            if  (HASEXCEPTION())
            {
                goto rulecall_argsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN747_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN747));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN747_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecall_argsEx; /* Prevent compiler warnings */
    rulecall_argsEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(132, call_args_StartIndex); }

    return retval;
}
/* $ANTLR end call_args */

/** 
 * $ANTLR start boolean_atom
 * OraclePLSQL.g:859:1: boolean_atom : ( boolean_literal | collection_exists | conditional_predicate );
 */
static OraclePLSQLParser_boolean_atom_return
boolean_atom(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_boolean_atom_return retval;
    ANTLR3_UINT32 boolean_atom_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_boolean_literal_return boolean_literal748;
    #undef	RETURN_TYPE_boolean_literal748
    #define	RETURN_TYPE_boolean_literal748 OraclePLSQLParser_boolean_literal_return

    OraclePLSQLParser_collection_exists_return collection_exists749;
    #undef	RETURN_TYPE_collection_exists749
    #define	RETURN_TYPE_collection_exists749 OraclePLSQLParser_collection_exists_return

    OraclePLSQLParser_conditional_predicate_return conditional_predicate750;
    #undef	RETURN_TYPE_conditional_predicate750
    #define	RETURN_TYPE_conditional_predicate750 OraclePLSQLParser_conditional_predicate_return


    /* Initialize rule variables
     */
    boolean_atom_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(133)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    boolean_literal748.tree = NULL;
    collection_exists749.tree = NULL;
    conditional_predicate750.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:860:5: ( boolean_literal | collection_exists | conditional_predicate )
            
            ANTLR3_UINT32 alt231;

            alt231=3;

            switch ( LA(1) ) 
            {
            case 169:
            case 194:
            	{
            		alt231=1;
            	}
                break;
            case K_OUT:
            case ID:
            case 127:
            case 128:
            case 129:
            case 130:
            	{
            		alt231=2;
            	}
                break;
            case 199:
            case 200:
            case 201:
            	{
            		alt231=3;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 231;
                EXCEPTION->state        = 0;


                goto ruleboolean_atomEx;
            }

            switch (alt231) 
            {
        	case 1:
        	    // OraclePLSQL.g:860:7: boolean_literal
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_boolean_literal_in_boolean_atom7241);
        	        boolean_literal748=boolean_literal(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleboolean_atomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, boolean_literal748.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:861:7: collection_exists
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_collection_exists_in_boolean_atom7249);
        	        collection_exists749=collection_exists(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleboolean_atomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, collection_exists749.tree);

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:862:7: conditional_predicate
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_conditional_predicate_in_boolean_atom7257);
        	        conditional_predicate750=conditional_predicate(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleboolean_atomEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, conditional_predicate750.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleboolean_atomEx; /* Prevent compiler warnings */
    ruleboolean_atomEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(133, boolean_atom_StartIndex); }

    return retval;
}
/* $ANTLR end boolean_atom */

/** 
 * $ANTLR start numeric_atom
 * OraclePLSQL.g:865:1: numeric_atom : numeric_literal ;
 */
static OraclePLSQLParser_numeric_atom_return
numeric_atom(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_numeric_atom_return retval;
    ANTLR3_UINT32 numeric_atom_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_numeric_literal_return numeric_literal751;
    #undef	RETURN_TYPE_numeric_literal751
    #define	RETURN_TYPE_numeric_literal751 OraclePLSQLParser_numeric_literal_return


    /* Initialize rule variables
     */
    numeric_atom_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(134)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    numeric_literal751.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:866:5: ( numeric_literal )
        // OraclePLSQL.g:866:7: numeric_literal
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_numeric_literal_in_numeric_atom7274);
            numeric_literal751=numeric_literal(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulenumeric_atomEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, numeric_literal751.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenumeric_atomEx; /* Prevent compiler warnings */
    rulenumeric_atomEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(134, numeric_atom_StartIndex); }

    return retval;
}
/* $ANTLR end numeric_atom */

/** 
 * $ANTLR start numeric_literal
 * OraclePLSQL.g:869:1: numeric_literal : ( INTEGER | REAL_NUMBER );
 */
static OraclePLSQLParser_numeric_literal_return
numeric_literal(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_numeric_literal_return retval;
    ANTLR3_UINT32 numeric_literal_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    set752;

    pANTLR3_BASE_TREE set752_tree;

    /* Initialize rule variables
     */
    numeric_literal_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(135)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    set752       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    set752_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:870:5: ( INTEGER | REAL_NUMBER )
        // OraclePLSQL.g:
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            set752=(pANTLR3_COMMON_TOKEN)LT(1);
            if ( LA(1) == INTEGER || LA(1) == REAL_NUMBER )
            {
                CONSUME();
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set752)));
                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            }
            else 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
                EXCEPTION->expectingSet = &FOLLOW_set_in_numeric_literal0;
                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_numeric_literal0);    goto rulenumeric_literalEx;
            }


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenumeric_literalEx; /* Prevent compiler warnings */
    rulenumeric_literalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(135, numeric_literal_StartIndex); }

    return retval;
}
/* $ANTLR end numeric_literal */

/** 
 * $ANTLR start boolean_literal
 * OraclePLSQL.g:874:1: boolean_literal : ( k_true | k_false );
 */
static OraclePLSQLParser_boolean_literal_return
boolean_literal(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_boolean_literal_return retval;
    ANTLR3_UINT32 boolean_literal_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_true_return k_true753;
    #undef	RETURN_TYPE_k_true753
    #define	RETURN_TYPE_k_true753 OraclePLSQLParser_k_true_return

    OraclePLSQLParser_k_false_return k_false754;
    #undef	RETURN_TYPE_k_false754
    #define	RETURN_TYPE_k_false754 OraclePLSQLParser_k_false_return


    /* Initialize rule variables
     */
    boolean_literal_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(136)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_true753.tree = NULL;
    k_false754.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:875:5: ( k_true | k_false )
            
            ANTLR3_UINT32 alt232;

            alt232=2;

            switch ( LA(1) ) 
            {
            case 194:
            	{
            		alt232=1;
            	}
                break;
            case 169:
            	{
            		alt232=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 232;
                EXCEPTION->state        = 0;


                goto ruleboolean_literalEx;
            }

            switch (alt232) 
            {
        	case 1:
        	    // OraclePLSQL.g:875:7: k_true
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_true_in_boolean_literal7316);
        	        k_true753=k_true(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleboolean_literalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_true753.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:876:7: k_false
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_false_in_boolean_literal7324);
        	        k_false754=k_false(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleboolean_literalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_false754.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleboolean_literalEx; /* Prevent compiler warnings */
    ruleboolean_literalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(136, boolean_literal_StartIndex); }

    return retval;
}
/* $ANTLR end boolean_literal */

/** 
 * $ANTLR start string_literal
 * OraclePLSQL.g:879:1: string_literal : QUOTED_STRING ;
 */
static OraclePLSQLParser_string_literal_return
string_literal(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_string_literal_return retval;
    ANTLR3_UINT32 string_literal_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    QUOTED_STRING755;

    pANTLR3_BASE_TREE QUOTED_STRING755_tree;

    /* Initialize rule variables
     */
    string_literal_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(137)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    QUOTED_STRING755       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    QUOTED_STRING755_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:880:5: ( QUOTED_STRING )
        // OraclePLSQL.g:880:7: QUOTED_STRING
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            QUOTED_STRING755 = (pANTLR3_COMMON_TOKEN) MATCHT(QUOTED_STRING, &FOLLOW_QUOTED_STRING_in_string_literal7341); 
            if  (HASEXCEPTION())
            {
                goto rulestring_literalEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            QUOTED_STRING755_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, QUOTED_STRING755));
            ADAPTOR->addChild(ADAPTOR, root_0, QUOTED_STRING755_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulestring_literalEx; /* Prevent compiler warnings */
    rulestring_literalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(137, string_literal_StartIndex); }

    return retval;
}
/* $ANTLR end string_literal */

/** 
 * $ANTLR start collection_exists
 * OraclePLSQL.g:883:1: collection_exists : variable_name[T_USE] DOT k_exists LPAREN expression RPAREN ;
 */
static OraclePLSQLParser_collection_exists_return
collection_exists(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_collection_exists_return retval;
    ANTLR3_UINT32 collection_exists_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT757;
    pANTLR3_COMMON_TOKEN    LPAREN759;
    pANTLR3_COMMON_TOKEN    RPAREN761;
    OraclePLSQLParser_variable_name_return variable_name756;
    #undef	RETURN_TYPE_variable_name756
    #define	RETURN_TYPE_variable_name756 OraclePLSQLParser_variable_name_return

    OraclePLSQLParser_k_exists_return k_exists758;
    #undef	RETURN_TYPE_k_exists758
    #define	RETURN_TYPE_k_exists758 OraclePLSQLParser_k_exists_return

    OraclePLSQLParser_expression_return expression760;
    #undef	RETURN_TYPE_expression760
    #define	RETURN_TYPE_expression760 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE DOT757_tree;
    pANTLR3_BASE_TREE LPAREN759_tree;
    pANTLR3_BASE_TREE RPAREN761_tree;

    /* Initialize rule variables
     */
    collection_exists_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(138)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT757       = NULL;
    LPAREN759       = NULL;
    RPAREN761       = NULL;
    variable_name756.tree = NULL;
    k_exists758.tree = NULL;
    expression760.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT757_tree   = NULL;
    LPAREN759_tree   = NULL;
    RPAREN761_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:884:5: ( variable_name[T_USE] DOT k_exists LPAREN expression RPAREN )
        // OraclePLSQL.g:884:7: variable_name[T_USE] DOT k_exists LPAREN expression RPAREN
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_variable_name_in_collection_exists7358);
            variable_name756=variable_name(ctx, T_USE);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecollection_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, variable_name756.tree);
            DOT757 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_collection_exists7361); 
            if  (HASEXCEPTION())
            {
                goto rulecollection_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            DOT757_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT757));
            ADAPTOR->addChild(ADAPTOR, root_0, DOT757_tree);
            }
            FOLLOWPUSH(FOLLOW_k_exists_in_collection_exists7363);
            k_exists758=k_exists(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecollection_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_exists758.tree);
            LPAREN759 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_collection_exists7365); 
            if  (HASEXCEPTION())
            {
                goto rulecollection_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            LPAREN759_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN759));
            ADAPTOR->addChild(ADAPTOR, root_0, LPAREN759_tree);
            }
            FOLLOWPUSH(FOLLOW_expression_in_collection_exists7367);
            expression760=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecollection_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression760.tree);
            RPAREN761 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_collection_exists7369); 
            if  (HASEXCEPTION())
            {
                goto rulecollection_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            RPAREN761_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN761));
            ADAPTOR->addChild(ADAPTOR, root_0, RPAREN761_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecollection_existsEx; /* Prevent compiler warnings */
    rulecollection_existsEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(138, collection_exists_StartIndex); }

    return retval;
}
/* $ANTLR end collection_exists */

/** 
 * $ANTLR start conditional_predicate
 * OraclePLSQL.g:887:1: conditional_predicate : ( k_inserting | k_updating ( LPAREN QUOTED_STRING RPAREN )? | k_deleting );
 */
static OraclePLSQLParser_conditional_predicate_return
conditional_predicate(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_conditional_predicate_return retval;
    ANTLR3_UINT32 conditional_predicate_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LPAREN764;
    pANTLR3_COMMON_TOKEN    QUOTED_STRING765;
    pANTLR3_COMMON_TOKEN    RPAREN766;
    OraclePLSQLParser_k_inserting_return k_inserting762;
    #undef	RETURN_TYPE_k_inserting762
    #define	RETURN_TYPE_k_inserting762 OraclePLSQLParser_k_inserting_return

    OraclePLSQLParser_k_updating_return k_updating763;
    #undef	RETURN_TYPE_k_updating763
    #define	RETURN_TYPE_k_updating763 OraclePLSQLParser_k_updating_return

    OraclePLSQLParser_k_deleting_return k_deleting767;
    #undef	RETURN_TYPE_k_deleting767
    #define	RETURN_TYPE_k_deleting767 OraclePLSQLParser_k_deleting_return

    pANTLR3_BASE_TREE LPAREN764_tree;
    pANTLR3_BASE_TREE QUOTED_STRING765_tree;
    pANTLR3_BASE_TREE RPAREN766_tree;

    /* Initialize rule variables
     */
    conditional_predicate_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(139)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LPAREN764       = NULL;
    QUOTED_STRING765       = NULL;
    RPAREN766       = NULL;
    k_inserting762.tree = NULL;
    k_updating763.tree = NULL;
    k_deleting767.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LPAREN764_tree   = NULL;
    QUOTED_STRING765_tree   = NULL;
    RPAREN766_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:888:5: ( k_inserting | k_updating ( LPAREN QUOTED_STRING RPAREN )? | k_deleting )
            
            ANTLR3_UINT32 alt234;

            alt234=3;

            switch ( LA(1) ) 
            {
            case 199:
            	{
            		alt234=1;
            	}
                break;
            case 200:
            	{
            		alt234=2;
            	}
                break;
            case 201:
            	{
            		alt234=3;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 234;
                EXCEPTION->state        = 0;


                goto ruleconditional_predicateEx;
            }

            switch (alt234) 
            {
        	case 1:
        	    // OraclePLSQL.g:888:7: k_inserting
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_inserting_in_conditional_predicate7386);
        	        k_inserting762=k_inserting(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleconditional_predicateEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_inserting762.tree);

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:889:7: k_updating ( LPAREN QUOTED_STRING RPAREN )?
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_updating_in_conditional_predicate7394);
        	        k_updating763=k_updating(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleconditional_predicateEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_updating763.tree);

        	        // OraclePLSQL.g:889:18: ( LPAREN QUOTED_STRING RPAREN )?
        	        {
        	            int alt233=2;
        	            switch ( LA(1) ) 
        	            {
        	                case LPAREN:
        	                	{
        	                		switch ( LA(2) ) 
        	                		{
        	                		    case QUOTED_STRING:
        	                		    	{
        	                		    		alt233=1;
        	                		    	}
        	                		        break;
        	                		}

        	                	}
        	                    break;
        	            }

        	            switch (alt233) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:889:20: LPAREN QUOTED_STRING RPAREN
        	        	    {
        	        	        LPAREN764 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_conditional_predicate7398); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleconditional_predicateEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        LPAREN764_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN764));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN764_tree);
        	        	        }
        	        	        QUOTED_STRING765 = (pANTLR3_COMMON_TOKEN) MATCHT(QUOTED_STRING, &FOLLOW_QUOTED_STRING_in_conditional_predicate7400); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleconditional_predicateEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        QUOTED_STRING765_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, QUOTED_STRING765));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, QUOTED_STRING765_tree);
        	        	        }
        	        	        RPAREN766 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_conditional_predicate7402); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto ruleconditional_predicateEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return retval;
        	        	        }
        	        	        if ( BACKTRACKING==0 ) {
        	        	        RPAREN766_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN766));
        	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN766_tree);
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:890:7: k_deleting
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        FOLLOWPUSH(FOLLOW_k_deleting_in_conditional_predicate7413);
        	        k_deleting767=k_deleting(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleconditional_predicateEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_deleting767.tree);

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleconditional_predicateEx; /* Prevent compiler warnings */
    ruleconditional_predicateEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(139, conditional_predicate_StartIndex); }

    return retval;
}
/* $ANTLR end conditional_predicate */

/** 
 * $ANTLR start parameter
 * OraclePLSQL.g:893:1: parameter : ( ID ARROW )? expression ;
 */
static OraclePLSQLParser_parameter_return
parameter(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_parameter_return retval;
    ANTLR3_UINT32 parameter_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    ID768;
    pANTLR3_COMMON_TOKEN    ARROW769;
    OraclePLSQLParser_expression_return expression770;
    #undef	RETURN_TYPE_expression770
    #define	RETURN_TYPE_expression770 OraclePLSQLParser_expression_return

    pANTLR3_BASE_TREE ID768_tree;
    pANTLR3_BASE_TREE ARROW769_tree;

    /* Initialize rule variables
     */
    parameter_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(140)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    ID768       = NULL;
    ARROW769       = NULL;
    expression770.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    ID768_tree   = NULL;
    ARROW769_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:894:5: ( ( ID ARROW )? expression )
        // OraclePLSQL.g:894:7: ( ID ARROW )? expression
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:894:7: ( ID ARROW )?
            {
                int alt235=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case ARROW:
                    		    	{
                    		    		alt235=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt235) 
                {
            	case 1:
            	    // OraclePLSQL.g:894:9: ID ARROW
            	    {
            	        ID768 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_parameter7432); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleparameterEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        ID768_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID768));
            	        ADAPTOR->addChild(ADAPTOR, root_0, ID768_tree);
            	        }
            	        ARROW769 = (pANTLR3_COMMON_TOKEN) MATCHT(ARROW, &FOLLOW_ARROW_in_parameter7434); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleparameterEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        ARROW769_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ARROW769));
            	        ADAPTOR->addChild(ADAPTOR, root_0, ARROW769_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_expression_in_parameter7439);
            expression770=expression(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleparameterEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, expression770.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleparameterEx; /* Prevent compiler warnings */
    ruleparameterEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(140, parameter_StartIndex); }

    return retval;
}
/* $ANTLR end parameter */

/** 
 * $ANTLR start create_package
 * OraclePLSQL.g:901:1: create_package : ( k_create ( k_or kREPLACE )? )? k_package ( schema_name DOT )? package_name[T_DECL] ( invoker_rights_clause )? ( k_is | k_as ) ( declare_section )? k_end ( package_name[T_USE] )? SEMI ;
 */
static OraclePLSQLParser_create_package_return
create_package(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_package_return retval;
    ANTLR3_UINT32 create_package_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT776;
    pANTLR3_COMMON_TOKEN    SEMI784;
    OraclePLSQLParser_k_create_return k_create771;
    #undef	RETURN_TYPE_k_create771
    #define	RETURN_TYPE_k_create771 OraclePLSQLParser_k_create_return

    OraclePLSQLParser_k_or_return k_or772;
    #undef	RETURN_TYPE_k_or772
    #define	RETURN_TYPE_k_or772 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_kREPLACE_return kREPLACE773;
    #undef	RETURN_TYPE_kREPLACE773
    #define	RETURN_TYPE_kREPLACE773 OraclePLSQLParser_kREPLACE_return

    OraclePLSQLParser_k_package_return k_package774;
    #undef	RETURN_TYPE_k_package774
    #define	RETURN_TYPE_k_package774 OraclePLSQLParser_k_package_return

    OraclePLSQLParser_schema_name_return schema_name775;
    #undef	RETURN_TYPE_schema_name775
    #define	RETURN_TYPE_schema_name775 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_package_name_return package_name777;
    #undef	RETURN_TYPE_package_name777
    #define	RETURN_TYPE_package_name777 OraclePLSQLParser_package_name_return

    OraclePLSQLParser_invoker_rights_clause_return invoker_rights_clause778;
    #undef	RETURN_TYPE_invoker_rights_clause778
    #define	RETURN_TYPE_invoker_rights_clause778 OraclePLSQLParser_invoker_rights_clause_return

    OraclePLSQLParser_k_is_return k_is779;
    #undef	RETURN_TYPE_k_is779
    #define	RETURN_TYPE_k_is779 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as780;
    #undef	RETURN_TYPE_k_as780
    #define	RETURN_TYPE_k_as780 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_declare_section_return declare_section781;
    #undef	RETURN_TYPE_declare_section781
    #define	RETURN_TYPE_declare_section781 OraclePLSQLParser_declare_section_return

    OraclePLSQLParser_k_end_return k_end782;
    #undef	RETURN_TYPE_k_end782
    #define	RETURN_TYPE_k_end782 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_package_name_return package_name783;
    #undef	RETURN_TYPE_package_name783
    #define	RETURN_TYPE_package_name783 OraclePLSQLParser_package_name_return

    pANTLR3_BASE_TREE DOT776_tree;
    pANTLR3_BASE_TREE SEMI784_tree;

    /* Initialize rule variables
     */
    create_package_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(141)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT776       = NULL;
    SEMI784       = NULL;
    k_create771.tree = NULL;
    k_or772.tree = NULL;
    kREPLACE773.tree = NULL;
    k_package774.tree = NULL;
    schema_name775.tree = NULL;
    package_name777.tree = NULL;
    invoker_rights_clause778.tree = NULL;
    k_is779.tree = NULL;
    k_as780.tree = NULL;
    declare_section781.tree = NULL;
    k_end782.tree = NULL;
    package_name783.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT776_tree   = NULL;
    SEMI784_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:901:16: ( ( k_create ( k_or kREPLACE )? )? k_package ( schema_name DOT )? package_name[T_DECL] ( invoker_rights_clause )? ( k_is | k_as ) ( declare_section )? k_end ( package_name[T_USE] )? SEMI )
        // OraclePLSQL.g:902:3: ( k_create ( k_or kREPLACE )? )? k_package ( schema_name DOT )? package_name[T_DECL] ( invoker_rights_clause )? ( k_is | k_as ) ( declare_section )? k_end ( package_name[T_USE] )? SEMI
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:902:3: ( k_create ( k_or kREPLACE )? )?
            {
                int alt237=2;
                switch ( LA(1) ) 
                {
                    case 159:
                    	{
                    		alt237=1;
                    	}
                        break;
                }

                switch (alt237) 
                {
            	case 1:
            	    // OraclePLSQL.g:902:4: k_create ( k_or kREPLACE )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_create_in_create_package7459);
            	        k_create771=k_create(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_create771.tree);

            	        // OraclePLSQL.g:902:13: ( k_or kREPLACE )?
            	        {
            	            int alt236=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 185:
            	                	{
            	                		alt236=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt236) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:902:15: k_or kREPLACE
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_or_in_create_package7463);
            	        	        k_or772=k_or(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_packageEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or772.tree);
            	        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_create_package7465);
            	        	        kREPLACE773=kREPLACE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_packageEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kREPLACE773.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_package_in_create_package7474);
            k_package774=k_package(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_packageEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_package774.tree);

            // OraclePLSQL.g:903:13: ( schema_name DOT )?
            {
                int alt238=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case DOT:
                    		    	{
                    		    		alt238=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt238) 
                {
            	case 1:
            	    // OraclePLSQL.g:903:15: schema_name DOT
            	    {
            	        FOLLOWPUSH(FOLLOW_schema_name_in_create_package7478);
            	        schema_name775=schema_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name775.tree);
            	        DOT776 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_create_package7480); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT776_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT776));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT776_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_package_name_in_create_package7485);
            package_name777=package_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_packageEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, package_name777.tree);

            // OraclePLSQL.g:904:9: ( invoker_rights_clause )?
            {
                int alt239=2;
                switch ( LA(1) ) 
                {
                    case 152:
                    	{
                    		alt239=1;
                    	}
                        break;
                }

                switch (alt239) 
                {
            	case 1:
            	    // OraclePLSQL.g:904:11: invoker_rights_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_invoker_rights_clause_in_create_package7498);
            	        invoker_rights_clause778=invoker_rights_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, invoker_rights_clause778.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:905:9: ( k_is | k_as )
            {
                int alt240=2;
                switch ( LA(1) ) 
                {
                case 178:
                	{
                		alt240=1;
                	}
                    break;
                case 151:
                	{
                		alt240=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 240;
                    EXCEPTION->state        = 0;


                    goto rulecreate_packageEx;
                }

                switch (alt240) 
                {
            	case 1:
            	    // OraclePLSQL.g:905:11: k_is
            	    {
            	        FOLLOWPUSH(FOLLOW_k_is_in_create_package7513);
            	        k_is779=k_is(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is779.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:905:18: k_as
            	    {
            	        FOLLOWPUSH(FOLLOW_k_as_in_create_package7517);
            	        k_as780=k_as(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as780.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:905:25: ( declare_section )?
            {
                int alt241=2;
                switch ( LA(1) ) 
                {
                    case K_OUT:
                    case ID:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 196:
                    case 208:
                    case 214:
                    case 223:
                    case 224:
                    case 233:
                    	{
                    		alt241=1;
                    	}
                        break;
                }

                switch (alt241) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: declare_section
            	    {
            	        FOLLOWPUSH(FOLLOW_declare_section_in_create_package7521);
            	        declare_section781=declare_section(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, declare_section781.tree);

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_end_in_create_package7524);
            k_end782=k_end(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_packageEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end782.tree);

            // OraclePLSQL.g:905:48: ( package_name[T_USE] )?
            {
                int alt242=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    case 137:
                    	{
                    		alt242=1;
                    	}
                        break;
                }

                switch (alt242) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: package_name[T_USE]
            	    {
            	        FOLLOWPUSH(FOLLOW_package_name_in_create_package7526);
            	        package_name783=package_name(ctx, T_USE);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_packageEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, package_name783.tree);

            	    }
            	    break;

                }
            }
            SEMI784 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_create_package7530); 
            if  (HASEXCEPTION())
            {
                goto rulecreate_packageEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            SEMI784_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI784));
            ADAPTOR->addChild(ADAPTOR, root_0, SEMI784_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_packageEx; /* Prevent compiler warnings */
    rulecreate_packageEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(141, create_package_StartIndex); }

    return retval;
}
/* $ANTLR end create_package */

/** 
 * $ANTLR start create_package_body
 * OraclePLSQL.g:908:1: create_package_body : ( k_create ( k_or kREPLACE )? )? k_package k_body ( schema_name DOT )? package_name[T_DECL] ( k_is | k_as ) ( declare_section )? ( body ( exception_handler )? k_end ( ID )? | k_end ( package_name[T_USE] )? ) SEMI ;
 */
static OraclePLSQLParser_create_package_body_return
create_package_body(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_package_body_return retval;
    ANTLR3_UINT32 create_package_body_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT791;
    pANTLR3_COMMON_TOKEN    ID799;
    pANTLR3_COMMON_TOKEN    SEMI802;
    OraclePLSQLParser_k_create_return k_create785;
    #undef	RETURN_TYPE_k_create785
    #define	RETURN_TYPE_k_create785 OraclePLSQLParser_k_create_return

    OraclePLSQLParser_k_or_return k_or786;
    #undef	RETURN_TYPE_k_or786
    #define	RETURN_TYPE_k_or786 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_kREPLACE_return kREPLACE787;
    #undef	RETURN_TYPE_kREPLACE787
    #define	RETURN_TYPE_kREPLACE787 OraclePLSQLParser_kREPLACE_return

    OraclePLSQLParser_k_package_return k_package788;
    #undef	RETURN_TYPE_k_package788
    #define	RETURN_TYPE_k_package788 OraclePLSQLParser_k_package_return

    OraclePLSQLParser_k_body_return k_body789;
    #undef	RETURN_TYPE_k_body789
    #define	RETURN_TYPE_k_body789 OraclePLSQLParser_k_body_return

    OraclePLSQLParser_schema_name_return schema_name790;
    #undef	RETURN_TYPE_schema_name790
    #define	RETURN_TYPE_schema_name790 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_package_name_return package_name792;
    #undef	RETURN_TYPE_package_name792
    #define	RETURN_TYPE_package_name792 OraclePLSQLParser_package_name_return

    OraclePLSQLParser_k_is_return k_is793;
    #undef	RETURN_TYPE_k_is793
    #define	RETURN_TYPE_k_is793 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as794;
    #undef	RETURN_TYPE_k_as794
    #define	RETURN_TYPE_k_as794 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_declare_section_return declare_section795;
    #undef	RETURN_TYPE_declare_section795
    #define	RETURN_TYPE_declare_section795 OraclePLSQLParser_declare_section_return

    OraclePLSQLParser_body_return body796;
    #undef	RETURN_TYPE_body796
    #define	RETURN_TYPE_body796 OraclePLSQLParser_body_return

    OraclePLSQLParser_exception_handler_return exception_handler797;
    #undef	RETURN_TYPE_exception_handler797
    #define	RETURN_TYPE_exception_handler797 OraclePLSQLParser_exception_handler_return

    OraclePLSQLParser_k_end_return k_end798;
    #undef	RETURN_TYPE_k_end798
    #define	RETURN_TYPE_k_end798 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_k_end_return k_end800;
    #undef	RETURN_TYPE_k_end800
    #define	RETURN_TYPE_k_end800 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_package_name_return package_name801;
    #undef	RETURN_TYPE_package_name801
    #define	RETURN_TYPE_package_name801 OraclePLSQLParser_package_name_return

    pANTLR3_BASE_TREE DOT791_tree;
    pANTLR3_BASE_TREE ID799_tree;
    pANTLR3_BASE_TREE SEMI802_tree;

    /* Initialize rule variables
     */
    create_package_body_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(142)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT791       = NULL;
    ID799       = NULL;
    SEMI802       = NULL;
    k_create785.tree = NULL;
    k_or786.tree = NULL;
    kREPLACE787.tree = NULL;
    k_package788.tree = NULL;
    k_body789.tree = NULL;
    schema_name790.tree = NULL;
    package_name792.tree = NULL;
    k_is793.tree = NULL;
    k_as794.tree = NULL;
    declare_section795.tree = NULL;
    body796.tree = NULL;
    exception_handler797.tree = NULL;
    k_end798.tree = NULL;
    k_end800.tree = NULL;
    package_name801.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT791_tree   = NULL;
    ID799_tree   = NULL;
    SEMI802_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:908:21: ( ( k_create ( k_or kREPLACE )? )? k_package k_body ( schema_name DOT )? package_name[T_DECL] ( k_is | k_as ) ( declare_section )? ( body ( exception_handler )? k_end ( ID )? | k_end ( package_name[T_USE] )? ) SEMI )
        // OraclePLSQL.g:909:9: ( k_create ( k_or kREPLACE )? )? k_package k_body ( schema_name DOT )? package_name[T_DECL] ( k_is | k_as ) ( declare_section )? ( body ( exception_handler )? k_end ( ID )? | k_end ( package_name[T_USE] )? ) SEMI
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:909:9: ( k_create ( k_or kREPLACE )? )?
            {
                int alt244=2;
                switch ( LA(1) ) 
                {
                    case 159:
                    	{
                    		alt244=1;
                    	}
                        break;
                }

                switch (alt244) 
                {
            	case 1:
            	    // OraclePLSQL.g:909:10: k_create ( k_or kREPLACE )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_create_in_create_package_body7552);
            	        k_create785=k_create(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_create785.tree);

            	        // OraclePLSQL.g:909:19: ( k_or kREPLACE )?
            	        {
            	            int alt243=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 185:
            	                	{
            	                		alt243=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt243) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:909:21: k_or kREPLACE
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_or_in_create_package_body7556);
            	        	        k_or786=k_or(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_package_bodyEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or786.tree);
            	        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_create_package_body7558);
            	        	        kREPLACE787=kREPLACE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_package_bodyEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kREPLACE787.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_package_in_create_package_body7573);
            k_package788=k_package(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_package_bodyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_package788.tree);
            FOLLOWPUSH(FOLLOW_k_body_in_create_package_body7575);
            k_body789=k_body(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_package_bodyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_body789.tree);

            // OraclePLSQL.g:910:26: ( schema_name DOT )?
            {
                int alt245=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case DOT:
                    		    	{
                    		    		alt245=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt245) 
                {
            	case 1:
            	    // OraclePLSQL.g:910:28: schema_name DOT
            	    {
            	        FOLLOWPUSH(FOLLOW_schema_name_in_create_package_body7579);
            	        schema_name790=schema_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name790.tree);
            	        DOT791 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_create_package_body7581); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT791_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT791));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT791_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_package_name_in_create_package_body7586);
            package_name792=package_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_package_bodyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, package_name792.tree);

            // OraclePLSQL.g:911:9: ( k_is | k_as )
            {
                int alt246=2;
                switch ( LA(1) ) 
                {
                case 178:
                	{
                		alt246=1;
                	}
                    break;
                case 151:
                	{
                		alt246=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 246;
                    EXCEPTION->state        = 0;


                    goto rulecreate_package_bodyEx;
                }

                switch (alt246) 
                {
            	case 1:
            	    // OraclePLSQL.g:911:11: k_is
            	    {
            	        FOLLOWPUSH(FOLLOW_k_is_in_create_package_body7599);
            	        k_is793=k_is(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is793.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:911:18: k_as
            	    {
            	        FOLLOWPUSH(FOLLOW_k_as_in_create_package_body7603);
            	        k_as794=k_as(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as794.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:911:25: ( declare_section )?
            {
                int alt247=2;
                switch ( LA(1) ) 
                {
                    case K_OUT:
                    case ID:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 196:
                    case 208:
                    case 214:
                    case 223:
                    case 224:
                    case 233:
                    	{
                    		alt247=1;
                    	}
                        break;
                }

                switch (alt247) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: declare_section
            	    {
            	        FOLLOWPUSH(FOLLOW_declare_section_in_create_package_body7607);
            	        declare_section795=declare_section(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, declare_section795.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:912:9: ( body ( exception_handler )? k_end ( ID )? | k_end ( package_name[T_USE] )? )
            {
                int alt251=2;
                switch ( LA(1) ) 
                {
                case 139:
                	{
                		alt251=1;
                	}
                    break;
                case 210:
                	{
                		alt251=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 251;
                    EXCEPTION->state        = 0;


                    goto rulecreate_package_bodyEx;
                }

                switch (alt251) 
                {
            	case 1:
            	    // OraclePLSQL.g:912:11: body ( exception_handler )? k_end ( ID )?
            	    {
            	        FOLLOWPUSH(FOLLOW_body_in_create_package_body7620);
            	        body796=body(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, body796.tree);

            	        // OraclePLSQL.g:912:16: ( exception_handler )?
            	        {
            	            int alt248=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 212:
            	                	{
            	                		alt248=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt248) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: exception_handler
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_exception_handler_in_create_package_body7622);
            	        	        exception_handler797=exception_handler(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_package_bodyEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exception_handler797.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_end_in_create_package_body7625);
            	        k_end798=k_end(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end798.tree);

            	        // OraclePLSQL.g:912:41: ( ID )?
            	        {
            	            int alt249=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                	{
            	                		alt249=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt249) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: ID
            	        	    {
            	        	        ID799 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_create_package_body7627); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_package_bodyEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ID799_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID799));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ID799_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:912:47: k_end ( package_name[T_USE] )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_end_in_create_package_body7632);
            	        k_end800=k_end(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_package_bodyEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end800.tree);

            	        // OraclePLSQL.g:912:53: ( package_name[T_USE] )?
            	        {
            	            int alt250=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                case 137:
            	                	{
            	                		alt250=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt250) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: package_name[T_USE]
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_package_name_in_create_package_body7634);
            	        	        package_name801=package_name(ctx, T_USE);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_package_bodyEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, package_name801.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            SEMI802 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_create_package_body7648); 
            if  (HASEXCEPTION())
            {
                goto rulecreate_package_bodyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            SEMI802_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI802));
            ADAPTOR->addChild(ADAPTOR, root_0, SEMI802_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_package_bodyEx; /* Prevent compiler warnings */
    rulecreate_package_bodyEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(142, create_package_body_StartIndex); }

    return retval;
}
/* $ANTLR end create_package_body */

/** 
 * $ANTLR start create_procedure
 * OraclePLSQL.g:916:1: create_procedure : ( k_create ( k_or kREPLACE )? )? k_procedure ( schema_name DOT )? procedure_name[T_DECL] ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )? ( invoker_rights_clause )? ( k_is | k_as ) ( ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external ) SEMI ;
 */
static OraclePLSQLParser_create_procedure_return
create_procedure(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_procedure_return retval;
    ANTLR3_UINT32 create_procedure_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT808;
    pANTLR3_COMMON_TOKEN    LPAREN810;
    pANTLR3_COMMON_TOKEN    COMMA812;
    pANTLR3_COMMON_TOKEN    RPAREN814;
    pANTLR3_COMMON_TOKEN    ID822;
    pANTLR3_COMMON_TOKEN    SEMI825;
    OraclePLSQLParser_k_create_return k_create803;
    #undef	RETURN_TYPE_k_create803
    #define	RETURN_TYPE_k_create803 OraclePLSQLParser_k_create_return

    OraclePLSQLParser_k_or_return k_or804;
    #undef	RETURN_TYPE_k_or804
    #define	RETURN_TYPE_k_or804 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_kREPLACE_return kREPLACE805;
    #undef	RETURN_TYPE_kREPLACE805
    #define	RETURN_TYPE_kREPLACE805 OraclePLSQLParser_kREPLACE_return

    OraclePLSQLParser_k_procedure_return k_procedure806;
    #undef	RETURN_TYPE_k_procedure806
    #define	RETURN_TYPE_k_procedure806 OraclePLSQLParser_k_procedure_return

    OraclePLSQLParser_schema_name_return schema_name807;
    #undef	RETURN_TYPE_schema_name807
    #define	RETURN_TYPE_schema_name807 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_procedure_name_return procedure_name809;
    #undef	RETURN_TYPE_procedure_name809
    #define	RETURN_TYPE_procedure_name809 OraclePLSQLParser_procedure_name_return

    OraclePLSQLParser_parameter_declaration_return parameter_declaration811;
    #undef	RETURN_TYPE_parameter_declaration811
    #define	RETURN_TYPE_parameter_declaration811 OraclePLSQLParser_parameter_declaration_return

    OraclePLSQLParser_parameter_declaration_return parameter_declaration813;
    #undef	RETURN_TYPE_parameter_declaration813
    #define	RETURN_TYPE_parameter_declaration813 OraclePLSQLParser_parameter_declaration_return

    OraclePLSQLParser_invoker_rights_clause_return invoker_rights_clause815;
    #undef	RETURN_TYPE_invoker_rights_clause815
    #define	RETURN_TYPE_invoker_rights_clause815 OraclePLSQLParser_invoker_rights_clause_return

    OraclePLSQLParser_k_is_return k_is816;
    #undef	RETURN_TYPE_k_is816
    #define	RETURN_TYPE_k_is816 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as817;
    #undef	RETURN_TYPE_k_as817
    #define	RETURN_TYPE_k_as817 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_declare_section_return declare_section818;
    #undef	RETURN_TYPE_declare_section818
    #define	RETURN_TYPE_declare_section818 OraclePLSQLParser_declare_section_return

    OraclePLSQLParser_body_return body819;
    #undef	RETURN_TYPE_body819
    #define	RETURN_TYPE_body819 OraclePLSQLParser_body_return

    OraclePLSQLParser_exception_handler_return exception_handler820;
    #undef	RETURN_TYPE_exception_handler820
    #define	RETURN_TYPE_exception_handler820 OraclePLSQLParser_exception_handler_return

    OraclePLSQLParser_k_end_return k_end821;
    #undef	RETURN_TYPE_k_end821
    #define	RETURN_TYPE_k_end821 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_call_spec_return call_spec823;
    #undef	RETURN_TYPE_call_spec823
    #define	RETURN_TYPE_call_spec823 OraclePLSQLParser_call_spec_return

    OraclePLSQLParser_k_external_return k_external824;
    #undef	RETURN_TYPE_k_external824
    #define	RETURN_TYPE_k_external824 OraclePLSQLParser_k_external_return

    pANTLR3_BASE_TREE DOT808_tree;
    pANTLR3_BASE_TREE LPAREN810_tree;
    pANTLR3_BASE_TREE COMMA812_tree;
    pANTLR3_BASE_TREE RPAREN814_tree;
    pANTLR3_BASE_TREE ID822_tree;
    pANTLR3_BASE_TREE SEMI825_tree;

    /* Initialize rule variables
     */
    create_procedure_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(143)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT808       = NULL;
    LPAREN810       = NULL;
    COMMA812       = NULL;
    RPAREN814       = NULL;
    ID822       = NULL;
    SEMI825       = NULL;
    k_create803.tree = NULL;
    k_or804.tree = NULL;
    kREPLACE805.tree = NULL;
    k_procedure806.tree = NULL;
    schema_name807.tree = NULL;
    procedure_name809.tree = NULL;
    parameter_declaration811.tree = NULL;
    parameter_declaration813.tree = NULL;
    invoker_rights_clause815.tree = NULL;
    k_is816.tree = NULL;
    k_as817.tree = NULL;
    declare_section818.tree = NULL;
    body819.tree = NULL;
    exception_handler820.tree = NULL;
    k_end821.tree = NULL;
    call_spec823.tree = NULL;
    k_external824.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT808_tree   = NULL;
    LPAREN810_tree   = NULL;
    COMMA812_tree   = NULL;
    RPAREN814_tree   = NULL;
    ID822_tree   = NULL;
    SEMI825_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:916:18: ( ( k_create ( k_or kREPLACE )? )? k_procedure ( schema_name DOT )? procedure_name[T_DECL] ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )? ( invoker_rights_clause )? ( k_is | k_as ) ( ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external ) SEMI )
        // OraclePLSQL.g:917:9: ( k_create ( k_or kREPLACE )? )? k_procedure ( schema_name DOT )? procedure_name[T_DECL] ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )? ( invoker_rights_clause )? ( k_is | k_as ) ( ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external ) SEMI
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:917:9: ( k_create ( k_or kREPLACE )? )?
            {
                int alt253=2;
                switch ( LA(1) ) 
                {
                    case 159:
                    	{
                    		alt253=1;
                    	}
                        break;
                }

                switch (alt253) 
                {
            	case 1:
            	    // OraclePLSQL.g:917:10: k_create ( k_or kREPLACE )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_create_in_create_procedure7670);
            	        k_create803=k_create(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_create803.tree);

            	        // OraclePLSQL.g:917:19: ( k_or kREPLACE )?
            	        {
            	            int alt252=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 185:
            	                	{
            	                		alt252=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt252) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:917:21: k_or kREPLACE
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_or_in_create_procedure7674);
            	        	        k_or804=k_or(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or804.tree);
            	        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_create_procedure7676);
            	        	        kREPLACE805=kREPLACE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kREPLACE805.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_procedure_in_create_procedure7691);
            k_procedure806=k_procedure(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_procedureEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_procedure806.tree);

            // OraclePLSQL.g:918:21: ( schema_name DOT )?
            {
                int alt254=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case DOT:
                    		    	{
                    		    		alt254=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt254) 
                {
            	case 1:
            	    // OraclePLSQL.g:918:23: schema_name DOT
            	    {
            	        FOLLOWPUSH(FOLLOW_schema_name_in_create_procedure7695);
            	        schema_name807=schema_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name807.tree);
            	        DOT808 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_create_procedure7697); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT808_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT808));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT808_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_procedure_name_in_create_procedure7702);
            procedure_name809=procedure_name(ctx, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_procedureEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, procedure_name809.tree);

            // OraclePLSQL.g:919:9: ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )?
            {
                int alt256=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		alt256=1;
                    	}
                        break;
                }

                switch (alt256) 
                {
            	case 1:
            	    // OraclePLSQL.g:919:11: LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN
            	    {
            	        LPAREN810 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_create_procedure7715); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        LPAREN810_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN810));
            	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN810_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_parameter_declaration_in_create_procedure7717);
            	        parameter_declaration811=parameter_declaration(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declaration811.tree);

            	        // OraclePLSQL.g:919:40: ( COMMA parameter_declaration )*

            	        for (;;)
            	        {
            	            int alt255=2;
            	            switch ( LA(1) ) 
            	            {
            	            case COMMA:
            	            	{
            	            		alt255=1;
            	            	}
            	                break;

            	            }

            	            switch (alt255) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:919:42: COMMA parameter_declaration
            	        	    {
            	        	        COMMA812 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_create_procedure7721); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        COMMA812_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA812));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA812_tree);
            	        	        }
            	        	        FOLLOWPUSH(FOLLOW_parameter_declaration_in_create_procedure7723);
            	        	        parameter_declaration813=parameter_declaration(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declaration813.tree);

            	        	    }
            	        	    break;

            	        	default:
            	        	    goto loop255;	/* break out of the loop */
            	        	    break;
            	            }
            	        }
            	        loop255: ; /* Jump out to here if this rule does not match */

            	        RPAREN814 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_create_procedure7728); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        RPAREN814_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN814));
            	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN814_tree);
            	        }

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:920:9: ( invoker_rights_clause )?
            {
                int alt257=2;
                switch ( LA(1) ) 
                {
                    case 152:
                    	{
                    		alt257=1;
                    	}
                        break;
                }

                switch (alt257) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: invoker_rights_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_invoker_rights_clause_in_create_procedure7741);
            	        invoker_rights_clause815=invoker_rights_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, invoker_rights_clause815.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:921:9: ( k_is | k_as )
            {
                int alt258=2;
                switch ( LA(1) ) 
                {
                case 178:
                	{
                		alt258=1;
                	}
                    break;
                case 151:
                	{
                		alt258=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 258;
                    EXCEPTION->state        = 0;


                    goto rulecreate_procedureEx;
                }

                switch (alt258) 
                {
            	case 1:
            	    // OraclePLSQL.g:921:11: k_is
            	    {
            	        FOLLOWPUSH(FOLLOW_k_is_in_create_procedure7754);
            	        k_is816=k_is(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is816.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:921:18: k_as
            	    {
            	        FOLLOWPUSH(FOLLOW_k_as_in_create_procedure7758);
            	        k_as817=k_as(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as817.tree);

            	    }
            	    break;

                }
            }

            // OraclePLSQL.g:922:9: ( ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external )
            {
                int alt262=3;
                switch ( LA(1) ) 
                {
                case K_OUT:
                case ID:
                case 127:
                case 128:
                case 129:
                case 130:
                case 139:
                case 196:
                case 208:
                case 214:
                case 223:
                case 224:
                case 233:
                	{
                		alt262=1;
                	}
                    break;
                case 132:
                	{
                		alt262=2;
                	}
                    break;
                case 168:
                	{
                		alt262=3;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 262;
                    EXCEPTION->state        = 0;


                    goto rulecreate_procedureEx;
                }

                switch (alt262) 
                {
            	case 1:
            	    // OraclePLSQL.g:922:11: ( declare_section )? body ( exception_handler )? k_end ( ID )?
            	    {

            	        // OraclePLSQL.g:922:11: ( declare_section )?
            	        {
            	            int alt259=2;
            	            switch ( LA(1) ) 
            	            {
            	                case K_OUT:
            	                case ID:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 196:
            	                case 208:
            	                case 214:
            	                case 223:
            	                case 224:
            	                case 233:
            	                	{
            	                		alt259=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt259) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: declare_section
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_declare_section_in_create_procedure7772);
            	        	        declare_section818=declare_section(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, declare_section818.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_body_in_create_procedure7775);
            	        body819=body(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, body819.tree);

            	        // OraclePLSQL.g:922:33: ( exception_handler )?
            	        {
            	            int alt260=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 212:
            	                	{
            	                		alt260=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt260) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: exception_handler
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_exception_handler_in_create_procedure7777);
            	        	        exception_handler820=exception_handler(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exception_handler820.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_end_in_create_procedure7780);
            	        k_end821=k_end(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end821.tree);

            	        // OraclePLSQL.g:922:58: ( ID )?
            	        {
            	            int alt261=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                	{
            	                		alt261=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt261) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: ID
            	        	    {
            	        	        ID822 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_create_procedure7782); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_procedureEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ID822_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID822));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ID822_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:923:11: call_spec
            	    {
            	        FOLLOWPUSH(FOLLOW_call_spec_in_create_procedure7795);
            	        call_spec823=call_spec(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_spec823.tree);

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:924:11: k_external
            	    {
            	        FOLLOWPUSH(FOLLOW_k_external_in_create_procedure7807);
            	        k_external824=k_external(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_procedureEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_external824.tree);

            	    }
            	    break;

                }
            }
            SEMI825 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_create_procedure7819); 
            if  (HASEXCEPTION())
            {
                goto rulecreate_procedureEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            SEMI825_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI825));
            ADAPTOR->addChild(ADAPTOR, root_0, SEMI825_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_procedureEx; /* Prevent compiler warnings */
    rulecreate_procedureEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(143, create_procedure_StartIndex); }

    return retval;
}
/* $ANTLR end create_procedure */

/** 
 * $ANTLR start create_function
 * OraclePLSQL.g:928:1: create_function : ( k_create ( k_or kREPLACE )? )? k_function ( schema_name DOT )? f= identifier[T_FUNCTION_NAME,T_DECL] ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )? k_return datatype ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache | invoker_rights_clause )* ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external | ( k_aggregate )? using_clause ) ( SEMI | EOF ) ;
 */
static OraclePLSQLParser_create_function_return
create_function(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_function_return retval;
    ANTLR3_UINT32 create_function_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT831;
    pANTLR3_COMMON_TOKEN    LPAREN832;
    pANTLR3_COMMON_TOKEN    COMMA834;
    pANTLR3_COMMON_TOKEN    RPAREN836;
    pANTLR3_COMMON_TOKEN    LPAREN842;
    pANTLR3_COMMON_TOKEN    set843;
    pANTLR3_COMMON_TOKEN    RPAREN844;
    pANTLR3_COMMON_TOKEN    ID853;
    pANTLR3_COMMON_TOKEN    set858;
    OraclePLSQLParser_identifier_return f;
    #undef	RETURN_TYPE_f
    #define	RETURN_TYPE_f OraclePLSQLParser_identifier_return

    OraclePLSQLParser_k_create_return k_create826;
    #undef	RETURN_TYPE_k_create826
    #define	RETURN_TYPE_k_create826 OraclePLSQLParser_k_create_return

    OraclePLSQLParser_k_or_return k_or827;
    #undef	RETURN_TYPE_k_or827
    #define	RETURN_TYPE_k_or827 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_kREPLACE_return kREPLACE828;
    #undef	RETURN_TYPE_kREPLACE828
    #define	RETURN_TYPE_kREPLACE828 OraclePLSQLParser_kREPLACE_return

    OraclePLSQLParser_k_function_return k_function829;
    #undef	RETURN_TYPE_k_function829
    #define	RETURN_TYPE_k_function829 OraclePLSQLParser_k_function_return

    OraclePLSQLParser_schema_name_return schema_name830;
    #undef	RETURN_TYPE_schema_name830
    #define	RETURN_TYPE_schema_name830 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_parameter_declaration_return parameter_declaration833;
    #undef	RETURN_TYPE_parameter_declaration833
    #define	RETURN_TYPE_parameter_declaration833 OraclePLSQLParser_parameter_declaration_return

    OraclePLSQLParser_parameter_declaration_return parameter_declaration835;
    #undef	RETURN_TYPE_parameter_declaration835
    #define	RETURN_TYPE_parameter_declaration835 OraclePLSQLParser_parameter_declaration_return

    OraclePLSQLParser_k_return_return k_return837;
    #undef	RETURN_TYPE_k_return837
    #define	RETURN_TYPE_k_return837 OraclePLSQLParser_k_return_return

    OraclePLSQLParser_datatype_return datatype838;
    #undef	RETURN_TYPE_datatype838
    #define	RETURN_TYPE_datatype838 OraclePLSQLParser_datatype_return

    OraclePLSQLParser_k_deterministic_return k_deterministic839;
    #undef	RETURN_TYPE_k_deterministic839
    #define	RETURN_TYPE_k_deterministic839 OraclePLSQLParser_k_deterministic_return

    OraclePLSQLParser_k_pipelined_return k_pipelined840;
    #undef	RETURN_TYPE_k_pipelined840
    #define	RETURN_TYPE_k_pipelined840 OraclePLSQLParser_k_pipelined_return

    OraclePLSQLParser_k_parallel_enable_return k_parallel_enable841;
    #undef	RETURN_TYPE_k_parallel_enable841
    #define	RETURN_TYPE_k_parallel_enable841 OraclePLSQLParser_k_parallel_enable_return

    OraclePLSQLParser_k_result_cache_return k_result_cache845;
    #undef	RETURN_TYPE_k_result_cache845
    #define	RETURN_TYPE_k_result_cache845 OraclePLSQLParser_k_result_cache_return

    OraclePLSQLParser_invoker_rights_clause_return invoker_rights_clause846;
    #undef	RETURN_TYPE_invoker_rights_clause846
    #define	RETURN_TYPE_invoker_rights_clause846 OraclePLSQLParser_invoker_rights_clause_return

    OraclePLSQLParser_k_is_return k_is847;
    #undef	RETURN_TYPE_k_is847
    #define	RETURN_TYPE_k_is847 OraclePLSQLParser_k_is_return

    OraclePLSQLParser_k_as_return k_as848;
    #undef	RETURN_TYPE_k_as848
    #define	RETURN_TYPE_k_as848 OraclePLSQLParser_k_as_return

    OraclePLSQLParser_declare_section_return declare_section849;
    #undef	RETURN_TYPE_declare_section849
    #define	RETURN_TYPE_declare_section849 OraclePLSQLParser_declare_section_return

    OraclePLSQLParser_body_return body850;
    #undef	RETURN_TYPE_body850
    #define	RETURN_TYPE_body850 OraclePLSQLParser_body_return

    OraclePLSQLParser_exception_handler_return exception_handler851;
    #undef	RETURN_TYPE_exception_handler851
    #define	RETURN_TYPE_exception_handler851 OraclePLSQLParser_exception_handler_return

    OraclePLSQLParser_k_end_return k_end852;
    #undef	RETURN_TYPE_k_end852
    #define	RETURN_TYPE_k_end852 OraclePLSQLParser_k_end_return

    OraclePLSQLParser_call_spec_return call_spec854;
    #undef	RETURN_TYPE_call_spec854
    #define	RETURN_TYPE_call_spec854 OraclePLSQLParser_call_spec_return

    OraclePLSQLParser_k_external_return k_external855;
    #undef	RETURN_TYPE_k_external855
    #define	RETURN_TYPE_k_external855 OraclePLSQLParser_k_external_return

    OraclePLSQLParser_k_aggregate_return k_aggregate856;
    #undef	RETURN_TYPE_k_aggregate856
    #define	RETURN_TYPE_k_aggregate856 OraclePLSQLParser_k_aggregate_return

    OraclePLSQLParser_using_clause_return using_clause857;
    #undef	RETURN_TYPE_using_clause857
    #define	RETURN_TYPE_using_clause857 OraclePLSQLParser_using_clause_return

    pANTLR3_BASE_TREE DOT831_tree;
    pANTLR3_BASE_TREE LPAREN832_tree;
    pANTLR3_BASE_TREE COMMA834_tree;
    pANTLR3_BASE_TREE RPAREN836_tree;
    pANTLR3_BASE_TREE LPAREN842_tree;
    pANTLR3_BASE_TREE set843_tree;
    pANTLR3_BASE_TREE RPAREN844_tree;
    pANTLR3_BASE_TREE ID853_tree;
    pANTLR3_BASE_TREE set858_tree;

    /* Initialize rule variables
     */
    create_function_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(144)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT831       = NULL;
    LPAREN832       = NULL;
    COMMA834       = NULL;
    RPAREN836       = NULL;
    LPAREN842       = NULL;
    set843       = NULL;
    RPAREN844       = NULL;
    ID853       = NULL;
    set858       = NULL;
    f.tree = NULL;
    k_create826.tree = NULL;
    k_or827.tree = NULL;
    kREPLACE828.tree = NULL;
    k_function829.tree = NULL;
    schema_name830.tree = NULL;
    parameter_declaration833.tree = NULL;
    parameter_declaration835.tree = NULL;
    k_return837.tree = NULL;
    datatype838.tree = NULL;
    k_deterministic839.tree = NULL;
    k_pipelined840.tree = NULL;
    k_parallel_enable841.tree = NULL;
    k_result_cache845.tree = NULL;
    invoker_rights_clause846.tree = NULL;
    k_is847.tree = NULL;
    k_as848.tree = NULL;
    declare_section849.tree = NULL;
    body850.tree = NULL;
    exception_handler851.tree = NULL;
    k_end852.tree = NULL;
    call_spec854.tree = NULL;
    k_external855.tree = NULL;
    k_aggregate856.tree = NULL;
    using_clause857.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT831_tree   = NULL;
    LPAREN832_tree   = NULL;
    COMMA834_tree   = NULL;
    RPAREN836_tree   = NULL;
    LPAREN842_tree   = NULL;
    set843_tree   = NULL;
    RPAREN844_tree   = NULL;
    ID853_tree   = NULL;
    set858_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:928:17: ( ( k_create ( k_or kREPLACE )? )? k_function ( schema_name DOT )? f= identifier[T_FUNCTION_NAME,T_DECL] ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )? k_return datatype ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache | invoker_rights_clause )* ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external | ( k_aggregate )? using_clause ) ( SEMI | EOF ) )
        // OraclePLSQL.g:929:9: ( k_create ( k_or kREPLACE )? )? k_function ( schema_name DOT )? f= identifier[T_FUNCTION_NAME,T_DECL] ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )? k_return datatype ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache | invoker_rights_clause )* ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external | ( k_aggregate )? using_clause ) ( SEMI | EOF )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:929:9: ( k_create ( k_or kREPLACE )? )?
            {
                int alt264=2;
                switch ( LA(1) ) 
                {
                    case 159:
                    	{
                    		alt264=1;
                    	}
                        break;
                }

                switch (alt264) 
                {
            	case 1:
            	    // OraclePLSQL.g:929:10: k_create ( k_or kREPLACE )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_create_in_create_function7841);
            	        k_create826=k_create(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_create826.tree);

            	        // OraclePLSQL.g:929:19: ( k_or kREPLACE )?
            	        {
            	            int alt263=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 185:
            	                	{
            	                		alt263=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt263) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:929:21: k_or kREPLACE
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_or_in_create_function7845);
            	        	        k_or827=k_or(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or827.tree);
            	        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_create_function7847);
            	        	        kREPLACE828=kREPLACE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kREPLACE828.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_function_in_create_function7871);
            k_function829=k_function(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_functionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_function829.tree);

            // OraclePLSQL.g:931:20: ( schema_name DOT )?
            {
                int alt265=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case DOT:
                    		    	{
                    		    		alt265=1;
                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt265) 
                {
            	case 1:
            	    // OraclePLSQL.g:931:22: schema_name DOT
            	    {
            	        FOLLOWPUSH(FOLLOW_schema_name_in_create_function7875);
            	        schema_name830=schema_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name830.tree);
            	        DOT831 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_create_function7877); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT831_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT831));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT831_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_identifier_in_create_function7884);
            f=identifier(ctx, T_FUNCTION_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_functionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, f.tree);

            // OraclePLSQL.g:932:9: ( LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN )?
            {
                int alt267=2;
                switch ( LA(1) ) 
                {
                    case LPAREN:
                    	{
                    		alt267=1;
                    	}
                        break;
                }

                switch (alt267) 
                {
            	case 1:
            	    // OraclePLSQL.g:932:11: LPAREN parameter_declaration ( COMMA parameter_declaration )* RPAREN
            	    {
            	        LPAREN832 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_create_function7897); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        LPAREN832_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN832));
            	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN832_tree);
            	        }
            	        FOLLOWPUSH(FOLLOW_parameter_declaration_in_create_function7899);
            	        parameter_declaration833=parameter_declaration(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declaration833.tree);

            	        // OraclePLSQL.g:932:40: ( COMMA parameter_declaration )*

            	        for (;;)
            	        {
            	            int alt266=2;
            	            switch ( LA(1) ) 
            	            {
            	            case COMMA:
            	            	{
            	            		alt266=1;
            	            	}
            	                break;

            	            }

            	            switch (alt266) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:932:42: COMMA parameter_declaration
            	        	    {
            	        	        COMMA834 = (pANTLR3_COMMON_TOKEN) MATCHT(COMMA, &FOLLOW_COMMA_in_create_function7903); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        COMMA834_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COMMA834));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, COMMA834_tree);
            	        	        }
            	        	        FOLLOWPUSH(FOLLOW_parameter_declaration_in_create_function7905);
            	        	        parameter_declaration835=parameter_declaration(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, parameter_declaration835.tree);

            	        	    }
            	        	    break;

            	        	default:
            	        	    goto loop266;	/* break out of the loop */
            	        	    break;
            	            }
            	        }
            	        loop266: ; /* Jump out to here if this rule does not match */

            	        RPAREN836 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_create_function7910); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        RPAREN836_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN836));
            	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN836_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_return_in_create_function7923);
            k_return837=k_return(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_functionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_return837.tree);
            FOLLOWPUSH(FOLLOW_datatype_in_create_function7925);
            datatype838=datatype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_functionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, datatype838.tree);

            // OraclePLSQL.g:934:9: ( k_deterministic | k_pipelined | k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )? | k_result_cache | invoker_rights_clause )*

            for (;;)
            {
                int alt270=6;
                switch ( LA(1) ) 
                {
                case 209:
                	{
                		alt270=1;
                	}
                    break;
                case 222:
                	{
                		alt270=2;
                	}
                    break;
                case 220:
                	{
                		alt270=3;
                	}
                    break;
                case 227:
                	{
                		alt270=4;
                	}
                    break;
                case 152:
                	{
                		alt270=5;
                	}
                    break;

                }

                switch (alt270) 
                {
            	case 1:
            	    // OraclePLSQL.g:934:11: k_deterministic
            	    {
            	        FOLLOWPUSH(FOLLOW_k_deterministic_in_create_function7937);
            	        k_deterministic839=k_deterministic(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_deterministic839.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:934:29: k_pipelined
            	    {
            	        FOLLOWPUSH(FOLLOW_k_pipelined_in_create_function7941);
            	        k_pipelined840=k_pipelined(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_pipelined840.tree);

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:934:43: k_parallel_enable ( LPAREN (~ ( RPAREN ) )+ RPAREN )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_parallel_enable_in_create_function7945);
            	        k_parallel_enable841=k_parallel_enable(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_parallel_enable841.tree);

            	        // OraclePLSQL.g:934:61: ( LPAREN (~ ( RPAREN ) )+ RPAREN )?
            	        {
            	            int alt269=2;
            	            switch ( LA(1) ) 
            	            {
            	                case LPAREN:
            	                	{
            	                		alt269=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt269) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:934:62: LPAREN (~ ( RPAREN ) )+ RPAREN
            	        	    {
            	        	        LPAREN842 = (pANTLR3_COMMON_TOKEN) MATCHT(LPAREN, &FOLLOW_LPAREN_in_create_function7948); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        LPAREN842_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LPAREN842));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, LPAREN842_tree);
            	        	        }
            	        	        // OraclePLSQL.g:934:69: (~ ( RPAREN ) )+
            	        	        {
            	        	            int cnt268=0;

            	        	            for (;;)
            	        	            {
            	        	                int alt268=2;
            	        	        	switch ( LA(1) ) 
            	        	        	{
            	        	        	case T_UNKNOWN:
            	        	        	case T_RESERVED:
            	        	        	case T_SCHEMA_NAME:
            	        	        	case T_TRIGGER_NAME:
            	        	        	case T_PACKAGE_NAME:
            	        	        	case T_FUNCTION_NAME:
            	        	        	case T_PROCEDURE_NAME:
            	        	        	case T_PARAMETER_NAME:
            	        	        	case T_BINDVAR_NAME:
            	        	        	case T_VARIABLE_NAME:
            	        	        	case T_DATATYPE_NAME:
            	        	        	case T_CURSOR_NAME:
            	        	        	case T_TABLE_NAME:
            	        	        	case T_COLUMN_NAME:
            	        	        	case T_OBJECT_NAME:
            	        	        	case T_LABEL_NAME:
            	        	        	case T_EXCEPTION_NAME:
            	        	        	case T_DBLINK_NAME:
            	        	        	case T_DECL:
            	        	        	case T_USE:
            	        	        	case T_USEL:
            	        	        	case T_TYPE_DECL:
            	        	        	case T_SUBTYPE_DECL:
            	        	        	case T_CURSOR_DECL:
            	        	        	case T_VAR_DECL:
            	        	        	case T_CONST_DECL:
            	        	        	case T_EXC_DECL:
            	        	        	case T_FUNCTION_DECL:
            	        	        	case T_PROCEDURE_DECL:
            	        	        	case T_PRAGMA_DECL:
            	        	        	case T_DECL_BLOCK:
            	        	        	case T_BLOCK_BLOCK:
            	        	        	case T_PROCEDURE_BLOCK:
            	        	        	case T_FUNCTION_BLOCK:
            	        	        	case T_DECLARE_BLOCK:
            	        	        	case T_BEGIN_BLOCK:
            	        	        	case T_EXCEPTIONS_BLOCK:
            	        	        	case T_COMMIT:
            	        	        	case T_DELETE:
            	        	        	case T_INSERT:
            	        	        	case T_LOCK_TABLE:
            	        	        	case T_MERGE:
            	        	        	case T_ROLLBACK:
            	        	        	case T_SAVEPOINT:
            	        	        	case T_SELECT:
            	        	        	case T_SET_TRANSACTION:
            	        	        	case T_UPDATE:
            	        	        	case T_EXECUTE_IMMEDIATE:
            	        	        	case T_CASE:
            	        	        	case T_OPEN:
            	        	        	case T_CLOSE:
            	        	        	case T_CONTINUE:
            	        	        	case T_PIPE:
            	        	        	case T_GOTO:
            	        	        	case T_EXIT:
            	        	        	case T_RETURN:
            	        	        	case T_DECLARE:
            	        	        	case T_RAISE:
            	        	        	case T_FETCH:
            	        	        	case T_LOOP:
            	        	        	case T_WHILE:
            	        	        	case T_NULL_STAT:
            	        	        	case T_FOR:
            	        	        	case T_FORALL:
            	        	        	case T_IF:
            	        	        	case T_ELSIF:
            	        	        	case T_ELSE:
            	        	        	case T_ENDIF:
            	        	        	case T_ASSIGN:
            	        	        	case T_CALL:
            	        	        	case T_DECLARATION:
            	        	        	case T_STATEMENT:
            	        	        	case DIVIDE:
            	        	        	case SEMI:
            	        	        	case LPAREN:
            	        	        	case COMMA:
            	        	        	case K_IN:
            	        	        	case K_OUT:
            	        	        	case ASSIGN:
            	        	        	case ID:
            	        	        	case INTEGER:
            	        	        	case DOT:
            	        	        	case K_USING:
            	        	        	case DOUBLEDOT:
            	        	        	case LLABEL:
            	        	        	case RLABEL:
            	        	        	case COLON:
            	        	        	case AT_SIGN:
            	        	        	case EQ:
            	        	        	case LTH:
            	        	        	case GTH:
            	        	        	case MINUS:
            	        	        	case PLUS:
            	        	        	case DOUBLEVERTBAR:
            	        	        	case ASTERISK:
            	        	        	case REAL_NUMBER:
            	        	        	case QUOTED_STRING:
            	        	        	case ARROW:
            	        	        	case QSTRING:
            	        	        	case QS_ANGLE:
            	        	        	case QS_BRACE:
            	        	        	case QS_BRACK:
            	        	        	case QS_PAREN:
            	        	        	case QS_OTHER:
            	        	        	case QUOTE:
            	        	        	case QS_OTHER_CH:
            	        	        	case BINDVAR:
            	        	        	case DOUBLEQUOTED_STRING:
            	        	        	case NUM:
            	        	        	case POINT:
            	        	        	case RBRACK:
            	        	        	case LBRACK:
            	        	        	case PERCENT:
            	        	        	case VERTBAR:
            	        	        	case NOT_EQ:
            	        	        	case LEQ:
            	        	        	case GEQ:
            	        	        	case NUMBER_VALUE:
            	        	        	case WS:
            	        	        	case SL_COMMENT:
            	        	        	case ML_COMMENT:
            	        	        	case 126:
            	        	        	case 127:
            	        	        	case 128:
            	        	        	case 129:
            	        	        	case 130:
            	        	        	case 131:
            	        	        	case 132:
            	        	        	case 133:
            	        	        	case 134:
            	        	        	case 135:
            	        	        	case 136:
            	        	        	case 137:
            	        	        	case 138:
            	        	        	case 139:
            	        	        	case 140:
            	        	        	case 141:
            	        	        	case 142:
            	        	        	case 143:
            	        	        	case 144:
            	        	        	case 145:
            	        	        	case 146:
            	        	        	case 147:
            	        	        	case 148:
            	        	        	case 149:
            	        	        	case 150:
            	        	        	case 151:
            	        	        	case 152:
            	        	        	case 153:
            	        	        	case 154:
            	        	        	case 155:
            	        	        	case 156:
            	        	        	case 157:
            	        	        	case 158:
            	        	        	case 159:
            	        	        	case 160:
            	        	        	case 161:
            	        	        	case 162:
            	        	        	case 163:
            	        	        	case 164:
            	        	        	case 165:
            	        	        	case 166:
            	        	        	case 167:
            	        	        	case 168:
            	        	        	case 169:
            	        	        	case 170:
            	        	        	case 171:
            	        	        	case 172:
            	        	        	case 173:
            	        	        	case 174:
            	        	        	case 175:
            	        	        	case 176:
            	        	        	case 177:
            	        	        	case 178:
            	        	        	case 179:
            	        	        	case 180:
            	        	        	case 181:
            	        	        	case 182:
            	        	        	case 183:
            	        	        	case 184:
            	        	        	case 185:
            	        	        	case 186:
            	        	        	case 187:
            	        	        	case 188:
            	        	        	case 189:
            	        	        	case 190:
            	        	        	case 191:
            	        	        	case 192:
            	        	        	case 193:
            	        	        	case 194:
            	        	        	case 195:
            	        	        	case 196:
            	        	        	case 197:
            	        	        	case 198:
            	        	        	case 199:
            	        	        	case 200:
            	        	        	case 201:
            	        	        	case 202:
            	        	        	case 203:
            	        	        	case 204:
            	        	        	case 205:
            	        	        	case 206:
            	        	        	case 207:
            	        	        	case 208:
            	        	        	case 209:
            	        	        	case 210:
            	        	        	case 211:
            	        	        	case 212:
            	        	        	case 213:
            	        	        	case 214:
            	        	        	case 215:
            	        	        	case 216:
            	        	        	case 217:
            	        	        	case 218:
            	        	        	case 219:
            	        	        	case 220:
            	        	        	case 221:
            	        	        	case 222:
            	        	        	case 223:
            	        	        	case 224:
            	        	        	case 225:
            	        	        	case 226:
            	        	        	case 227:
            	        	        	case 228:
            	        	        	case 229:
            	        	        	case 230:
            	        	        	case 231:
            	        	        	case 232:
            	        	        	case 233:
            	        	        	case 234:
            	        	        	case 235:
            	        	        	case 236:
            	        	        	case 237:
            	        	        	case 238:
            	        	        	case 239:
            	        	        	case 240:
            	        	        	case 241:
            	        	        	case 242:
            	        	        	case 243:
            	        	        		{
            	        	        			alt268=1;
            	        	        		}
            	        	        	    break;

            	        	        	}

            	        	        	switch (alt268) 
            	        	        	{
            	        	        	    case 1:
            	        	        	        // OraclePLSQL.g:0:0: ~ ( RPAREN )
            	        	        	        {
            	        	        	            set843=(pANTLR3_COMMON_TOKEN)LT(1);
            	        	        	            if ( ((LA(1) >= T_UNKNOWN) && (LA(1) <= COMMA)) || ((LA(1) >= K_IN) && (LA(1) <= 243)) )
            	        	        	            {
            	        	        	                CONSUME();
            	        	        	                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set843)));
            	        	        	                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	        	        	            }
            	        	        	            else 
            	        	        	            {
            	        	        	                if (BACKTRACKING>0)
            	        	        	                {
            	        	        	                    FAILEDFLAG = ANTLR3_TRUE;
            	        	        	                    return retval;
            	        	        	                }
            	        	        	                CONSTRUCTEX();
            	        	        	                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	        	        	                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	        	        	                EXCEPTION->expectingSet = &FOLLOW_set_in_create_function7950;
            	        	        	                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_create_function7950);    goto rulecreate_functionEx;
            	        	        	            }


            	        	        	        }
            	        	        	        break;

            	        	        	    default:
            	        	        	    
            	        	        		if ( cnt268 >= 1 )
            	        	        		{
            	        	        		    goto loop268;
            	        	        		}
            	        	        		if (BACKTRACKING>0)
            	        	        		{
            	        	        		    FAILEDFLAG = ANTLR3_TRUE;
            	        	        		    return retval;
            	        	        		}
            	        	        		/* mismatchedSetEx()
            	        	        		 */
            	        	        		CONSTRUCTEX();
            	        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
            	        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


            	        	        		goto rulecreate_functionEx;
            	        	        	}
            	        	        	cnt268++;
            	        	            }
            	        	            loop268: ;	/* Jump to here if this rule does not match */
            	        	        }
            	        	        RPAREN844 = (pANTLR3_COMMON_TOKEN) MATCHT(RPAREN, &FOLLOW_RPAREN_in_create_function7956); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        RPAREN844_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, RPAREN844));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, RPAREN844_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 4:
            	    // OraclePLSQL.g:934:91: k_result_cache
            	    {
            	        FOLLOWPUSH(FOLLOW_k_result_cache_in_create_function7962);
            	        k_result_cache845=k_result_cache(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_result_cache845.tree);

            	    }
            	    break;
            	case 5:
            	    // OraclePLSQL.g:934:108: invoker_rights_clause
            	    {
            	        FOLLOWPUSH(FOLLOW_invoker_rights_clause_in_create_function7966);
            	        invoker_rights_clause846=invoker_rights_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, invoker_rights_clause846.tree);

            	    }
            	    break;

            	default:
            	    goto loop270;	/* break out of the loop */
            	    break;
                }
            }
            loop270: ; /* Jump out to here if this rule does not match */


            // OraclePLSQL.g:935:9: ( ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )? | call_spec | k_external | ( k_aggregate )? using_clause )
            {
                int alt276=4;
                switch ( LA(1) ) 
                {
                case 151:
                case 178:
                	{
                		alt276=1;
                	}
                    break;
                case 132:
                	{
                		alt276=2;
                	}
                    break;
                case 168:
                	{
                		alt276=3;
                	}
                    break;
                case K_USING:
                case 149:
                	{
                		alt276=4;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 276;
                    EXCEPTION->state        = 0;


                    goto rulecreate_functionEx;
                }

                switch (alt276) 
                {
            	case 1:
            	    // OraclePLSQL.g:935:11: ( k_is | k_as ) ( declare_section )? body ( exception_handler )? k_end ( ID )?
            	    {

            	        // OraclePLSQL.g:935:11: ( k_is | k_as )
            	        {
            	            int alt271=2;
            	            switch ( LA(1) ) 
            	            {
            	            case 178:
            	            	{
            	            		alt271=1;
            	            	}
            	                break;
            	            case 151:
            	            	{
            	            		alt271=2;
            	            	}
            	                break;

            	            default:
            	                if (BACKTRACKING>0)
            	                {
            	                    FAILEDFLAG = ANTLR3_TRUE;
            	                    return retval;
            	                }
            	                CONSTRUCTEX();
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            	                EXCEPTION->message      = (void *)"";
            	                EXCEPTION->decisionNum  = 271;
            	                EXCEPTION->state        = 0;


            	                goto rulecreate_functionEx;
            	            }

            	            switch (alt271) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:935:13: k_is
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_is_in_create_function7983);
            	        	        k_is847=k_is(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_is847.tree);

            	        	    }
            	        	    break;
            	        	case 2:
            	        	    // OraclePLSQL.g:935:20: k_as
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_as_in_create_function7987);
            	        	        k_as848=k_as(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_as848.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	        // OraclePLSQL.g:935:27: ( declare_section )?
            	        {
            	            int alt272=2;
            	            switch ( LA(1) ) 
            	            {
            	                case K_OUT:
            	                case ID:
            	                case 127:
            	                case 128:
            	                case 129:
            	                case 130:
            	                case 196:
            	                case 208:
            	                case 214:
            	                case 223:
            	                case 224:
            	                case 233:
            	                	{
            	                		alt272=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt272) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: declare_section
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_declare_section_in_create_function7991);
            	        	        declare_section849=declare_section(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, declare_section849.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_body_in_create_function7994);
            	        body850=body(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, body850.tree);

            	        // OraclePLSQL.g:935:49: ( exception_handler )?
            	        {
            	            int alt273=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 212:
            	                	{
            	                		alt273=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt273) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: exception_handler
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_exception_handler_in_create_function7996);
            	        	        exception_handler851=exception_handler(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, exception_handler851.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_k_end_in_create_function7999);
            	        k_end852=k_end(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_end852.tree);

            	        // OraclePLSQL.g:935:74: ( ID )?
            	        {
            	            int alt274=2;
            	            switch ( LA(1) ) 
            	            {
            	                case ID:
            	                	{
            	                		alt274=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt274) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: ID
            	        	    {
            	        	        ID853 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_create_function8001); 
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) {
            	        	        ID853_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, ID853));
            	        	        ADAPTOR->addChild(ADAPTOR, root_0, ID853_tree);
            	        	        }

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:936:11: call_spec
            	    {
            	        FOLLOWPUSH(FOLLOW_call_spec_in_create_function8014);
            	        call_spec854=call_spec(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, call_spec854.tree);

            	    }
            	    break;
            	case 3:
            	    // OraclePLSQL.g:937:11: k_external
            	    {
            	        FOLLOWPUSH(FOLLOW_k_external_in_create_function8026);
            	        k_external855=k_external(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_external855.tree);

            	    }
            	    break;
            	case 4:
            	    // OraclePLSQL.g:938:11: ( k_aggregate )? using_clause
            	    {

            	        // OraclePLSQL.g:938:11: ( k_aggregate )?
            	        {
            	            int alt275=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 149:
            	                	{
            	                		alt275=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt275) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:0:0: k_aggregate
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_aggregate_in_create_function8038);
            	        	        k_aggregate856=k_aggregate(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_functionEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_aggregate856.tree);

            	        	    }
            	        	    break;

            	            }
            	        }
            	        FOLLOWPUSH(FOLLOW_using_clause_in_create_function8041);
            	        using_clause857=using_clause(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_functionEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, using_clause857.tree);

            	    }
            	    break;

                }
            }
            set858=(pANTLR3_COMMON_TOKEN)LT(1);
            if ( LA(1) == EOF || LA(1) == SEMI )
            {
                CONSUME();
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set858)));
                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            }
            else 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
                EXCEPTION->expectingSet = &FOLLOW_set_in_create_function8053;
                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_create_function8053);    goto rulecreate_functionEx;
            }


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_functionEx; /* Prevent compiler warnings */
    rulecreate_functionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(144, create_function_StartIndex); }

    return retval;
}
/* $ANTLR end create_function */

/** 
 * $ANTLR start create_trigger
 * OraclePLSQL.g:942:1: create_trigger : ( k_create ( k_or kREPLACE )? )? k_trigger ( schema_name DOT )? t= identifier[T_TRIGGER_NAME,T_DECL] (~ ( 'DECLARE' | 'BEGIN' ) )* ( k_declare | k_begin )=> plsql_block SEMI ;
 */
static OraclePLSQLParser_create_trigger_return
create_trigger(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_trigger_return retval;
    ANTLR3_UINT32 create_trigger_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOT864;
    pANTLR3_COMMON_TOKEN    set865;
    pANTLR3_COMMON_TOKEN    SEMI867;
    OraclePLSQLParser_identifier_return t;
    #undef	RETURN_TYPE_t
    #define	RETURN_TYPE_t OraclePLSQLParser_identifier_return

    OraclePLSQLParser_k_create_return k_create859;
    #undef	RETURN_TYPE_k_create859
    #define	RETURN_TYPE_k_create859 OraclePLSQLParser_k_create_return

    OraclePLSQLParser_k_or_return k_or860;
    #undef	RETURN_TYPE_k_or860
    #define	RETURN_TYPE_k_or860 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_kREPLACE_return kREPLACE861;
    #undef	RETURN_TYPE_kREPLACE861
    #define	RETURN_TYPE_kREPLACE861 OraclePLSQLParser_kREPLACE_return

    OraclePLSQLParser_k_trigger_return k_trigger862;
    #undef	RETURN_TYPE_k_trigger862
    #define	RETURN_TYPE_k_trigger862 OraclePLSQLParser_k_trigger_return

    OraclePLSQLParser_schema_name_return schema_name863;
    #undef	RETURN_TYPE_schema_name863
    #define	RETURN_TYPE_schema_name863 OraclePLSQLParser_schema_name_return

    OraclePLSQLParser_plsql_block_return plsql_block866;
    #undef	RETURN_TYPE_plsql_block866
    #define	RETURN_TYPE_plsql_block866 OraclePLSQLParser_plsql_block_return

    pANTLR3_BASE_TREE DOT864_tree;
    pANTLR3_BASE_TREE set865_tree;
    pANTLR3_BASE_TREE SEMI867_tree;

    /* Initialize rule variables
     */
    create_trigger_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(145)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOT864       = NULL;
    set865       = NULL;
    SEMI867       = NULL;
    t.tree = NULL;
    k_create859.tree = NULL;
    k_or860.tree = NULL;
    kREPLACE861.tree = NULL;
    k_trigger862.tree = NULL;
    schema_name863.tree = NULL;
    plsql_block866.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOT864_tree   = NULL;
    set865_tree   = NULL;
    SEMI867_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:942:16: ( ( k_create ( k_or kREPLACE )? )? k_trigger ( schema_name DOT )? t= identifier[T_TRIGGER_NAME,T_DECL] (~ ( 'DECLARE' | 'BEGIN' ) )* ( k_declare | k_begin )=> plsql_block SEMI )
        // OraclePLSQL.g:943:9: ( k_create ( k_or kREPLACE )? )? k_trigger ( schema_name DOT )? t= identifier[T_TRIGGER_NAME,T_DECL] (~ ( 'DECLARE' | 'BEGIN' ) )* ( k_declare | k_begin )=> plsql_block SEMI
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:943:9: ( k_create ( k_or kREPLACE )? )?
            {
                int alt278=2;
                switch ( LA(1) ) 
                {
                    case 159:
                    	{
                    		alt278=1;
                    	}
                        break;
                }

                switch (alt278) 
                {
            	case 1:
            	    // OraclePLSQL.g:943:10: k_create ( k_or kREPLACE )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_create_in_create_trigger8080);
            	        k_create859=k_create(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_triggerEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_create859.tree);

            	        // OraclePLSQL.g:943:19: ( k_or kREPLACE )?
            	        {
            	            int alt277=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 185:
            	                	{
            	                		alt277=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt277) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:943:21: k_or kREPLACE
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_or_in_create_trigger8084);
            	        	        k_or860=k_or(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_triggerEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or860.tree);
            	        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_create_trigger8086);
            	        	        kREPLACE861=kREPLACE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_triggerEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kREPLACE861.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_trigger_in_create_trigger8093);
            k_trigger862=k_trigger(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_triggerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_trigger862.tree);

            // OraclePLSQL.g:943:50: ( schema_name DOT )?
            {
                int alt279=2;
                switch ( LA(1) ) 
                {
                    case ID:
                    	{
                    		switch ( LA(2) ) 
                    		{
                    		    case DOT:
                    		    	{
                    		    		switch ( LA(3) ) 
                    		    		{
                    		    		    case ID:
                    		    		    	{
                    		    		    		{
                    		    		    		    int LA279_4 = LA(4);
                    		    		    		    if ( (synpred441_OraclePLSQL(ctx))) 
                    		    		    		    {
                    		    		    		        alt279=1;
                    		    		    		    }
                    		    		    		}
                    		    		    	}
                    		    		        break;
                    		    		}

                    		    	}
                    		        break;
                    		}

                    	}
                        break;
                }

                switch (alt279) 
                {
            	case 1:
            	    // OraclePLSQL.g:943:52: schema_name DOT
            	    {
            	        FOLLOWPUSH(FOLLOW_schema_name_in_create_trigger8097);
            	        schema_name863=schema_name(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_triggerEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, schema_name863.tree);
            	        DOT864 = (pANTLR3_COMMON_TOKEN) MATCHT(DOT, &FOLLOW_DOT_in_create_trigger8099); 
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_triggerEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) {
            	        DOT864_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOT864));
            	        ADAPTOR->addChild(ADAPTOR, root_0, DOT864_tree);
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_identifier_in_create_trigger8106);
            t=identifier(ctx, T_TRIGGER_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_triggerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, t.tree);

            // OraclePLSQL.g:948:9: (~ ( 'DECLARE' | 'BEGIN' ) )*

            for (;;)
            {
                int alt280=2;
                switch ( LA(1) ) 
                {
                case T_UNKNOWN:
                case T_RESERVED:
                case T_SCHEMA_NAME:
                case T_TRIGGER_NAME:
                case T_PACKAGE_NAME:
                case T_FUNCTION_NAME:
                case T_PROCEDURE_NAME:
                case T_PARAMETER_NAME:
                case T_BINDVAR_NAME:
                case T_VARIABLE_NAME:
                case T_DATATYPE_NAME:
                case T_CURSOR_NAME:
                case T_TABLE_NAME:
                case T_COLUMN_NAME:
                case T_OBJECT_NAME:
                case T_LABEL_NAME:
                case T_EXCEPTION_NAME:
                case T_DBLINK_NAME:
                case T_DECL:
                case T_USE:
                case T_USEL:
                case T_TYPE_DECL:
                case T_SUBTYPE_DECL:
                case T_CURSOR_DECL:
                case T_VAR_DECL:
                case T_CONST_DECL:
                case T_EXC_DECL:
                case T_FUNCTION_DECL:
                case T_PROCEDURE_DECL:
                case T_PRAGMA_DECL:
                case T_DECL_BLOCK:
                case T_BLOCK_BLOCK:
                case T_PROCEDURE_BLOCK:
                case T_FUNCTION_BLOCK:
                case T_DECLARE_BLOCK:
                case T_BEGIN_BLOCK:
                case T_EXCEPTIONS_BLOCK:
                case T_COMMIT:
                case T_DELETE:
                case T_INSERT:
                case T_LOCK_TABLE:
                case T_MERGE:
                case T_ROLLBACK:
                case T_SAVEPOINT:
                case T_SELECT:
                case T_SET_TRANSACTION:
                case T_UPDATE:
                case T_EXECUTE_IMMEDIATE:
                case T_CASE:
                case T_OPEN:
                case T_CLOSE:
                case T_CONTINUE:
                case T_PIPE:
                case T_GOTO:
                case T_EXIT:
                case T_RETURN:
                case T_DECLARE:
                case T_RAISE:
                case T_FETCH:
                case T_LOOP:
                case T_WHILE:
                case T_NULL_STAT:
                case T_FOR:
                case T_FORALL:
                case T_IF:
                case T_ELSIF:
                case T_ELSE:
                case T_ENDIF:
                case T_ASSIGN:
                case T_CALL:
                case T_DECLARATION:
                case T_STATEMENT:
                case DIVIDE:
                case SEMI:
                case LPAREN:
                case COMMA:
                case RPAREN:
                case K_IN:
                case K_OUT:
                case ASSIGN:
                case ID:
                case INTEGER:
                case DOT:
                case K_USING:
                case DOUBLEDOT:
                case LLABEL:
                case RLABEL:
                case COLON:
                case AT_SIGN:
                case EQ:
                case LTH:
                case GTH:
                case MINUS:
                case PLUS:
                case DOUBLEVERTBAR:
                case ASTERISK:
                case REAL_NUMBER:
                case QUOTED_STRING:
                case ARROW:
                case QSTRING:
                case QS_ANGLE:
                case QS_BRACE:
                case QS_BRACK:
                case QS_PAREN:
                case QS_OTHER:
                case QUOTE:
                case QS_OTHER_CH:
                case BINDVAR:
                case DOUBLEQUOTED_STRING:
                case NUM:
                case POINT:
                case RBRACK:
                case LBRACK:
                case PERCENT:
                case VERTBAR:
                case NOT_EQ:
                case LEQ:
                case GEQ:
                case NUMBER_VALUE:
                case WS:
                case SL_COMMENT:
                case ML_COMMENT:
                case 126:
                case 127:
                case 128:
                case 129:
                case 130:
                case 131:
                case 132:
                case 133:
                case 134:
                case 135:
                case 136:
                case 137:
                case 140:
                case 141:
                case 142:
                case 143:
                case 144:
                case 145:
                case 146:
                case 147:
                case 148:
                case 149:
                case 150:
                case 151:
                case 152:
                case 153:
                case 154:
                case 155:
                case 156:
                case 157:
                case 158:
                case 159:
                case 160:
                case 161:
                case 162:
                case 163:
                case 164:
                case 165:
                case 166:
                case 167:
                case 168:
                case 169:
                case 170:
                case 171:
                case 172:
                case 173:
                case 174:
                case 175:
                case 176:
                case 177:
                case 178:
                case 179:
                case 180:
                case 181:
                case 182:
                case 183:
                case 184:
                case 185:
                case 186:
                case 187:
                case 188:
                case 189:
                case 190:
                case 191:
                case 192:
                case 193:
                case 194:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                case 200:
                case 201:
                case 202:
                case 203:
                case 204:
                case 205:
                case 206:
                case 207:
                case 208:
                case 209:
                case 210:
                case 211:
                case 212:
                case 213:
                case 214:
                case 215:
                case 216:
                case 217:
                case 218:
                case 219:
                case 220:
                case 221:
                case 222:
                case 223:
                case 224:
                case 225:
                case 226:
                case 227:
                case 228:
                case 229:
                case 230:
                case 231:
                case 232:
                case 233:
                case 234:
                case 235:
                case 236:
                case 237:
                case 238:
                case 239:
                case 240:
                case 241:
                case 242:
                case 243:
                	{
                		alt280=1;
                	}
                    break;

                }

                switch (alt280) 
                {
            	case 1:
            	    // OraclePLSQL.g:0:0: ~ ( 'DECLARE' | 'BEGIN' )
            	    {
            	        set865=(pANTLR3_COMMON_TOKEN)LT(1);
            	        if ( ((LA(1) >= T_UNKNOWN) && (LA(1) <= 137)) || ((LA(1) >= 140) && (LA(1) <= 243)) )
            	        {
            	            CONSUME();
            	            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set865)));
            	            PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            	        }
            	        else 
            	        {
            	            if (BACKTRACKING>0)
            	            {
            	                FAILEDFLAG = ANTLR3_TRUE;
            	                return retval;
            	            }
            	            CONSTRUCTEX();
            	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            	            EXCEPTION->expectingSet = &FOLLOW_set_in_create_trigger8121;
            	            RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_create_trigger8121);    goto rulecreate_triggerEx;
            	        }


            	    }
            	    break;

            	default:
            	    goto loop280;	/* break out of the loop */
            	    break;
                }
            }
            loop280: ; /* Jump out to here if this rule does not match */

            FOLLOWPUSH(FOLLOW_plsql_block_in_create_trigger8145);
            plsql_block866=plsql_block(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_triggerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, plsql_block866.tree);
            SEMI867 = (pANTLR3_COMMON_TOKEN) MATCHT(SEMI, &FOLLOW_SEMI_in_create_trigger8155); 
            if  (HASEXCEPTION())
            {
                goto rulecreate_triggerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            SEMI867_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, SEMI867));
            ADAPTOR->addChild(ADAPTOR, root_0, SEMI867_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_triggerEx; /* Prevent compiler warnings */
    rulecreate_triggerEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(145, create_trigger_StartIndex); }

    return retval;
}
/* $ANTLR end create_trigger */

/** 
 * $ANTLR start create_type
 * OraclePLSQL.g:953:1: create_type : ( k_create ( k_or kREPLACE )? )? k_type identifier[T_DATATYPE_NAME, T_DECL] swallow_to_semi ( SEMI | EOF ) ;
 */
static OraclePLSQLParser_create_type_return
create_type(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_create_type_return retval;
    ANTLR3_UINT32 create_type_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    set874;
    OraclePLSQLParser_k_create_return k_create868;
    #undef	RETURN_TYPE_k_create868
    #define	RETURN_TYPE_k_create868 OraclePLSQLParser_k_create_return

    OraclePLSQLParser_k_or_return k_or869;
    #undef	RETURN_TYPE_k_or869
    #define	RETURN_TYPE_k_or869 OraclePLSQLParser_k_or_return

    OraclePLSQLParser_kREPLACE_return kREPLACE870;
    #undef	RETURN_TYPE_kREPLACE870
    #define	RETURN_TYPE_kREPLACE870 OraclePLSQLParser_kREPLACE_return

    OraclePLSQLParser_k_type_return k_type871;
    #undef	RETURN_TYPE_k_type871
    #define	RETURN_TYPE_k_type871 OraclePLSQLParser_k_type_return

    OraclePLSQLParser_identifier_return identifier872;
    #undef	RETURN_TYPE_identifier872
    #define	RETURN_TYPE_identifier872 OraclePLSQLParser_identifier_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi873;
    #undef	RETURN_TYPE_swallow_to_semi873
    #define	RETURN_TYPE_swallow_to_semi873 OraclePLSQLParser_swallow_to_semi_return

    pANTLR3_BASE_TREE set874_tree;

    /* Initialize rule variables
     */
    create_type_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(146)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    set874       = NULL;
    k_create868.tree = NULL;
    k_or869.tree = NULL;
    kREPLACE870.tree = NULL;
    k_type871.tree = NULL;
    identifier872.tree = NULL;
    swallow_to_semi873.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    set874_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:953:13: ( ( k_create ( k_or kREPLACE )? )? k_type identifier[T_DATATYPE_NAME, T_DECL] swallow_to_semi ( SEMI | EOF ) )
        // OraclePLSQL.g:954:9: ( k_create ( k_or kREPLACE )? )? k_type identifier[T_DATATYPE_NAME, T_DECL] swallow_to_semi ( SEMI | EOF )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));


            // OraclePLSQL.g:954:9: ( k_create ( k_or kREPLACE )? )?
            {
                int alt282=2;
                switch ( LA(1) ) 
                {
                    case 159:
                    	{
                    		alt282=1;
                    	}
                        break;
                }

                switch (alt282) 
                {
            	case 1:
            	    // OraclePLSQL.g:954:10: k_create ( k_or kREPLACE )?
            	    {
            	        FOLLOWPUSH(FOLLOW_k_create_in_create_type8185);
            	        k_create868=k_create(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto rulecreate_typeEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_create868.tree);

            	        // OraclePLSQL.g:954:19: ( k_or kREPLACE )?
            	        {
            	            int alt281=2;
            	            switch ( LA(1) ) 
            	            {
            	                case 185:
            	                	{
            	                		alt281=1;
            	                	}
            	                    break;
            	            }

            	            switch (alt281) 
            	            {
            	        	case 1:
            	        	    // OraclePLSQL.g:954:21: k_or kREPLACE
            	        	    {
            	        	        FOLLOWPUSH(FOLLOW_k_or_in_create_type8189);
            	        	        k_or869=k_or(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_typeEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_or869.tree);
            	        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_create_type8191);
            	        	        kREPLACE870=kREPLACE(ctx);

            	        	        FOLLOWPOP();
            	        	        if  (HASEXCEPTION())
            	        	        {
            	        	            goto rulecreate_typeEx;
            	        	        }
            	        	        if (HASFAILED())
            	        	        {
            	        	            return retval;
            	        	        }
            	        	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, kREPLACE870.tree);

            	        	    }
            	        	    break;

            	            }
            	        }

            	    }
            	    break;

                }
            }
            FOLLOWPUSH(FOLLOW_k_type_in_create_type8215);
            k_type871=k_type(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_typeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_type871.tree);
            FOLLOWPUSH(FOLLOW_identifier_in_create_type8217);
            identifier872=identifier(ctx, T_DATATYPE_NAME, T_DECL);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_typeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier872.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_create_type8237);
            swallow_to_semi873=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecreate_typeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi873.tree);
            set874=(pANTLR3_COMMON_TOKEN)LT(1);
            if ( LA(1) == EOF || LA(1) == SEMI )
            {
                CONSUME();
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set874)));
                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            }
            else 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
                EXCEPTION->expectingSet = &FOLLOW_set_in_create_type8247;
                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_create_type8247);    goto rulecreate_typeEx;
            }


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecreate_typeEx; /* Prevent compiler warnings */
    rulecreate_typeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(146, create_type_StartIndex); }

    return retval;
}
/* $ANTLR end create_type */

/** 
 * $ANTLR start invoker_rights_clause
 * OraclePLSQL.g:962:1: invoker_rights_clause : k_authid ( k_current_user | k_definer ) ;
 */
static OraclePLSQLParser_invoker_rights_clause_return
invoker_rights_clause(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_invoker_rights_clause_return retval;
    ANTLR3_UINT32 invoker_rights_clause_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_authid_return k_authid875;
    #undef	RETURN_TYPE_k_authid875
    #define	RETURN_TYPE_k_authid875 OraclePLSQLParser_k_authid_return

    OraclePLSQLParser_k_current_user_return k_current_user876;
    #undef	RETURN_TYPE_k_current_user876
    #define	RETURN_TYPE_k_current_user876 OraclePLSQLParser_k_current_user_return

    OraclePLSQLParser_k_definer_return k_definer877;
    #undef	RETURN_TYPE_k_definer877
    #define	RETURN_TYPE_k_definer877 OraclePLSQLParser_k_definer_return


    /* Initialize rule variables
     */
    invoker_rights_clause_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(147)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_authid875.tree = NULL;
    k_current_user876.tree = NULL;
    k_definer877.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:962:23: ( k_authid ( k_current_user | k_definer ) )
        // OraclePLSQL.g:963:9: k_authid ( k_current_user | k_definer )
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_authid_in_invoker_rights_clause8273);
            k_authid875=k_authid(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruleinvoker_rights_clauseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_authid875.tree);

            // OraclePLSQL.g:963:18: ( k_current_user | k_definer )
            {
                int alt283=2;
                switch ( LA(1) ) 
                {
                case 162:
                	{
                		alt283=1;
                	}
                    break;
                case 165:
                	{
                		alt283=2;
                	}
                    break;

                default:
                    if (BACKTRACKING>0)
                    {
                        FAILEDFLAG = ANTLR3_TRUE;
                        return retval;
                    }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                    EXCEPTION->message      = (void *)"";
                    EXCEPTION->decisionNum  = 283;
                    EXCEPTION->state        = 0;


                    goto ruleinvoker_rights_clauseEx;
                }

                switch (alt283) 
                {
            	case 1:
            	    // OraclePLSQL.g:963:20: k_current_user
            	    {
            	        FOLLOWPUSH(FOLLOW_k_current_user_in_invoker_rights_clause8277);
            	        k_current_user876=k_current_user(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleinvoker_rights_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_current_user876.tree);

            	    }
            	    break;
            	case 2:
            	    // OraclePLSQL.g:963:37: k_definer
            	    {
            	        FOLLOWPUSH(FOLLOW_k_definer_in_invoker_rights_clause8281);
            	        k_definer877=k_definer(ctx);

            	        FOLLOWPOP();
            	        if  (HASEXCEPTION())
            	        {
            	            goto ruleinvoker_rights_clauseEx;
            	        }
            	        if (HASFAILED())
            	        {
            	            return retval;
            	        }
            	        if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_definer877.tree);

            	    }
            	    break;

                }
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleinvoker_rights_clauseEx; /* Prevent compiler warnings */
    ruleinvoker_rights_clauseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(147, invoker_rights_clause_StartIndex); }

    return retval;
}
/* $ANTLR end invoker_rights_clause */

/** 
 * $ANTLR start call_spec
 * OraclePLSQL.g:966:1: call_spec : k_language swallow_to_semi ;
 */
static OraclePLSQLParser_call_spec_return
call_spec(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_call_spec_return retval;
    ANTLR3_UINT32 call_spec_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_k_language_return k_language878;
    #undef	RETURN_TYPE_k_language878
    #define	RETURN_TYPE_k_language878 OraclePLSQLParser_k_language_return

    OraclePLSQLParser_swallow_to_semi_return swallow_to_semi879;
    #undef	RETURN_TYPE_swallow_to_semi879
    #define	RETURN_TYPE_swallow_to_semi879 OraclePLSQLParser_swallow_to_semi_return


    /* Initialize rule variables
     */
    call_spec_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(148)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    k_language878.tree = NULL;
    swallow_to_semi879.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:967:5: ( k_language swallow_to_semi )
        // OraclePLSQL.g:967:7: k_language swallow_to_semi
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            FOLLOWPUSH(FOLLOW_k_language_in_call_spec8300);
            k_language878=k_language(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecall_specEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_language878.tree);
            FOLLOWPUSH(FOLLOW_swallow_to_semi_in_call_spec8302);
            swallow_to_semi879=swallow_to_semi(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulecall_specEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, swallow_to_semi879.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecall_specEx; /* Prevent compiler warnings */
    rulecall_specEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(148, call_spec_StartIndex); }

    return retval;
}
/* $ANTLR end call_spec */

/** 
 * $ANTLR start r_char
 * OraclePLSQL.g:970:1: r_char : r= 'CHAR' ;
 */
static OraclePLSQLParser_r_char_return
r_char(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_char_return retval;
    ANTLR3_UINT32 r_char_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_char_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(149)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:970:14: (r= 'CHAR' )
        // OraclePLSQL.g:970:16: r= 'CHAR'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(140, &FOLLOW_140_in_r_char8323); 
            if  (HASEXCEPTION())
            {
                goto ruler_charEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_charEx; /* Prevent compiler warnings */
    ruler_charEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(149, r_char_StartIndex); }

    return retval;
}
/* $ANTLR end r_char */

/** 
 * $ANTLR start r_from
 * OraclePLSQL.g:971:1: r_from : r= 'FROM' ;
 */
static OraclePLSQLParser_r_from_return
r_from(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_from_return retval;
    ANTLR3_UINT32 r_from_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_from_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(150)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:971:14: (r= 'FROM' )
        // OraclePLSQL.g:971:16: r= 'FROM'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(141, &FOLLOW_141_in_r_from8341); 
            if  (HASEXCEPTION())
            {
                goto ruler_fromEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_fromEx; /* Prevent compiler warnings */
    ruler_fromEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(150, r_from_StartIndex); }

    return retval;
}
/* $ANTLR end r_from */

/** 
 * $ANTLR start r_long
 * OraclePLSQL.g:972:1: r_long : r= 'LONG' ;
 */
static OraclePLSQLParser_r_long_return
r_long(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_long_return retval;
    ANTLR3_UINT32 r_long_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_long_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(151)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:972:14: (r= 'LONG' )
        // OraclePLSQL.g:972:16: r= 'LONG'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(142, &FOLLOW_142_in_r_long8359); 
            if  (HASEXCEPTION())
            {
                goto ruler_longEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_longEx; /* Prevent compiler warnings */
    ruler_longEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(151, r_long_StartIndex); }

    return retval;
}
/* $ANTLR end r_long */

/** 
 * $ANTLR start r_raw
 * OraclePLSQL.g:973:1: r_raw : r= 'RAW' ;
 */
static OraclePLSQLParser_r_raw_return
r_raw(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_raw_return retval;
    ANTLR3_UINT32 r_raw_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_raw_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(152)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:973:14: (r= 'RAW' )
        // OraclePLSQL.g:973:16: r= 'RAW'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(143, &FOLLOW_143_in_r_raw8378); 
            if  (HASEXCEPTION())
            {
                goto ruler_rawEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_rawEx; /* Prevent compiler warnings */
    ruler_rawEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(152, r_raw_StartIndex); }

    return retval;
}
/* $ANTLR end r_raw */

/** 
 * $ANTLR start r_set
 * OraclePLSQL.g:974:1: r_set : r= 'SET' ;
 */
static OraclePLSQLParser_r_set_return
r_set(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_set_return retval;
    ANTLR3_UINT32 r_set_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_set_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(153)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:974:14: (r= 'SET' )
        // OraclePLSQL.g:974:16: r= 'SET'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(144, &FOLLOW_144_in_r_set8397); 
            if  (HASEXCEPTION())
            {
                goto ruler_setEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_setEx; /* Prevent compiler warnings */
    ruler_setEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(153, r_set_StartIndex); }

    return retval;
}
/* $ANTLR end r_set */

/** 
 * $ANTLR start r_to
 * OraclePLSQL.g:975:1: r_to : r= 'TO' ;
 */
static OraclePLSQLParser_r_to_return
r_to(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_to_return retval;
    ANTLR3_UINT32 r_to_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_to_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(154)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:975:14: (r= 'TO' )
        // OraclePLSQL.g:975:16: r= 'TO'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(145, &FOLLOW_145_in_r_to8417); 
            if  (HASEXCEPTION())
            {
                goto ruler_toEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_toEx; /* Prevent compiler warnings */
    ruler_toEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(154, r_to_StartIndex); }

    return retval;
}
/* $ANTLR end r_to */

/** 
 * $ANTLR start r_varchar
 * OraclePLSQL.g:976:1: r_varchar : r= 'VARCHAR' ;
 */
static OraclePLSQLParser_r_varchar_return
r_varchar(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_varchar_return retval;
    ANTLR3_UINT32 r_varchar_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_varchar_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(155)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:976:14: (r= 'VARCHAR' )
        // OraclePLSQL.g:976:16: r= 'VARCHAR'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(146, &FOLLOW_146_in_r_varchar8432); 
            if  (HASEXCEPTION())
            {
                goto ruler_varcharEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_varcharEx; /* Prevent compiler warnings */
    ruler_varcharEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(155, r_varchar_StartIndex); }

    return retval;
}
/* $ANTLR end r_varchar */

/** 
 * $ANTLR start r_varchar2
 * OraclePLSQL.g:977:1: r_varchar2 : r= 'VARCHAR2' ;
 */
static OraclePLSQLParser_r_varchar2_return
r_varchar2(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_varchar2_return retval;
    ANTLR3_UINT32 r_varchar2_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_varchar2_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(156)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:977:14: (r= 'VARCHAR2' )
        // OraclePLSQL.g:977:16: r= 'VARCHAR2'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(147, &FOLLOW_147_in_r_varchar28446); 
            if  (HASEXCEPTION())
            {
                goto ruler_varchar2Ex;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_varchar2Ex; /* Prevent compiler warnings */
    ruler_varchar2Ex: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(156, r_varchar2_StartIndex); }

    return retval;
}
/* $ANTLR end r_varchar2 */

/** 
 * $ANTLR start r_with
 * OraclePLSQL.g:978:1: r_with : r= 'WITH' ;
 */
static OraclePLSQLParser_r_with_return
r_with(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_r_with_return retval;
    ANTLR3_UINT32 r_with_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    r_with_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(157)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:978:14: (r= 'WITH' )
        // OraclePLSQL.g:978:16: r= 'WITH'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(148, &FOLLOW_148_in_r_with8464); 
            if  (HASEXCEPTION())
            {
                goto ruler_withEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruler_withEx; /* Prevent compiler warnings */
    ruler_withEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(157, r_with_StartIndex); }

    return retval;
}
/* $ANTLR end r_with */

/** 
 * $ANTLR start kAT
 * OraclePLSQL.g:1004:1: kAT : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kAT_return
kAT(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kAT_return retval;
    ANTLR3_UINT32 kAT_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier880;
    #undef	RETURN_TYPE_identifier880
    #define	RETURN_TYPE_identifier880 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kAT_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(158)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier880.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1004:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1004:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "AT"     )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"AT\"     ))";
                    EXCEPTION->ruleName	 = (void *)"kAT";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kAT8509);
            identifier880=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekATEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier880.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekATEx; /* Prevent compiler warnings */
    rulekATEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(158, kAT_StartIndex); }

    return retval;
}
/* $ANTLR end kAT */

/** 
 * $ANTLR start kERRORS
 * OraclePLSQL.g:1005:1: kERRORS : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kERRORS_return
kERRORS(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kERRORS_return retval;
    ANTLR3_UINT32 kERRORS_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier881;
    #undef	RETURN_TYPE_identifier881
    #define	RETURN_TYPE_identifier881 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kERRORS_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(159)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier881.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1005:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1005:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "ERRORS"     )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"ERRORS\"     ))";
                    EXCEPTION->ruleName	 = (void *)"kERRORS";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kERRORS8523);
            identifier881=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekERRORSEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier881.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekERRORSEx; /* Prevent compiler warnings */
    rulekERRORSEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(159, kERRORS_StartIndex); }

    return retval;
}
/* $ANTLR end kERRORS */

/** 
 * $ANTLR start kEXCEPTIONS
 * OraclePLSQL.g:1006:1: kEXCEPTIONS : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kEXCEPTIONS_return
kEXCEPTIONS(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kEXCEPTIONS_return retval;
    ANTLR3_UINT32 kEXCEPTIONS_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier882;
    #undef	RETURN_TYPE_identifier882
    #define	RETURN_TYPE_identifier882 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kEXCEPTIONS_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(160)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier882.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1006:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1006:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "EXCEPTIONS" )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"EXCEPTIONS\" ))";
                    EXCEPTION->ruleName	 = (void *)"kEXCEPTIONS";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kEXCEPTIONS8533);
            identifier882=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekEXCEPTIONSEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier882.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekEXCEPTIONSEx; /* Prevent compiler warnings */
    rulekEXCEPTIONSEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(160, kEXCEPTIONS_StartIndex); }

    return retval;
}
/* $ANTLR end kEXCEPTIONS */

/** 
 * $ANTLR start kFOUND
 * OraclePLSQL.g:1007:1: kFOUND : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kFOUND_return
kFOUND(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kFOUND_return retval;
    ANTLR3_UINT32 kFOUND_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier883;
    #undef	RETURN_TYPE_identifier883
    #define	RETURN_TYPE_identifier883 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kFOUND_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(161)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier883.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1007:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1007:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "FOUND"      )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"FOUND\"      ))";
                    EXCEPTION->ruleName	 = (void *)"kFOUND";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kFOUND8548);
            identifier883=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekFOUNDEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier883.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekFOUNDEx; /* Prevent compiler warnings */
    rulekFOUNDEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(161, kFOUND_StartIndex); }

    return retval;
}
/* $ANTLR end kFOUND */

/** 
 * $ANTLR start kINDICES
 * OraclePLSQL.g:1008:1: kINDICES : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kINDICES_return
kINDICES(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kINDICES_return retval;
    ANTLR3_UINT32 kINDICES_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier884;
    #undef	RETURN_TYPE_identifier884
    #define	RETURN_TYPE_identifier884 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kINDICES_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(162)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier884.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1008:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1008:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "INDICES"    )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"INDICES\"    ))";
                    EXCEPTION->ruleName	 = (void *)"kINDICES";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kINDICES8561);
            identifier884=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekINDICESEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier884.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekINDICESEx; /* Prevent compiler warnings */
    rulekINDICESEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(162, kINDICES_StartIndex); }

    return retval;
}
/* $ANTLR end kINDICES */

/** 
 * $ANTLR start kMOD
 * OraclePLSQL.g:1009:1: kMOD : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kMOD_return
kMOD(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kMOD_return retval;
    ANTLR3_UINT32 kMOD_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier885;
    #undef	RETURN_TYPE_identifier885
    #define	RETURN_TYPE_identifier885 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kMOD_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(163)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier885.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1009:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1009:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MOD"        )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"MOD\"        ))";
                    EXCEPTION->ruleName	 = (void *)"kMOD";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kMOD8578);
            identifier885=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekMODEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier885.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekMODEx; /* Prevent compiler warnings */
    rulekMODEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(163, kMOD_StartIndex); }

    return retval;
}
/* $ANTLR end kMOD */

/** 
 * $ANTLR start kNAME
 * OraclePLSQL.g:1010:1: kNAME : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kNAME_return
kNAME(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kNAME_return retval;
    ANTLR3_UINT32 kNAME_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier886;
    #undef	RETURN_TYPE_identifier886
    #define	RETURN_TYPE_identifier886 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kNAME_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(164)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier886.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1010:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1010:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "NAME"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"NAME\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kNAME";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kNAME8594);
            identifier886=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekNAMEEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier886.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekNAMEEx; /* Prevent compiler warnings */
    rulekNAMEEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(164, kNAME_StartIndex); }

    return retval;
}
/* $ANTLR end kNAME */

/** 
 * $ANTLR start kOF
 * OraclePLSQL.g:1011:1: kOF : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kOF_return
kOF(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kOF_return retval;
    ANTLR3_UINT32 kOF_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier887;
    #undef	RETURN_TYPE_identifier887
    #define	RETURN_TYPE_identifier887 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kOF_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(165)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier887.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1011:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1011:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "OF"         )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"OF\"         ))";
                    EXCEPTION->ruleName	 = (void *)"kOF";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kOF8612);
            identifier887=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekOFEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier887.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekOFEx; /* Prevent compiler warnings */
    rulekOFEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(165, kOF_StartIndex); }

    return retval;
}
/* $ANTLR end kOF */

/** 
 * $ANTLR start kREPLACE
 * OraclePLSQL.g:1012:1: kREPLACE : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kREPLACE_return
kREPLACE(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kREPLACE_return retval;
    ANTLR3_UINT32 kREPLACE_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier888;
    #undef	RETURN_TYPE_identifier888
    #define	RETURN_TYPE_identifier888 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kREPLACE_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(166)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier888.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1012:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1012:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "REPLACE"    )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"REPLACE\"    ))";
                    EXCEPTION->ruleName	 = (void *)"kREPLACE";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kREPLACE8625);
            identifier888=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekREPLACEEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier888.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekREPLACEEx; /* Prevent compiler warnings */
    rulekREPLACEEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(166, kREPLACE_StartIndex); }

    return retval;
}
/* $ANTLR end kREPLACE */

/** 
 * $ANTLR start kSAVE
 * OraclePLSQL.g:1013:1: kSAVE : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kSAVE_return
kSAVE(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kSAVE_return retval;
    ANTLR3_UINT32 kSAVE_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier889;
    #undef	RETURN_TYPE_identifier889
    #define	RETURN_TYPE_identifier889 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kSAVE_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(167)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier889.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1013:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1013:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "SAVE"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"SAVE\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kSAVE";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kSAVE8641);
            identifier889=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekSAVEEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier889.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekSAVEEx; /* Prevent compiler warnings */
    rulekSAVEEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(167, kSAVE_StartIndex); }

    return retval;
}
/* $ANTLR end kSAVE */

/** 
 * $ANTLR start kSHOW
 * OraclePLSQL.g:1014:1: kSHOW : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kSHOW_return
kSHOW(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kSHOW_return retval;
    ANTLR3_UINT32 kSHOW_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier890;
    #undef	RETURN_TYPE_identifier890
    #define	RETURN_TYPE_identifier890 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kSHOW_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(168)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier890.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1014:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1014:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "SHOW"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"SHOW\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kSHOW";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kSHOW8657);
            identifier890=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekSHOWEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier890.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekSHOWEx; /* Prevent compiler warnings */
    rulekSHOWEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(168, kSHOW_StartIndex); }

    return retval;
}
/* $ANTLR end kSHOW */

/** 
 * $ANTLR start kVALUES
 * OraclePLSQL.g:1016:1: kVALUES : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kVALUES_return
kVALUES(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kVALUES_return retval;
    ANTLR3_UINT32 kVALUES_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier891;
    #undef	RETURN_TYPE_identifier891
    #define	RETURN_TYPE_identifier891 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kVALUES_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(169)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier891.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1016:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1016:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "VALUES"     )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"VALUES\"     ))";
                    EXCEPTION->ruleName	 = (void *)"kVALUES";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kVALUES8672);
            identifier891=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekVALUESEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier891.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekVALUESEx; /* Prevent compiler warnings */
    rulekVALUESEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(169, kVALUES_StartIndex); }

    return retval;
}
/* $ANTLR end kVALUES */

/** 
 * $ANTLR start kBYTE
 * OraclePLSQL.g:1017:1: kBYTE : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kBYTE_return
kBYTE(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kBYTE_return retval;
    ANTLR3_UINT32 kBYTE_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier892;
    #undef	RETURN_TYPE_identifier892
    #define	RETURN_TYPE_identifier892 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kBYTE_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(170)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier892.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1017:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1017:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "BYTE"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"BYTE\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kBYTE";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kBYTE8688);
            identifier892=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekBYTEEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier892.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekBYTEEx; /* Prevent compiler warnings */
    rulekBYTEEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(170, kBYTE_StartIndex); }

    return retval;
}
/* $ANTLR end kBYTE */

/** 
 * $ANTLR start kDAY
 * OraclePLSQL.g:1018:1: kDAY : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kDAY_return
kDAY(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kDAY_return retval;
    ANTLR3_UINT32 kDAY_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier893;
    #undef	RETURN_TYPE_identifier893
    #define	RETURN_TYPE_identifier893 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kDAY_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(171)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier893.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1018:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1018:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "DAY"        )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"DAY\"        ))";
                    EXCEPTION->ruleName	 = (void *)"kDAY";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kDAY8705);
            identifier893=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekDAYEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier893.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekDAYEx; /* Prevent compiler warnings */
    rulekDAYEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(171, kDAY_StartIndex); }

    return retval;
}
/* $ANTLR end kDAY */

/** 
 * $ANTLR start kMONTH
 * OraclePLSQL.g:1019:1: kMONTH : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kMONTH_return
kMONTH(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kMONTH_return retval;
    ANTLR3_UINT32 kMONTH_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier894;
    #undef	RETURN_TYPE_identifier894
    #define	RETURN_TYPE_identifier894 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kMONTH_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(172)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier894.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1019:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1019:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "MONTH"      )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"MONTH\"      ))";
                    EXCEPTION->ruleName	 = (void *)"kMONTH";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kMONTH8720);
            identifier894=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekMONTHEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier894.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekMONTHEx; /* Prevent compiler warnings */
    rulekMONTHEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(172, kMONTH_StartIndex); }

    return retval;
}
/* $ANTLR end kMONTH */

/** 
 * $ANTLR start kSECOND
 * OraclePLSQL.g:1020:1: kSECOND : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kSECOND_return
kSECOND(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kSECOND_return retval;
    ANTLR3_UINT32 kSECOND_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier895;
    #undef	RETURN_TYPE_identifier895
    #define	RETURN_TYPE_identifier895 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kSECOND_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(173)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier895.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1020:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1020:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "SECOND"     )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"SECOND\"     ))";
                    EXCEPTION->ruleName	 = (void *)"kSECOND";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kSECOND8734);
            identifier895=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekSECONDEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier895.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekSECONDEx; /* Prevent compiler warnings */
    rulekSECONDEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(173, kSECOND_StartIndex); }

    return retval;
}
/* $ANTLR end kSECOND */

/** 
 * $ANTLR start kYEAR
 * OraclePLSQL.g:1021:1: kYEAR : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kYEAR_return
kYEAR(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kYEAR_return retval;
    ANTLR3_UINT32 kYEAR_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier896;
    #undef	RETURN_TYPE_identifier896
    #define	RETURN_TYPE_identifier896 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kYEAR_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(174)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier896.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1021:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1021:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "YEAR"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"YEAR\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kYEAR";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kYEAR8750);
            identifier896=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekYEAREx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier896.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekYEAREx; /* Prevent compiler warnings */
    rulekYEAREx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(174, kYEAR_StartIndex); }

    return retval;
}
/* $ANTLR end kYEAR */

/** 
 * $ANTLR start kLOCAL
 * OraclePLSQL.g:1022:1: kLOCAL : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kLOCAL_return
kLOCAL(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kLOCAL_return retval;
    ANTLR3_UINT32 kLOCAL_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier897;
    #undef	RETURN_TYPE_identifier897
    #define	RETURN_TYPE_identifier897 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kLOCAL_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(175)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier897.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1022:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1022:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "LOCAL"      )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"LOCAL\"      ))";
                    EXCEPTION->ruleName	 = (void *)"kLOCAL";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kLOCAL8765);
            identifier897=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekLOCALEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier897.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekLOCALEx; /* Prevent compiler warnings */
    rulekLOCALEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(175, kLOCAL_StartIndex); }

    return retval;
}
/* $ANTLR end kLOCAL */

/** 
 * $ANTLR start kZONE
 * OraclePLSQL.g:1023:1: kZONE : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kZONE_return
kZONE(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kZONE_return retval;
    ANTLR3_UINT32 kZONE_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier898;
    #undef	RETURN_TYPE_identifier898
    #define	RETURN_TYPE_identifier898 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kZONE_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(176)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier898.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1023:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1023:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "ZONE"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"ZONE\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kZONE";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kZONE8781);
            identifier898=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekZONEEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier898.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekZONEEx; /* Prevent compiler warnings */
    rulekZONEEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(176, kZONE_StartIndex); }

    return retval;
}
/* $ANTLR end kZONE */

/** 
 * $ANTLR start kTIME
 * OraclePLSQL.g:1024:1: kTIME : {...}? identifier[T_RESERVED,0] ;
 */
static OraclePLSQLParser_kTIME_return
kTIME(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_kTIME_return retval;
    ANTLR3_UINT32 kTIME_StartIndex;
    pANTLR3_BASE_TREE root_0;

    OraclePLSQLParser_identifier_return identifier899;
    #undef	RETURN_TYPE_identifier899
    #define	RETURN_TYPE_identifier899 OraclePLSQLParser_identifier_return


    /* Initialize rule variables
     */
    kTIME_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(177)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    identifier899.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;



    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1024:13: ({...}? identifier[T_RESERVED,0] )
        // OraclePLSQL.g:1024:15: {...}? identifier[T_RESERVED,0]
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            if ( !((!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "TIME"       )))) ) 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                    CONSTRUCTEX();
                    EXCEPTION->type         = ANTLR3_FAILED_PREDICATE_EXCEPTION;
                    EXCEPTION->message      = (void *)"!(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, \"TIME\"       ))";
                    EXCEPTION->ruleName	 = (void *)"kTIME";


            }
            FOLLOWPUSH(FOLLOW_identifier_in_kTIME8797);
            identifier899=identifier(ctx, T_RESERVED, 0);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulekTIMEEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, identifier899.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulekTIMEEx; /* Prevent compiler warnings */
    rulekTIMEEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(177, kTIME_StartIndex); }

    return retval;
}
/* $ANTLR end kTIME */

/** 
 * $ANTLR start k_aggregate
 * OraclePLSQL.g:1026:1: k_aggregate : r= 'AGGREGATE' ;
 */
static OraclePLSQLParser_k_aggregate_return
k_aggregate(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_aggregate_return retval;
    ANTLR3_UINT32 k_aggregate_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_aggregate_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(178)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1026:13: (r= 'AGGREGATE' )
        // OraclePLSQL.g:1026:18: r= 'AGGREGATE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(149, &FOLLOW_149_in_k_aggregate8811); 
            if  (HASEXCEPTION())
            {
                goto rulek_aggregateEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_aggregateEx; /* Prevent compiler warnings */
    rulek_aggregateEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(178, k_aggregate_StartIndex); }

    return retval;
}
/* $ANTLR end k_aggregate */

/** 
 * $ANTLR start k_and
 * OraclePLSQL.g:1027:1: k_and : r= 'AND' ;
 */
static OraclePLSQLParser_k_and_return
k_and(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_and_return retval;
    ANTLR3_UINT32 k_and_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_and_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(179)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1027:7: (r= 'AND' )
        // OraclePLSQL.g:1027:18: r= 'AND'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(150, &FOLLOW_150_in_k_and8832); 
            if  (HASEXCEPTION())
            {
                goto rulek_andEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_andEx; /* Prevent compiler warnings */
    rulek_andEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(179, k_and_StartIndex); }

    return retval;
}
/* $ANTLR end k_and */

/** 
 * $ANTLR start k_array
 * OraclePLSQL.g:1028:1: k_array : r= 'ARRAY' ;
 */
static OraclePLSQLParser_k_array_return
k_array(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_array_return retval;
    ANTLR3_UINT32 k_array_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_array_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(180)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1028:9: (r= 'ARRAY' )
        // OraclePLSQL.g:1028:18: r= 'ARRAY'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(137, &FOLLOW_137_in_k_array8851); 
            if  (HASEXCEPTION())
            {
                goto rulek_arrayEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_arrayEx; /* Prevent compiler warnings */
    rulek_arrayEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(180, k_array_StartIndex); }

    return retval;
}
/* $ANTLR end k_array */

/** 
 * $ANTLR start k_as
 * OraclePLSQL.g:1029:1: k_as : r= 'AS' ;
 */
static OraclePLSQLParser_k_as_return
k_as(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_as_return retval;
    ANTLR3_UINT32 k_as_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_as_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(181)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1029:6: (r= 'AS' )
        // OraclePLSQL.g:1029:18: r= 'AS'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(151, &FOLLOW_151_in_k_as8873); 
            if  (HASEXCEPTION())
            {
                goto rulek_asEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_asEx; /* Prevent compiler warnings */
    rulek_asEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(181, k_as_StartIndex); }

    return retval;
}
/* $ANTLR end k_as */

/** 
 * $ANTLR start k_authid
 * OraclePLSQL.g:1030:1: k_authid : r= 'AUTHID' ;
 */
static OraclePLSQLParser_k_authid_return
k_authid(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_authid_return retval;
    ANTLR3_UINT32 k_authid_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_authid_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(182)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1030:10: (r= 'AUTHID' )
        // OraclePLSQL.g:1030:18: r= 'AUTHID'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(152, &FOLLOW_152_in_k_authid8891); 
            if  (HASEXCEPTION())
            {
                goto rulek_authidEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_authidEx; /* Prevent compiler warnings */
    rulek_authidEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(182, k_authid_StartIndex); }

    return retval;
}
/* $ANTLR end k_authid */

/** 
 * $ANTLR start k_between
 * OraclePLSQL.g:1031:1: k_between : r= 'BETWEEN' ;
 */
static OraclePLSQLParser_k_between_return
k_between(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_between_return retval;
    ANTLR3_UINT32 k_between_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_between_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(183)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1031:11: (r= 'BETWEEN' )
        // OraclePLSQL.g:1031:18: r= 'BETWEEN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(153, &FOLLOW_153_in_k_between8908); 
            if  (HASEXCEPTION())
            {
                goto rulek_betweenEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_betweenEx; /* Prevent compiler warnings */
    rulek_betweenEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(183, k_between_StartIndex); }

    return retval;
}
/* $ANTLR end k_between */

/** 
 * $ANTLR start k_body
 * OraclePLSQL.g:1032:1: k_body : r= 'BODY' ;
 */
static OraclePLSQLParser_k_body_return
k_body(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_body_return retval;
    ANTLR3_UINT32 k_body_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_body_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(184)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1032:8: (r= 'BODY' )
        // OraclePLSQL.g:1032:18: r= 'BODY'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(154, &FOLLOW_154_in_k_body8928); 
            if  (HASEXCEPTION())
            {
                goto rulek_bodyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_bodyEx; /* Prevent compiler warnings */
    rulek_bodyEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(184, k_body_StartIndex); }

    return retval;
}
/* $ANTLR end k_body */

/** 
 * $ANTLR start k_bulk
 * OraclePLSQL.g:1033:1: k_bulk : r= 'BULK' ;
 */
static OraclePLSQLParser_k_bulk_return
k_bulk(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_bulk_return retval;
    ANTLR3_UINT32 k_bulk_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_bulk_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(185)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1033:8: (r= 'BULK' )
        // OraclePLSQL.g:1033:18: r= 'BULK'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(155, &FOLLOW_155_in_k_bulk8948); 
            if  (HASEXCEPTION())
            {
                goto rulek_bulkEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_bulkEx; /* Prevent compiler warnings */
    rulek_bulkEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(185, k_bulk_StartIndex); }

    return retval;
}
/* $ANTLR end k_bulk */

/** 
 * $ANTLR start k_by
 * OraclePLSQL.g:1035:1: k_by : r= 'BY' ;
 */
static OraclePLSQLParser_k_by_return
k_by(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_by_return retval;
    ANTLR3_UINT32 k_by_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_by_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(186)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1035:6: (r= 'BY' )
        // OraclePLSQL.g:1035:18: r= 'BY'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(156, &FOLLOW_156_in_k_by8971); 
            if  (HASEXCEPTION())
            {
                goto rulek_byEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_byEx; /* Prevent compiler warnings */
    rulek_byEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(186, k_by_StartIndex); }

    return retval;
}
/* $ANTLR end k_by */

/** 
 * $ANTLR start k_case
 * OraclePLSQL.g:1036:1: k_case : r= 'CASE' ;
 */
static OraclePLSQLParser_k_case_return
k_case(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_case_return retval;
    ANTLR3_UINT32 k_case_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_case_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(187)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1036:8: (r= 'CASE' )
        // OraclePLSQL.g:1036:18: r= 'CASE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(157, &FOLLOW_157_in_k_case8991); 
            if  (HASEXCEPTION())
            {
                goto rulek_caseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_caseEx; /* Prevent compiler warnings */
    rulek_caseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(187, k_case_StartIndex); }

    return retval;
}
/* $ANTLR end k_case */

/** 
 * $ANTLR start k_character
 * OraclePLSQL.g:1037:1: k_character : r= 'CHARACTER' ;
 */
static OraclePLSQLParser_k_character_return
k_character(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_character_return retval;
    ANTLR3_UINT32 k_character_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_character_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(188)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1037:13: (r= 'CHARACTER' )
        // OraclePLSQL.g:1037:18: r= 'CHARACTER'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(158, &FOLLOW_158_in_k_character9006); 
            if  (HASEXCEPTION())
            {
                goto rulek_characterEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_characterEx; /* Prevent compiler warnings */
    rulek_characterEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(188, k_character_StartIndex); }

    return retval;
}
/* $ANTLR end k_character */

/** 
 * $ANTLR start k_create
 * OraclePLSQL.g:1038:1: k_create : r= 'CREATE' ;
 */
static OraclePLSQLParser_k_create_return
k_create(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_create_return retval;
    ANTLR3_UINT32 k_create_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_create_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(189)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1038:10: (r= 'CREATE' )
        // OraclePLSQL.g:1038:18: r= 'CREATE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(159, &FOLLOW_159_in_k_create9024); 
            if  (HASEXCEPTION())
            {
                goto rulek_createEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_createEx; /* Prevent compiler warnings */
    rulek_createEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(189, k_create_StartIndex); }

    return retval;
}
/* $ANTLR end k_create */

/** 
 * $ANTLR start k_collect
 * OraclePLSQL.g:1039:1: k_collect : r= 'COLLECT' ;
 */
static OraclePLSQLParser_k_collect_return
k_collect(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_collect_return retval;
    ANTLR3_UINT32 k_collect_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_collect_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(190)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1039:11: (r= 'COLLECT' )
        // OraclePLSQL.g:1039:18: r= 'COLLECT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(160, &FOLLOW_160_in_k_collect9041); 
            if  (HASEXCEPTION())
            {
                goto rulek_collectEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_collectEx; /* Prevent compiler warnings */
    rulek_collectEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(190, k_collect_StartIndex); }

    return retval;
}
/* $ANTLR end k_collect */

/** 
 * $ANTLR start k_commit
 * OraclePLSQL.g:1040:1: k_commit : r= 'COMMIT' ;
 */
static OraclePLSQLParser_k_commit_return
k_commit(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_commit_return retval;
    ANTLR3_UINT32 k_commit_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_commit_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(191)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1040:10: (r= 'COMMIT' )
        // OraclePLSQL.g:1040:18: r= 'COMMIT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(161, &FOLLOW_161_in_k_commit9059); 
            if  (HASEXCEPTION())
            {
                goto rulek_commitEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_commitEx; /* Prevent compiler warnings */
    rulek_commitEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(191, k_commit_StartIndex); }

    return retval;
}
/* $ANTLR end k_commit */

/** 
 * $ANTLR start k_current_user
 * OraclePLSQL.g:1041:1: k_current_user : r= 'CURRENT_USER' ;
 */
static OraclePLSQLParser_k_current_user_return
k_current_user(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_current_user_return retval;
    ANTLR3_UINT32 k_current_user_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_current_user_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(192)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1041:16: (r= 'CURRENT_USER' )
        // OraclePLSQL.g:1041:18: r= 'CURRENT_USER'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(162, &FOLLOW_162_in_k_current_user9071); 
            if  (HASEXCEPTION())
            {
                goto rulek_current_userEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_current_userEx; /* Prevent compiler warnings */
    rulek_current_userEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(192, k_current_user_StartIndex); }

    return retval;
}
/* $ANTLR end k_current_user */

/** 
 * $ANTLR start k_date
 * OraclePLSQL.g:1042:1: k_date : r= 'DATE' ;
 */
static OraclePLSQLParser_k_date_return
k_date(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_date_return retval;
    ANTLR3_UINT32 k_date_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_date_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(193)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1042:8: (r= 'DATE' )
        // OraclePLSQL.g:1042:18: r= 'DATE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(163, &FOLLOW_163_in_k_date9091); 
            if  (HASEXCEPTION())
            {
                goto rulek_dateEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_dateEx; /* Prevent compiler warnings */
    rulek_dateEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(193, k_date_StartIndex); }

    return retval;
}
/* $ANTLR end k_date */

/** 
 * $ANTLR start k_default
 * OraclePLSQL.g:1043:1: k_default : r= 'DEFAULT' ;
 */
static OraclePLSQLParser_k_default_return
k_default(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_default_return retval;
    ANTLR3_UINT32 k_default_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_default_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(194)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1043:11: (r= 'DEFAULT' )
        // OraclePLSQL.g:1043:18: r= 'DEFAULT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(164, &FOLLOW_164_in_k_default9108); 
            if  (HASEXCEPTION())
            {
                goto rulek_defaultEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_defaultEx; /* Prevent compiler warnings */
    rulek_defaultEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(194, k_default_StartIndex); }

    return retval;
}
/* $ANTLR end k_default */

/** 
 * $ANTLR start k_definer
 * OraclePLSQL.g:1044:1: k_definer : r= 'DEFINER' ;
 */
static OraclePLSQLParser_k_definer_return
k_definer(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_definer_return retval;
    ANTLR3_UINT32 k_definer_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_definer_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(195)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1044:11: (r= 'DEFINER' )
        // OraclePLSQL.g:1044:18: r= 'DEFINER'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(165, &FOLLOW_165_in_k_definer9125); 
            if  (HASEXCEPTION())
            {
                goto rulek_definerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_definerEx; /* Prevent compiler warnings */
    rulek_definerEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(195, k_definer_StartIndex); }

    return retval;
}
/* $ANTLR end k_definer */

/** 
 * $ANTLR start k_delete
 * OraclePLSQL.g:1045:1: k_delete : r= 'DELETE' ;
 */
static OraclePLSQLParser_k_delete_return
k_delete(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_delete_return retval;
    ANTLR3_UINT32 k_delete_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_delete_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(196)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1045:10: (r= 'DELETE' )
        // OraclePLSQL.g:1045:17: r= 'DELETE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(133, &FOLLOW_133_in_k_delete9142); 
            if  (HASEXCEPTION())
            {
                goto rulek_deleteEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_deleteEx; /* Prevent compiler warnings */
    rulek_deleteEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(196, k_delete_StartIndex); }

    return retval;
}
/* $ANTLR end k_delete */

/** 
 * $ANTLR start k_else
 * OraclePLSQL.g:1046:1: k_else : r= 'ELSE' ;
 */
static OraclePLSQLParser_k_else_return
k_else(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_else_return retval;
    ANTLR3_UINT32 k_else_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_else_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(197)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1046:8: (r= 'ELSE' )
        // OraclePLSQL.g:1046:18: r= 'ELSE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(166, &FOLLOW_166_in_k_else9162); 
            if  (HASEXCEPTION())
            {
                goto rulek_elseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_elseEx; /* Prevent compiler warnings */
    rulek_elseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(197, k_else_StartIndex); }

    return retval;
}
/* $ANTLR end k_else */

/** 
 * $ANTLR start k_elsif
 * OraclePLSQL.g:1047:1: k_elsif : r= 'ELSIF' ;
 */
static OraclePLSQLParser_k_elsif_return
k_elsif(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_elsif_return retval;
    ANTLR3_UINT32 k_elsif_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_elsif_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(198)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1047:9: (r= 'ELSIF' )
        // OraclePLSQL.g:1047:18: r= 'ELSIF'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(167, &FOLLOW_167_in_k_elsif9181); 
            if  (HASEXCEPTION())
            {
                goto rulek_elsifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_elsifEx; /* Prevent compiler warnings */
    rulek_elsifEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(198, k_elsif_StartIndex); }

    return retval;
}
/* $ANTLR end k_elsif */

/** 
 * $ANTLR start k_external
 * OraclePLSQL.g:1048:1: k_external : r= 'EXTERNAL' ;
 */
static OraclePLSQLParser_k_external_return
k_external(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_external_return retval;
    ANTLR3_UINT32 k_external_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_external_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(199)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1048:12: (r= 'EXTERNAL' )
        // OraclePLSQL.g:1048:18: r= 'EXTERNAL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(168, &FOLLOW_168_in_k_external9197); 
            if  (HASEXCEPTION())
            {
                goto rulek_externalEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_externalEx; /* Prevent compiler warnings */
    rulek_externalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(199, k_external_StartIndex); }

    return retval;
}
/* $ANTLR end k_external */

/** 
 * $ANTLR start k_false
 * OraclePLSQL.g:1049:1: k_false : r= 'FALSE' ;
 */
static OraclePLSQLParser_k_false_return
k_false(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_false_return retval;
    ANTLR3_UINT32 k_false_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_false_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(200)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1049:9: (r= 'FALSE' )
        // OraclePLSQL.g:1049:18: r= 'FALSE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(169, &FOLLOW_169_in_k_false9216); 
            if  (HASEXCEPTION())
            {
                goto rulek_falseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_falseEx; /* Prevent compiler warnings */
    rulek_falseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(200, k_false_StartIndex); }

    return retval;
}
/* $ANTLR end k_false */

/** 
 * $ANTLR start k_fetch
 * OraclePLSQL.g:1050:1: k_fetch : r= 'FETCH' ;
 */
static OraclePLSQLParser_k_fetch_return
k_fetch(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_fetch_return retval;
    ANTLR3_UINT32 k_fetch_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_fetch_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(201)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1050:9: (r= 'FETCH' )
        // OraclePLSQL.g:1050:18: r= 'FETCH'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(170, &FOLLOW_170_in_k_fetch9235); 
            if  (HASEXCEPTION())
            {
                goto rulek_fetchEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_fetchEx; /* Prevent compiler warnings */
    rulek_fetchEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(201, k_fetch_StartIndex); }

    return retval;
}
/* $ANTLR end k_fetch */

/** 
 * $ANTLR start k_for
 * OraclePLSQL.g:1051:1: k_for : r= 'FOR' ;
 */
static OraclePLSQLParser_k_for_return
k_for(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_for_return retval;
    ANTLR3_UINT32 k_for_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_for_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(202)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1051:7: (r= 'FOR' )
        // OraclePLSQL.g:1051:18: r= 'FOR'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(171, &FOLLOW_171_in_k_for9256); 
            if  (HASEXCEPTION())
            {
                goto rulek_forEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_forEx; /* Prevent compiler warnings */
    rulek_forEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(202, k_for_StartIndex); }

    return retval;
}
/* $ANTLR end k_for */

/** 
 * $ANTLR start k_forall
 * OraclePLSQL.g:1052:1: k_forall : r= 'FORALL' ;
 */
static OraclePLSQLParser_k_forall_return
k_forall(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_forall_return retval;
    ANTLR3_UINT32 k_forall_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_forall_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(203)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1052:10: (r= 'FORALL' )
        // OraclePLSQL.g:1052:18: r= 'FORALL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(172, &FOLLOW_172_in_k_forall9274); 
            if  (HASEXCEPTION())
            {
                goto rulek_forallEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_forallEx; /* Prevent compiler warnings */
    rulek_forallEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(203, k_forall_StartIndex); }

    return retval;
}
/* $ANTLR end k_forall */

/** 
 * $ANTLR start k_goto
 * OraclePLSQL.g:1053:1: k_goto : r= 'GOTO' ;
 */
static OraclePLSQLParser_k_goto_return
k_goto(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_goto_return retval;
    ANTLR3_UINT32 k_goto_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_goto_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(204)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1053:8: (r= 'GOTO' )
        // OraclePLSQL.g:1053:18: r= 'GOTO'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(173, &FOLLOW_173_in_k_goto9294); 
            if  (HASEXCEPTION())
            {
                goto rulek_gotoEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_gotoEx; /* Prevent compiler warnings */
    rulek_gotoEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(204, k_goto_StartIndex); }

    return retval;
}
/* $ANTLR end k_goto */

/** 
 * $ANTLR start k_if
 * OraclePLSQL.g:1054:1: k_if : r= 'IF' ;
 */
static OraclePLSQLParser_k_if_return
k_if(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_if_return retval;
    ANTLR3_UINT32 k_if_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_if_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(205)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1054:6: (r= 'IF' )
        // OraclePLSQL.g:1054:18: r= 'IF'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(174, &FOLLOW_174_in_k_if9316); 
            if  (HASEXCEPTION())
            {
                goto rulek_ifEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_ifEx; /* Prevent compiler warnings */
    rulek_ifEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(205, k_if_StartIndex); }

    return retval;
}
/* $ANTLR end k_if */

/** 
 * $ANTLR start k_index
 * OraclePLSQL.g:1056:1: k_index : r= 'INDEX' ;
 */
static OraclePLSQLParser_k_index_return
k_index(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_index_return retval;
    ANTLR3_UINT32 k_index_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_index_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(206)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1056:9: (r= 'INDEX' )
        // OraclePLSQL.g:1056:18: r= 'INDEX'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(175, &FOLLOW_175_in_k_index9354); 
            if  (HASEXCEPTION())
            {
                goto rulek_indexEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_indexEx; /* Prevent compiler warnings */
    rulek_indexEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(206, k_index_StartIndex); }

    return retval;
}
/* $ANTLR end k_index */

/** 
 * $ANTLR start k_insert
 * OraclePLSQL.g:1057:1: k_insert : r= 'INSERT' ;
 */
static OraclePLSQLParser_k_insert_return
k_insert(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_insert_return retval;
    ANTLR3_UINT32 k_insert_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_insert_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(207)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1057:10: (r= 'INSERT' )
        // OraclePLSQL.g:1057:18: r= 'INSERT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(176, &FOLLOW_176_in_k_insert9372); 
            if  (HASEXCEPTION())
            {
                goto rulek_insertEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_insertEx; /* Prevent compiler warnings */
    rulek_insertEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(207, k_insert_StartIndex); }

    return retval;
}
/* $ANTLR end k_insert */

/** 
 * $ANTLR start k_into
 * OraclePLSQL.g:1058:1: k_into : r= 'INTO' ;
 */
static OraclePLSQLParser_k_into_return
k_into(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_into_return retval;
    ANTLR3_UINT32 k_into_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_into_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(208)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1058:8: (r= 'INTO' )
        // OraclePLSQL.g:1058:18: r= 'INTO'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(177, &FOLLOW_177_in_k_into9392); 
            if  (HASEXCEPTION())
            {
                goto rulek_intoEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_intoEx; /* Prevent compiler warnings */
    rulek_intoEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(208, k_into_StartIndex); }

    return retval;
}
/* $ANTLR end k_into */

/** 
 * $ANTLR start k_is
 * OraclePLSQL.g:1059:1: k_is : r= 'IS' ;
 */
static OraclePLSQLParser_k_is_return
k_is(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_is_return retval;
    ANTLR3_UINT32 k_is_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_is_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(209)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1059:7: (r= 'IS' )
        // OraclePLSQL.g:1059:18: r= 'IS'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(178, &FOLLOW_178_in_k_is9414); 
            if  (HASEXCEPTION())
            {
                goto rulek_isEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_isEx; /* Prevent compiler warnings */
    rulek_isEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(209, k_is_StartIndex); }

    return retval;
}
/* $ANTLR end k_is */

/** 
 * $ANTLR start k_language
 * OraclePLSQL.g:1060:1: k_language : r= 'LANGUAGE' ;
 */
static OraclePLSQLParser_k_language_return
k_language(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_language_return retval;
    ANTLR3_UINT32 k_language_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_language_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(210)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1060:12: (r= 'LANGUAGE' )
        // OraclePLSQL.g:1060:18: r= 'LANGUAGE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(132, &FOLLOW_132_in_k_language9430); 
            if  (HASEXCEPTION())
            {
                goto rulek_languageEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_languageEx; /* Prevent compiler warnings */
    rulek_languageEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(210, k_language_StartIndex); }

    return retval;
}
/* $ANTLR end k_language */

/** 
 * $ANTLR start k_like
 * OraclePLSQL.g:1061:1: k_like : r= 'LIKE' ;
 */
static OraclePLSQLParser_k_like_return
k_like(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_like_return retval;
    ANTLR3_UINT32 k_like_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_like_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(211)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1061:8: (r= 'LIKE' )
        // OraclePLSQL.g:1061:18: r= 'LIKE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(179, &FOLLOW_179_in_k_like9450); 
            if  (HASEXCEPTION())
            {
                goto rulek_likeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_likeEx; /* Prevent compiler warnings */
    rulek_likeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(211, k_like_StartIndex); }

    return retval;
}
/* $ANTLR end k_like */

/** 
 * $ANTLR start k_limit
 * OraclePLSQL.g:1062:1: k_limit : r= 'LIMIT' ;
 */
static OraclePLSQLParser_k_limit_return
k_limit(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_limit_return retval;
    ANTLR3_UINT32 k_limit_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_limit_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(212)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1062:9: (r= 'LIMIT' )
        // OraclePLSQL.g:1062:18: r= 'LIMIT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(180, &FOLLOW_180_in_k_limit9469); 
            if  (HASEXCEPTION())
            {
                goto rulek_limitEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_limitEx; /* Prevent compiler warnings */
    rulek_limitEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(212, k_limit_StartIndex); }

    return retval;
}
/* $ANTLR end k_limit */

/** 
 * $ANTLR start k_lock
 * OraclePLSQL.g:1063:1: k_lock : r= 'LOCK' ;
 */
static OraclePLSQLParser_k_lock_return
k_lock(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_lock_return retval;
    ANTLR3_UINT32 k_lock_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_lock_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(213)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1063:8: (r= 'LOCK' )
        // OraclePLSQL.g:1063:18: r= 'LOCK'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(181, &FOLLOW_181_in_k_lock9489); 
            if  (HASEXCEPTION())
            {
                goto rulek_lockEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_lockEx; /* Prevent compiler warnings */
    rulek_lockEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(213, k_lock_StartIndex); }

    return retval;
}
/* $ANTLR end k_lock */

/** 
 * $ANTLR start k_nchar
 * OraclePLSQL.g:1064:1: k_nchar : r= 'NCHAR' ;
 */
static OraclePLSQLParser_k_nchar_return
k_nchar(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_nchar_return retval;
    ANTLR3_UINT32 k_nchar_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_nchar_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(214)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1064:9: (r= 'NCHAR' )
        // OraclePLSQL.g:1064:18: r= 'NCHAR'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(182, &FOLLOW_182_in_k_nchar9508); 
            if  (HASEXCEPTION())
            {
                goto rulek_ncharEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_ncharEx; /* Prevent compiler warnings */
    rulek_ncharEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(214, k_nchar_StartIndex); }

    return retval;
}
/* $ANTLR end k_nchar */

/** 
 * $ANTLR start k_not
 * OraclePLSQL.g:1065:1: k_not : r= 'NOT' ;
 */
static OraclePLSQLParser_k_not_return
k_not(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_not_return retval;
    ANTLR3_UINT32 k_not_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_not_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(215)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1065:7: (r= 'NOT' )
        // OraclePLSQL.g:1065:18: r= 'NOT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(183, &FOLLOW_183_in_k_not9529); 
            if  (HASEXCEPTION())
            {
                goto rulek_notEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_notEx; /* Prevent compiler warnings */
    rulek_notEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(215, k_not_StartIndex); }

    return retval;
}
/* $ANTLR end k_not */

/** 
 * $ANTLR start k_null
 * OraclePLSQL.g:1067:1: k_null : r= 'NULL' ;
 */
static OraclePLSQLParser_k_null_return
k_null(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_null_return retval;
    ANTLR3_UINT32 k_null_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_null_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(216)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1067:8: (r= 'NULL' )
        // OraclePLSQL.g:1067:18: r= 'NULL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(184, &FOLLOW_184_in_k_null9550); 
            if  (HASEXCEPTION())
            {
                goto rulek_nullEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_nullEx; /* Prevent compiler warnings */
    rulek_nullEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(216, k_null_StartIndex); }

    return retval;
}
/* $ANTLR end k_null */

/** 
 * $ANTLR start k_open
 * OraclePLSQL.g:1068:1: k_open : r= 'OPEN' ;
 */
static OraclePLSQLParser_k_open_return
k_open(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_open_return retval;
    ANTLR3_UINT32 k_open_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_open_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(217)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1068:8: (r= 'OPEN' )
        // OraclePLSQL.g:1068:18: r= 'OPEN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(135, &FOLLOW_135_in_k_open9570); 
            if  (HASEXCEPTION())
            {
                goto rulek_openEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_openEx; /* Prevent compiler warnings */
    rulek_openEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(217, k_open_StartIndex); }

    return retval;
}
/* $ANTLR end k_open */

/** 
 * $ANTLR start k_or
 * OraclePLSQL.g:1069:1: k_or : r= 'OR' ;
 */
static OraclePLSQLParser_k_or_return
k_or(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_or_return retval;
    ANTLR3_UINT32 k_or_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_or_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(218)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1069:6: (r= 'OR' )
        // OraclePLSQL.g:1069:18: r= 'OR'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(185, &FOLLOW_185_in_k_or9592); 
            if  (HASEXCEPTION())
            {
                goto rulek_orEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_orEx; /* Prevent compiler warnings */
    rulek_orEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(218, k_or_StartIndex); }

    return retval;
}
/* $ANTLR end k_or */

/** 
 * $ANTLR start k_package
 * OraclePLSQL.g:1070:1: k_package : r= 'PACKAGE' ;
 */
static OraclePLSQLParser_k_package_return
k_package(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_package_return retval;
    ANTLR3_UINT32 k_package_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_package_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(219)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1070:11: (r= 'PACKAGE' )
        // OraclePLSQL.g:1070:18: r= 'PACKAGE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(186, &FOLLOW_186_in_k_package9609); 
            if  (HASEXCEPTION())
            {
                goto rulek_packageEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_packageEx; /* Prevent compiler warnings */
    rulek_packageEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(219, k_package_StartIndex); }

    return retval;
}
/* $ANTLR end k_package */

/** 
 * $ANTLR start k_raise
 * OraclePLSQL.g:1071:1: k_raise : r= 'RAISE' ;
 */
static OraclePLSQLParser_k_raise_return
k_raise(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_raise_return retval;
    ANTLR3_UINT32 k_raise_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_raise_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(220)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1071:9: (r= 'RAISE' )
        // OraclePLSQL.g:1071:18: r= 'RAISE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(134, &FOLLOW_134_in_k_raise9628); 
            if  (HASEXCEPTION())
            {
                goto rulek_raiseEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_raiseEx; /* Prevent compiler warnings */
    rulek_raiseEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(220, k_raise_StartIndex); }

    return retval;
}
/* $ANTLR end k_raise */

/** 
 * $ANTLR start k_rollback
 * OraclePLSQL.g:1072:1: k_rollback : r= 'ROLLBACK' ;
 */
static OraclePLSQLParser_k_rollback_return
k_rollback(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_rollback_return retval;
    ANTLR3_UINT32 k_rollback_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_rollback_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(221)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1072:12: (r= 'ROLLBACK' )
        // OraclePLSQL.g:1072:18: r= 'ROLLBACK'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(187, &FOLLOW_187_in_k_rollback9644); 
            if  (HASEXCEPTION())
            {
                goto rulek_rollbackEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_rollbackEx; /* Prevent compiler warnings */
    rulek_rollbackEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(221, k_rollback_StartIndex); }

    return retval;
}
/* $ANTLR end k_rollback */

/** 
 * $ANTLR start k_savepoint
 * OraclePLSQL.g:1073:1: k_savepoint : r= 'SAVEPOINT' ;
 */
static OraclePLSQLParser_k_savepoint_return
k_savepoint(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_savepoint_return retval;
    ANTLR3_UINT32 k_savepoint_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_savepoint_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(222)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1073:13: (r= 'SAVEPOINT' )
        // OraclePLSQL.g:1073:18: r= 'SAVEPOINT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(188, &FOLLOW_188_in_k_savepoint9659); 
            if  (HASEXCEPTION())
            {
                goto rulek_savepointEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_savepointEx; /* Prevent compiler warnings */
    rulek_savepointEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(222, k_savepoint_StartIndex); }

    return retval;
}
/* $ANTLR end k_savepoint */

/** 
 * $ANTLR start k_select
 * OraclePLSQL.g:1074:1: k_select : r= 'SELECT' ;
 */
static OraclePLSQLParser_k_select_return
k_select(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_select_return retval;
    ANTLR3_UINT32 k_select_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_select_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(223)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1074:10: (r= 'SELECT' )
        // OraclePLSQL.g:1074:18: r= 'SELECT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(189, &FOLLOW_189_in_k_select9677); 
            if  (HASEXCEPTION())
            {
                goto rulek_selectEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_selectEx; /* Prevent compiler warnings */
    rulek_selectEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(223, k_select_StartIndex); }

    return retval;
}
/* $ANTLR end k_select */

/** 
 * $ANTLR start k_sql
 * OraclePLSQL.g:1076:1: k_sql : r= 'SQL' ;
 */
static OraclePLSQLParser_k_sql_return
k_sql(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_sql_return retval;
    ANTLR3_UINT32 k_sql_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_sql_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(224)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1076:7: (r= 'SQL' )
        // OraclePLSQL.g:1076:18: r= 'SQL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(190, &FOLLOW_190_in_k_sql9699); 
            if  (HASEXCEPTION())
            {
                goto rulek_sqlEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_sqlEx; /* Prevent compiler warnings */
    rulek_sqlEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(224, k_sql_StartIndex); }

    return retval;
}
/* $ANTLR end k_sql */

/** 
 * $ANTLR start k_table
 * OraclePLSQL.g:1077:1: k_table : r= 'TABLE' ;
 */
static OraclePLSQLParser_k_table_return
k_table(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_table_return retval;
    ANTLR3_UINT32 k_table_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_table_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(225)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1077:9: (r= 'TABLE' )
        // OraclePLSQL.g:1077:18: r= 'TABLE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(191, &FOLLOW_191_in_k_table9718); 
            if  (HASEXCEPTION())
            {
                goto rulek_tableEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_tableEx; /* Prevent compiler warnings */
    rulek_tableEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(225, k_table_StartIndex); }

    return retval;
}
/* $ANTLR end k_table */

/** 
 * $ANTLR start k_timestamp
 * OraclePLSQL.g:1079:1: k_timestamp : r= 'TIMESTAMP' ;
 */
static OraclePLSQLParser_k_timestamp_return
k_timestamp(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_timestamp_return retval;
    ANTLR3_UINT32 k_timestamp_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_timestamp_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(226)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1079:13: (r= 'TIMESTAMP' )
        // OraclePLSQL.g:1079:18: r= 'TIMESTAMP'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(128, &FOLLOW_128_in_k_timestamp9734); 
            if  (HASEXCEPTION())
            {
                goto rulek_timestampEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_timestampEx; /* Prevent compiler warnings */
    rulek_timestampEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(226, k_timestamp_StartIndex); }

    return retval;
}
/* $ANTLR end k_timestamp */

/** 
 * $ANTLR start k_transaction
 * OraclePLSQL.g:1080:1: k_transaction : r= 'TRANSACTION' ;
 */
static OraclePLSQLParser_k_transaction_return
k_transaction(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_transaction_return retval;
    ANTLR3_UINT32 k_transaction_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_transaction_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(227)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1080:15: (r= 'TRANSACTION' )
        // OraclePLSQL.g:1080:18: r= 'TRANSACTION'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(192, &FOLLOW_192_in_k_transaction9747); 
            if  (HASEXCEPTION())
            {
                goto rulek_transactionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_transactionEx; /* Prevent compiler warnings */
    rulek_transactionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(227, k_transaction_StartIndex); }

    return retval;
}
/* $ANTLR end k_transaction */

/** 
 * $ANTLR start k_trigger
 * OraclePLSQL.g:1081:1: k_trigger : r= 'TRIGGER' ;
 */
static OraclePLSQLParser_k_trigger_return
k_trigger(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_trigger_return retval;
    ANTLR3_UINT32 k_trigger_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_trigger_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(228)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1081:11: (r= 'TRIGGER' )
        // OraclePLSQL.g:1081:18: r= 'TRIGGER'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(193, &FOLLOW_193_in_k_trigger9764); 
            if  (HASEXCEPTION())
            {
                goto rulek_triggerEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_triggerEx; /* Prevent compiler warnings */
    rulek_triggerEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(228, k_trigger_StartIndex); }

    return retval;
}
/* $ANTLR end k_trigger */

/** 
 * $ANTLR start k_true
 * OraclePLSQL.g:1082:1: k_true : r= 'TRUE' ;
 */
static OraclePLSQLParser_k_true_return
k_true(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_true_return retval;
    ANTLR3_UINT32 k_true_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_true_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(229)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1082:8: (r= 'TRUE' )
        // OraclePLSQL.g:1082:18: r= 'TRUE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(194, &FOLLOW_194_in_k_true9784); 
            if  (HASEXCEPTION())
            {
                goto rulek_trueEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_trueEx; /* Prevent compiler warnings */
    rulek_trueEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(229, k_true_StartIndex); }

    return retval;
}
/* $ANTLR end k_true */

/** 
 * $ANTLR start k_then
 * OraclePLSQL.g:1083:1: k_then : r= 'THEN' ;
 */
static OraclePLSQLParser_k_then_return
k_then(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_then_return retval;
    ANTLR3_UINT32 k_then_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_then_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(230)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1083:8: (r= 'THEN' )
        // OraclePLSQL.g:1083:18: r= 'THEN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(195, &FOLLOW_195_in_k_then9804); 
            if  (HASEXCEPTION())
            {
                goto rulek_thenEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_thenEx; /* Prevent compiler warnings */
    rulek_thenEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(230, k_then_StartIndex); }

    return retval;
}
/* $ANTLR end k_then */

/** 
 * $ANTLR start k_type
 * OraclePLSQL.g:1084:1: k_type : r= 'TYPE' ;
 */
static OraclePLSQLParser_k_type_return
k_type(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_type_return retval;
    ANTLR3_UINT32 k_type_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_type_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(231)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1084:8: (r= 'TYPE' )
        // OraclePLSQL.g:1084:18: r= 'TYPE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(196, &FOLLOW_196_in_k_type9824); 
            if  (HASEXCEPTION())
            {
                goto rulek_typeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_typeEx; /* Prevent compiler warnings */
    rulek_typeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(231, k_type_StartIndex); }

    return retval;
}
/* $ANTLR end k_type */

/** 
 * $ANTLR start k_update
 * OraclePLSQL.g:1085:1: k_update : r= 'UPDATE' ;
 */
static OraclePLSQLParser_k_update_return
k_update(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_update_return retval;
    ANTLR3_UINT32 k_update_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_update_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(232)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1085:10: (r= 'UPDATE' )
        // OraclePLSQL.g:1085:18: r= 'UPDATE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(197, &FOLLOW_197_in_k_update9843); 
            if  (HASEXCEPTION())
            {
                goto rulek_updateEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_updateEx; /* Prevent compiler warnings */
    rulek_updateEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(232, k_update_StartIndex); }

    return retval;
}
/* $ANTLR end k_update */

/** 
 * $ANTLR start k_while
 * OraclePLSQL.g:1086:1: k_while : r= 'WHILE' ;
 */
static OraclePLSQLParser_k_while_return
k_while(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_while_return retval;
    ANTLR3_UINT32 k_while_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_while_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(233)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1086:9: (r= 'WHILE' )
        // OraclePLSQL.g:1086:18: r= 'WHILE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(198, &FOLLOW_198_in_k_while9862); 
            if  (HASEXCEPTION())
            {
                goto rulek_whileEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_whileEx; /* Prevent compiler warnings */
    rulek_whileEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(233, k_while_StartIndex); }

    return retval;
}
/* $ANTLR end k_while */

/** 
 * $ANTLR start k_inserting
 * OraclePLSQL.g:1087:1: k_inserting : r= 'INSERTING' ;
 */
static OraclePLSQLParser_k_inserting_return
k_inserting(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_inserting_return retval;
    ANTLR3_UINT32 k_inserting_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_inserting_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(234)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1087:13: (r= 'INSERTING' )
        // OraclePLSQL.g:1087:18: r= 'INSERTING'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(199, &FOLLOW_199_in_k_inserting9877); 
            if  (HASEXCEPTION())
            {
                goto rulek_insertingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_insertingEx; /* Prevent compiler warnings */
    rulek_insertingEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(234, k_inserting_StartIndex); }

    return retval;
}
/* $ANTLR end k_inserting */

/** 
 * $ANTLR start k_updating
 * OraclePLSQL.g:1088:1: k_updating : r= 'UPDATING' ;
 */
static OraclePLSQLParser_k_updating_return
k_updating(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_updating_return retval;
    ANTLR3_UINT32 k_updating_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_updating_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(235)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1088:12: (r= 'UPDATING' )
        // OraclePLSQL.g:1088:18: r= 'UPDATING'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(200, &FOLLOW_200_in_k_updating9893); 
            if  (HASEXCEPTION())
            {
                goto rulek_updatingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_updatingEx; /* Prevent compiler warnings */
    rulek_updatingEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(235, k_updating_StartIndex); }

    return retval;
}
/* $ANTLR end k_updating */

/** 
 * $ANTLR start k_deleting
 * OraclePLSQL.g:1089:1: k_deleting : r= 'DELETING' ;
 */
static OraclePLSQLParser_k_deleting_return
k_deleting(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_deleting_return retval;
    ANTLR3_UINT32 k_deleting_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_deleting_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(236)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1089:12: (r= 'DELETING' )
        // OraclePLSQL.g:1089:18: r= 'DELETING'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(201, &FOLLOW_201_in_k_deleting9909); 
            if  (HASEXCEPTION())
            {
                goto rulek_deletingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_deletingEx; /* Prevent compiler warnings */
    rulek_deletingEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(236, k_deleting_StartIndex); }

    return retval;
}
/* $ANTLR end k_deleting */

/** 
 * $ANTLR start k_exists
 * OraclePLSQL.g:1091:1: k_exists : r= 'EXISTS' ;
 */
static OraclePLSQLParser_k_exists_return
k_exists(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_exists_return retval;
    ANTLR3_UINT32 k_exists_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_exists_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(237)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1091:10: (r= 'EXISTS' )
        // OraclePLSQL.g:1091:18: r= 'EXISTS'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(202, &FOLLOW_202_in_k_exists9928); 
            if  (HASEXCEPTION())
            {
                goto rulek_existsEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_existsEx; /* Prevent compiler warnings */
    rulek_existsEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(237, k_exists_StartIndex); }

    return retval;
}
/* $ANTLR end k_exists */

/** 
 * $ANTLR start k_begin
 * OraclePLSQL.g:1092:1: k_begin : r= 'BEGIN' ;
 */
static OraclePLSQLParser_k_begin_return
k_begin(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_begin_return retval;
    ANTLR3_UINT32 k_begin_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_begin_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(238)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1092:9: (r= 'BEGIN' )
        // OraclePLSQL.g:1092:18: r= 'BEGIN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(139, &FOLLOW_139_in_k_begin9947); 
            if  (HASEXCEPTION())
            {
                goto rulek_beginEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_beginEx; /* Prevent compiler warnings */
    rulek_beginEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(238, k_begin_StartIndex); }

    return retval;
}
/* $ANTLR end k_begin */

/** 
 * $ANTLR start k_call
 * OraclePLSQL.g:1093:1: k_call : r= 'CALL' ;
 */
static OraclePLSQLParser_k_call_return
k_call(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_call_return retval;
    ANTLR3_UINT32 k_call_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_call_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(239)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1093:8: (r= 'CALL' )
        // OraclePLSQL.g:1093:18: r= 'CALL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(136, &FOLLOW_136_in_k_call9967); 
            if  (HASEXCEPTION())
            {
                goto rulek_callEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_callEx; /* Prevent compiler warnings */
    rulek_callEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(239, k_call_StartIndex); }

    return retval;
}
/* $ANTLR end k_call */

/** 
 * $ANTLR start k_cast
 * OraclePLSQL.g:1094:1: k_cast : r= 'CAST' ;
 */
static OraclePLSQLParser_k_cast_return
k_cast(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_cast_return retval;
    ANTLR3_UINT32 k_cast_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_cast_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(240)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1094:8: (r= 'CAST' )
        // OraclePLSQL.g:1094:18: r= 'CAST'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(203, &FOLLOW_203_in_k_cast9987); 
            if  (HASEXCEPTION())
            {
                goto rulek_castEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_castEx; /* Prevent compiler warnings */
    rulek_castEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(240, k_cast_StartIndex); }

    return retval;
}
/* $ANTLR end k_cast */

/** 
 * $ANTLR start k_clob
 * OraclePLSQL.g:1095:1: k_clob : r= 'CLOB' ;
 */
static OraclePLSQLParser_k_clob_return
k_clob(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_clob_return retval;
    ANTLR3_UINT32 k_clob_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_clob_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(241)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1095:8: (r= 'CLOB' )
        // OraclePLSQL.g:1095:18: r= 'CLOB'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(204, &FOLLOW_204_in_k_clob10007); 
            if  (HASEXCEPTION())
            {
                goto rulek_clobEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_clobEx; /* Prevent compiler warnings */
    rulek_clobEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(241, k_clob_StartIndex); }

    return retval;
}
/* $ANTLR end k_clob */

/** 
 * $ANTLR start k_close
 * OraclePLSQL.g:1096:1: k_close : r= 'CLOSE' ;
 */
static OraclePLSQLParser_k_close_return
k_close(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_close_return retval;
    ANTLR3_UINT32 k_close_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_close_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(242)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1096:9: (r= 'CLOSE' )
        // OraclePLSQL.g:1096:18: r= 'CLOSE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(205, &FOLLOW_205_in_k_close10026); 
            if  (HASEXCEPTION())
            {
                goto rulek_closeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_closeEx; /* Prevent compiler warnings */
    rulek_closeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(242, k_close_StartIndex); }

    return retval;
}
/* $ANTLR end k_close */

/** 
 * $ANTLR start k_constant
 * OraclePLSQL.g:1097:1: k_constant : r= 'CONSTANT' ;
 */
static OraclePLSQLParser_k_constant_return
k_constant(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_constant_return retval;
    ANTLR3_UINT32 k_constant_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_constant_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(243)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1097:12: (r= 'CONSTANT' )
        // OraclePLSQL.g:1097:18: r= 'CONSTANT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(206, &FOLLOW_206_in_k_constant10042); 
            if  (HASEXCEPTION())
            {
                goto rulek_constantEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_constantEx; /* Prevent compiler warnings */
    rulek_constantEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(243, k_constant_StartIndex); }

    return retval;
}
/* $ANTLR end k_constant */

/** 
 * $ANTLR start k_continue
 * OraclePLSQL.g:1098:1: k_continue : r= 'CONTINUE' ;
 */
static OraclePLSQLParser_k_continue_return
k_continue(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_continue_return retval;
    ANTLR3_UINT32 k_continue_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_continue_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(244)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1098:12: (r= 'CONTINUE' )
        // OraclePLSQL.g:1098:18: r= 'CONTINUE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(207, &FOLLOW_207_in_k_continue10058); 
            if  (HASEXCEPTION())
            {
                goto rulek_continueEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_continueEx; /* Prevent compiler warnings */
    rulek_continueEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(244, k_continue_StartIndex); }

    return retval;
}
/* $ANTLR end k_continue */

/** 
 * $ANTLR start k_cursor
 * OraclePLSQL.g:1099:1: k_cursor : r= 'CURSOR' ;
 */
static OraclePLSQLParser_k_cursor_return
k_cursor(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_cursor_return retval;
    ANTLR3_UINT32 k_cursor_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_cursor_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(245)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1099:10: (r= 'CURSOR' )
        // OraclePLSQL.g:1099:18: r= 'CURSOR'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(208, &FOLLOW_208_in_k_cursor10076); 
            if  (HASEXCEPTION())
            {
                goto rulek_cursorEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_cursorEx; /* Prevent compiler warnings */
    rulek_cursorEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(245, k_cursor_StartIndex); }

    return retval;
}
/* $ANTLR end k_cursor */

/** 
 * $ANTLR start k_declare
 * OraclePLSQL.g:1101:1: k_declare : r= 'DECLARE' ;
 */
static OraclePLSQLParser_k_declare_return
k_declare(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_declare_return retval;
    ANTLR3_UINT32 k_declare_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_declare_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(246)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1101:11: (r= 'DECLARE' )
        // OraclePLSQL.g:1101:18: r= 'DECLARE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(138, &FOLLOW_138_in_k_declare10094); 
            if  (HASEXCEPTION())
            {
                goto rulek_declareEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_declareEx; /* Prevent compiler warnings */
    rulek_declareEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(246, k_declare_StartIndex); }

    return retval;
}
/* $ANTLR end k_declare */

/** 
 * $ANTLR start k_deterministic
 * OraclePLSQL.g:1102:1: k_deterministic : r= 'DETERMINISTIC' ;
 */
static OraclePLSQLParser_k_deterministic_return
k_deterministic(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_deterministic_return retval;
    ANTLR3_UINT32 k_deterministic_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_deterministic_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(247)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1102:17: (r= 'DETERMINISTIC' )
        // OraclePLSQL.g:1102:19: r= 'DETERMINISTIC'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(209, &FOLLOW_209_in_k_deterministic10106); 
            if  (HASEXCEPTION())
            {
                goto rulek_deterministicEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_deterministicEx; /* Prevent compiler warnings */
    rulek_deterministicEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(247, k_deterministic_StartIndex); }

    return retval;
}
/* $ANTLR end k_deterministic */

/** 
 * $ANTLR start k_end
 * OraclePLSQL.g:1104:1: k_end : r= 'END' ;
 */
static OraclePLSQLParser_k_end_return
k_end(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_end_return retval;
    ANTLR3_UINT32 k_end_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_end_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(248)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1104:7: (r= 'END' )
        // OraclePLSQL.g:1104:18: r= 'END'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(210, &FOLLOW_210_in_k_end10128); 
            if  (HASEXCEPTION())
            {
                goto rulek_endEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_endEx; /* Prevent compiler warnings */
    rulek_endEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(248, k_end_StartIndex); }

    return retval;
}
/* $ANTLR end k_end */

/** 
 * $ANTLR start k_escape
 * OraclePLSQL.g:1105:1: k_escape : r= 'ESCAPE' ;
 */
static OraclePLSQLParser_k_escape_return
k_escape(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_escape_return retval;
    ANTLR3_UINT32 k_escape_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_escape_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(249)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1105:10: (r= 'ESCAPE' )
        // OraclePLSQL.g:1105:18: r= 'ESCAPE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(211, &FOLLOW_211_in_k_escape10146); 
            if  (HASEXCEPTION())
            {
                goto rulek_escapeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_escapeEx; /* Prevent compiler warnings */
    rulek_escapeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(249, k_escape_StartIndex); }

    return retval;
}
/* $ANTLR end k_escape */

/** 
 * $ANTLR start k_exception
 * OraclePLSQL.g:1106:1: k_exception : r= 'EXCEPTION' ;
 */
static OraclePLSQLParser_k_exception_return
k_exception(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_exception_return retval;
    ANTLR3_UINT32 k_exception_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_exception_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(250)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1106:13: (r= 'EXCEPTION' )
        // OraclePLSQL.g:1106:18: r= 'EXCEPTION'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(212, &FOLLOW_212_in_k_exception10161); 
            if  (HASEXCEPTION())
            {
                goto rulek_exceptionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_exceptionEx; /* Prevent compiler warnings */
    rulek_exceptionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(250, k_exception_StartIndex); }

    return retval;
}
/* $ANTLR end k_exception */

/** 
 * $ANTLR start k_execute
 * OraclePLSQL.g:1107:1: k_execute : r= 'EXECUTE' ;
 */
static OraclePLSQLParser_k_execute_return
k_execute(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_execute_return retval;
    ANTLR3_UINT32 k_execute_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_execute_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(251)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1107:11: (r= 'EXECUTE' )
        // OraclePLSQL.g:1107:18: r= 'EXECUTE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(131, &FOLLOW_131_in_k_execute10178); 
            if  (HASEXCEPTION())
            {
                goto rulek_executeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_executeEx; /* Prevent compiler warnings */
    rulek_executeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(251, k_execute_StartIndex); }

    return retval;
}
/* $ANTLR end k_execute */

/** 
 * $ANTLR start k_exit
 * OraclePLSQL.g:1108:1: k_exit : r= 'EXIT' ;
 */
static OraclePLSQLParser_k_exit_return
k_exit(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_exit_return retval;
    ANTLR3_UINT32 k_exit_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_exit_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(252)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1108:8: (r= 'EXIT' )
        // OraclePLSQL.g:1108:18: r= 'EXIT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(213, &FOLLOW_213_in_k_exit10198); 
            if  (HASEXCEPTION())
            {
                goto rulek_exitEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_exitEx; /* Prevent compiler warnings */
    rulek_exitEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(252, k_exit_StartIndex); }

    return retval;
}
/* $ANTLR end k_exit */

/** 
 * $ANTLR start k_function
 * OraclePLSQL.g:1110:1: k_function : r= 'FUNCTION' ;
 */
static OraclePLSQLParser_k_function_return
k_function(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_function_return retval;
    ANTLR3_UINT32 k_function_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_function_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(253)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1110:12: (r= 'FUNCTION' )
        // OraclePLSQL.g:1110:18: r= 'FUNCTION'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(214, &FOLLOW_214_in_k_function10215); 
            if  (HASEXCEPTION())
            {
                goto rulek_functionEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_functionEx; /* Prevent compiler warnings */
    rulek_functionEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(253, k_function_StartIndex); }

    return retval;
}
/* $ANTLR end k_function */

/** 
 * $ANTLR start k_immediate
 * OraclePLSQL.g:1111:1: k_immediate : r= 'IMMEDIATE' ;
 */
static OraclePLSQLParser_k_immediate_return
k_immediate(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_immediate_return retval;
    ANTLR3_UINT32 k_immediate_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_immediate_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(254)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1111:13: (r= 'IMMEDIATE' )
        // OraclePLSQL.g:1111:18: r= 'IMMEDIATE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(215, &FOLLOW_215_in_k_immediate10230); 
            if  (HASEXCEPTION())
            {
                goto rulek_immediateEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_immediateEx; /* Prevent compiler warnings */
    rulek_immediateEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(254, k_immediate_StartIndex); }

    return retval;
}
/* $ANTLR end k_immediate */

/** 
 * $ANTLR start k_interval
 * OraclePLSQL.g:1112:1: k_interval : r= 'INTERVAL' ;
 */
static OraclePLSQLParser_k_interval_return
k_interval(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_interval_return retval;
    ANTLR3_UINT32 k_interval_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_interval_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(255)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1112:12: (r= 'INTERVAL' )
        // OraclePLSQL.g:1112:18: r= 'INTERVAL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(130, &FOLLOW_130_in_k_interval10246); 
            if  (HASEXCEPTION())
            {
                goto rulek_intervalEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_intervalEx; /* Prevent compiler warnings */
    rulek_intervalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(255, k_interval_StartIndex); }

    return retval;
}
/* $ANTLR end k_interval */

/** 
 * $ANTLR start k_loop
 * OraclePLSQL.g:1113:1: k_loop : r= 'LOOP' ;
 */
static OraclePLSQLParser_k_loop_return
k_loop(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_loop_return retval;
    ANTLR3_UINT32 k_loop_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_loop_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(256)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1113:9: (r= 'LOOP' )
        // OraclePLSQL.g:1113:16: r= 'LOOP'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(126, &FOLLOW_126_in_k_loop10264); 
            if  (HASEXCEPTION())
            {
                goto rulek_loopEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_loopEx; /* Prevent compiler warnings */
    rulek_loopEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(256, k_loop_StartIndex); }

    return retval;
}
/* $ANTLR end k_loop */

/** 
 * $ANTLR start k_merge
 * OraclePLSQL.g:1114:1: k_merge : r= 'MERGE' ;
 */
static OraclePLSQLParser_k_merge_return
k_merge(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_merge_return retval;
    ANTLR3_UINT32 k_merge_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_merge_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(257)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1114:9: (r= 'MERGE' )
        // OraclePLSQL.g:1114:18: r= 'MERGE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(216, &FOLLOW_216_in_k_merge10283); 
            if  (HASEXCEPTION())
            {
                goto rulek_mergeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_mergeEx; /* Prevent compiler warnings */
    rulek_mergeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(257, k_merge_StartIndex); }

    return retval;
}
/* $ANTLR end k_merge */

/** 
 * $ANTLR start k_national
 * OraclePLSQL.g:1115:1: k_national : r= 'NATIONAL' ;
 */
static OraclePLSQLParser_k_national_return
k_national(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_national_return retval;
    ANTLR3_UINT32 k_national_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_national_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(258)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1115:12: (r= 'NATIONAL' )
        // OraclePLSQL.g:1115:18: r= 'NATIONAL'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(217, &FOLLOW_217_in_k_national10299); 
            if  (HASEXCEPTION())
            {
                goto rulek_nationalEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_nationalEx; /* Prevent compiler warnings */
    rulek_nationalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(258, k_national_StartIndex); }

    return retval;
}
/* $ANTLR end k_national */

/** 
 * $ANTLR start k_nocopy
 * OraclePLSQL.g:1116:1: k_nocopy : r= 'NOCOPY' ;
 */
static OraclePLSQLParser_k_nocopy_return
k_nocopy(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_nocopy_return retval;
    ANTLR3_UINT32 k_nocopy_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_nocopy_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(259)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1116:10: (r= 'NOCOPY' )
        // OraclePLSQL.g:1116:18: r= 'NOCOPY'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(218, &FOLLOW_218_in_k_nocopy10317); 
            if  (HASEXCEPTION())
            {
                goto rulek_nocopyEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_nocopyEx; /* Prevent compiler warnings */
    rulek_nocopyEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(259, k_nocopy_StartIndex); }

    return retval;
}
/* $ANTLR end k_nocopy */

/** 
 * $ANTLR start k_others
 * OraclePLSQL.g:1117:1: k_others : r= 'OTHERS' ;
 */
static OraclePLSQLParser_k_others_return
k_others(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_others_return retval;
    ANTLR3_UINT32 k_others_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_others_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(260)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1117:10: (r= 'OTHERS' )
        // OraclePLSQL.g:1117:18: r= 'OTHERS'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(219, &FOLLOW_219_in_k_others10335); 
            if  (HASEXCEPTION())
            {
                goto rulek_othersEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_othersEx; /* Prevent compiler warnings */
    rulek_othersEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(260, k_others_StartIndex); }

    return retval;
}
/* $ANTLR end k_others */

/** 
 * $ANTLR start k_parallel_enable
 * OraclePLSQL.g:1119:1: k_parallel_enable : r= 'PARALLEL_ENABLE' ;
 */
static OraclePLSQLParser_k_parallel_enable_return
k_parallel_enable(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_parallel_enable_return retval;
    ANTLR3_UINT32 k_parallel_enable_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_parallel_enable_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(261)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1119:19: (r= 'PARALLEL_ENABLE' )
        // OraclePLSQL.g:1119:21: r= 'PARALLEL_ENABLE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(220, &FOLLOW_220_in_k_parallel_enable10365); 
            if  (HASEXCEPTION())
            {
                goto rulek_parallel_enableEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_parallel_enableEx; /* Prevent compiler warnings */
    rulek_parallel_enableEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(261, k_parallel_enable_StartIndex); }

    return retval;
}
/* $ANTLR end k_parallel_enable */

/** 
 * $ANTLR start k_pipe
 * OraclePLSQL.g:1120:1: k_pipe : r= 'PIPE' ;
 */
static OraclePLSQLParser_k_pipe_return
k_pipe(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_pipe_return retval;
    ANTLR3_UINT32 k_pipe_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_pipe_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(262)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1120:8: (r= 'PIPE' )
        // OraclePLSQL.g:1120:18: r= 'PIPE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(221, &FOLLOW_221_in_k_pipe10385); 
            if  (HASEXCEPTION())
            {
                goto rulek_pipeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_pipeEx; /* Prevent compiler warnings */
    rulek_pipeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(262, k_pipe_StartIndex); }

    return retval;
}
/* $ANTLR end k_pipe */

/** 
 * $ANTLR start k_pipelined
 * OraclePLSQL.g:1121:1: k_pipelined : r= 'PIPELINED' ;
 */
static OraclePLSQLParser_k_pipelined_return
k_pipelined(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_pipelined_return retval;
    ANTLR3_UINT32 k_pipelined_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_pipelined_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(263)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1121:13: (r= 'PIPELINED' )
        // OraclePLSQL.g:1121:18: r= 'PIPELINED'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(222, &FOLLOW_222_in_k_pipelined10400); 
            if  (HASEXCEPTION())
            {
                goto rulek_pipelinedEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_pipelinedEx; /* Prevent compiler warnings */
    rulek_pipelinedEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(263, k_pipelined_StartIndex); }

    return retval;
}
/* $ANTLR end k_pipelined */

/** 
 * $ANTLR start k_pragma
 * OraclePLSQL.g:1122:1: k_pragma : r= 'PRAGMA' ;
 */
static OraclePLSQLParser_k_pragma_return
k_pragma(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_pragma_return retval;
    ANTLR3_UINT32 k_pragma_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_pragma_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(264)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1122:10: (r= 'PRAGMA' )
        // OraclePLSQL.g:1122:18: r= 'PRAGMA'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(223, &FOLLOW_223_in_k_pragma10418); 
            if  (HASEXCEPTION())
            {
                goto rulek_pragmaEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_pragmaEx; /* Prevent compiler warnings */
    rulek_pragmaEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(264, k_pragma_StartIndex); }

    return retval;
}
/* $ANTLR end k_pragma */

/** 
 * $ANTLR start k_procedure
 * OraclePLSQL.g:1123:1: k_procedure : r= 'PROCEDURE' ;
 */
static OraclePLSQLParser_k_procedure_return
k_procedure(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_procedure_return retval;
    ANTLR3_UINT32 k_procedure_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_procedure_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(265)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1123:13: (r= 'PROCEDURE' )
        // OraclePLSQL.g:1123:18: r= 'PROCEDURE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(224, &FOLLOW_224_in_k_procedure10433); 
            if  (HASEXCEPTION())
            {
                goto rulek_procedureEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_procedureEx; /* Prevent compiler warnings */
    rulek_procedureEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(265, k_procedure_StartIndex); }

    return retval;
}
/* $ANTLR end k_procedure */

/** 
 * $ANTLR start k_record
 * OraclePLSQL.g:1124:1: k_record : r= 'RECORD' ;
 */
static OraclePLSQLParser_k_record_return
k_record(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_record_return retval;
    ANTLR3_UINT32 k_record_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_record_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(266)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1124:10: (r= 'RECORD' )
        // OraclePLSQL.g:1124:18: r= 'RECORD'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(225, &FOLLOW_225_in_k_record10451); 
            if  (HASEXCEPTION())
            {
                goto rulek_recordEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_recordEx; /* Prevent compiler warnings */
    rulek_recordEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(266, k_record_StartIndex); }

    return retval;
}
/* $ANTLR end k_record */

/** 
 * $ANTLR start k_ref
 * OraclePLSQL.g:1125:1: k_ref : r= 'REF' ;
 */
static OraclePLSQLParser_k_ref_return
k_ref(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_ref_return retval;
    ANTLR3_UINT32 k_ref_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_ref_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(267)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1125:7: (r= 'REF' )
        // OraclePLSQL.g:1125:18: r= 'REF'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(226, &FOLLOW_226_in_k_ref10472); 
            if  (HASEXCEPTION())
            {
                goto rulek_refEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_refEx; /* Prevent compiler warnings */
    rulek_refEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(267, k_ref_StartIndex); }

    return retval;
}
/* $ANTLR end k_ref */

/** 
 * $ANTLR start k_result_cache
 * OraclePLSQL.g:1126:1: k_result_cache : r= 'RESULT_CACHE' ;
 */
static OraclePLSQLParser_k_result_cache_return
k_result_cache(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_result_cache_return retval;
    ANTLR3_UINT32 k_result_cache_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_result_cache_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(268)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1126:16: (r= 'RESULT_CACHE' )
        // OraclePLSQL.g:1126:18: r= 'RESULT_CACHE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(227, &FOLLOW_227_in_k_result_cache10484); 
            if  (HASEXCEPTION())
            {
                goto rulek_result_cacheEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_result_cacheEx; /* Prevent compiler warnings */
    rulek_result_cacheEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(268, k_result_cache_StartIndex); }

    return retval;
}
/* $ANTLR end k_result_cache */

/** 
 * $ANTLR start k_return
 * OraclePLSQL.g:1127:1: k_return : r= 'RETURN' ;
 */
static OraclePLSQLParser_k_return_return
k_return(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_return_return retval;
    ANTLR3_UINT32 k_return_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_return_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(269)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1127:10: (r= 'RETURN' )
        // OraclePLSQL.g:1127:18: r= 'RETURN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(228, &FOLLOW_228_in_k_return10502); 
            if  (HASEXCEPTION())
            {
                goto rulek_returnEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_returnEx; /* Prevent compiler warnings */
    rulek_returnEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(269, k_return_StartIndex); }

    return retval;
}
/* $ANTLR end k_return */

/** 
 * $ANTLR start k_returning
 * OraclePLSQL.g:1128:1: k_returning : r= 'RETURNING' ;
 */
static OraclePLSQLParser_k_returning_return
k_returning(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_returning_return retval;
    ANTLR3_UINT32 k_returning_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_returning_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(270)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1128:13: (r= 'RETURNING' )
        // OraclePLSQL.g:1128:18: r= 'RETURNING'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(229, &FOLLOW_229_in_k_returning10517); 
            if  (HASEXCEPTION())
            {
                goto rulek_returningEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_returningEx; /* Prevent compiler warnings */
    rulek_returningEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(270, k_returning_StartIndex); }

    return retval;
}
/* $ANTLR end k_returning */

/** 
 * $ANTLR start k_row
 * OraclePLSQL.g:1129:1: k_row : r= 'ROW' ;
 */
static OraclePLSQLParser_k_row_return
k_row(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_row_return retval;
    ANTLR3_UINT32 k_row_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_row_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(271)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1129:7: (r= 'ROW' )
        // OraclePLSQL.g:1129:18: r= 'ROW'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(230, &FOLLOW_230_in_k_row10538); 
            if  (HASEXCEPTION())
            {
                goto rulek_rowEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_rowEx; /* Prevent compiler warnings */
    rulek_rowEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(271, k_row_StartIndex); }

    return retval;
}
/* $ANTLR end k_row */

/** 
 * $ANTLR start k_rowtype
 * OraclePLSQL.g:1130:1: k_rowtype : r= 'ROWTYPE' ;
 */
static OraclePLSQLParser_k_rowtype_return
k_rowtype(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_rowtype_return retval;
    ANTLR3_UINT32 k_rowtype_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_rowtype_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(272)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1130:11: (r= 'ROWTYPE' )
        // OraclePLSQL.g:1130:18: r= 'ROWTYPE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(231, &FOLLOW_231_in_k_rowtype10555); 
            if  (HASEXCEPTION())
            {
                goto rulek_rowtypeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_rowtypeEx; /* Prevent compiler warnings */
    rulek_rowtypeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(272, k_rowtype_StartIndex); }

    return retval;
}
/* $ANTLR end k_rowtype */

/** 
 * $ANTLR start k_systimestamp
 * OraclePLSQL.g:1131:1: k_systimestamp : r= 'SYSTIMESTAMP' ;
 */
static OraclePLSQLParser_k_systimestamp_return
k_systimestamp(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_systimestamp_return retval;
    ANTLR3_UINT32 k_systimestamp_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_systimestamp_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(273)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1131:16: (r= 'SYSTIMESTAMP' )
        // OraclePLSQL.g:1131:18: r= 'SYSTIMESTAMP'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(232, &FOLLOW_232_in_k_systimestamp10567); 
            if  (HASEXCEPTION())
            {
                goto rulek_systimestampEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_systimestampEx; /* Prevent compiler warnings */
    rulek_systimestampEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(273, k_systimestamp_StartIndex); }

    return retval;
}
/* $ANTLR end k_systimestamp */

/** 
 * $ANTLR start k_subtype
 * OraclePLSQL.g:1132:1: k_subtype : r= 'SUBTYPE' ;
 */
static OraclePLSQLParser_k_subtype_return
k_subtype(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_subtype_return retval;
    ANTLR3_UINT32 k_subtype_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_subtype_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(274)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1132:11: (r= 'SUBTYPE' )
        // OraclePLSQL.g:1132:18: r= 'SUBTYPE'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(233, &FOLLOW_233_in_k_subtype10584); 
            if  (HASEXCEPTION())
            {
                goto rulek_subtypeEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_subtypeEx; /* Prevent compiler warnings */
    rulek_subtypeEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(274, k_subtype_StartIndex); }

    return retval;
}
/* $ANTLR end k_subtype */

/** 
 * $ANTLR start k_varray
 * OraclePLSQL.g:1134:1: k_varray : r= 'VARRAY' ;
 */
static OraclePLSQLParser_k_varray_return
k_varray(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_varray_return retval;
    ANTLR3_UINT32 k_varray_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_varray_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(275)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1134:10: (r= 'VARRAY' )
        // OraclePLSQL.g:1134:18: r= 'VARRAY'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(234, &FOLLOW_234_in_k_varray10618); 
            if  (HASEXCEPTION())
            {
                goto rulek_varrayEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_varrayEx; /* Prevent compiler warnings */
    rulek_varrayEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(275, k_varray_StartIndex); }

    return retval;
}
/* $ANTLR end k_varray */

/** 
 * $ANTLR start k_varying
 * OraclePLSQL.g:1135:1: k_varying : r= 'VARYING' ;
 */
static OraclePLSQLParser_k_varying_return
k_varying(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_varying_return retval;
    ANTLR3_UINT32 k_varying_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_varying_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(276)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1135:11: (r= 'VARYING' )
        // OraclePLSQL.g:1135:18: r= 'VARYING'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(235, &FOLLOW_235_in_k_varying10635); 
            if  (HASEXCEPTION())
            {
                goto rulek_varyingEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_varyingEx; /* Prevent compiler warnings */
    rulek_varyingEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(276, k_varying_StartIndex); }

    return retval;
}
/* $ANTLR end k_varying */

/** 
 * $ANTLR start k_when
 * OraclePLSQL.g:1136:1: k_when : r= 'WHEN' ;
 */
static OraclePLSQLParser_k_when_return
k_when(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_k_when_return retval;
    ANTLR3_UINT32 k_when_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    r;

    pANTLR3_BASE_TREE r_tree;

    /* Initialize rule variables
     */
    k_when_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(277)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    r       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    r_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1136:8: (r= 'WHEN' )
        // OraclePLSQL.g:1136:18: r= 'WHEN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            r = (pANTLR3_COMMON_TOKEN) MATCHT(236, &FOLLOW_236_in_k_when10655); 
            if  (HASEXCEPTION())
            {
                goto rulek_whenEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            r_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, r));
            ADAPTOR->addChild(ADAPTOR, root_0, r_tree);
            }
            if ( BACKTRACKING==0 ) 
            {
                 r->setType(r, T_RESERVED); r->user1 = T_RESERVED;  
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulek_whenEx; /* Prevent compiler warnings */
    rulek_whenEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(277, k_when_StartIndex); }

    return retval;
}
/* $ANTLR end k_when */

/** 
 * $ANTLR start quoted_string
 * OraclePLSQL.g:1140:1: quoted_string : ( QUOTED_STRING | QSTRING );
 */
static OraclePLSQLParser_quoted_string_return
quoted_string(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_quoted_string_return retval;
    ANTLR3_UINT32 quoted_string_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    set900;

    pANTLR3_BASE_TREE set900_tree;

    /* Initialize rule variables
     */
    quoted_string_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(278)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    set900       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    set900_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1141:2: ( QUOTED_STRING | QSTRING )
        // OraclePLSQL.g:
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            set900=(pANTLR3_COMMON_TOKEN)LT(1);
            if ( LA(1) == QUOTED_STRING || LA(1) == QSTRING )
            {
                CONSUME();
                if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set900)));
                PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

            }
            else 
            {
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
                EXCEPTION->expectingSet = &FOLLOW_set_in_quoted_string0;
                RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_quoted_string0);    goto rulequoted_stringEx;
            }


        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulequoted_stringEx; /* Prevent compiler warnings */
    rulequoted_stringEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(278, quoted_string_StartIndex); }

    return retval;
}
/* $ANTLR end quoted_string */

/** 
 * $ANTLR start bindvar
 * OraclePLSQL.g:1174:1: bindvar : (b= BINDVAR | COLON i= ID );
 */
static OraclePLSQLParser_bindvar_return
bindvar(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_bindvar_return retval;
    ANTLR3_UINT32 bindvar_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    b;
    pANTLR3_COMMON_TOKEN    i;
    pANTLR3_COMMON_TOKEN    COLON901;

    pANTLR3_BASE_TREE b_tree;
    pANTLR3_BASE_TREE i_tree;
    pANTLR3_BASE_TREE COLON901_tree;

    /* Initialize rule variables
     */
    bindvar_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(279)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    b       = NULL;
    i       = NULL;
    COLON901       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    b_tree   = NULL;
    i_tree   = NULL;
    COLON901_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:1175:2: (b= BINDVAR | COLON i= ID )
            
            ANTLR3_UINT32 alt284;

            alt284=2;

            switch ( LA(1) ) 
            {
            case BINDVAR:
            	{
            		alt284=1;
            	}
                break;
            case COLON:
            	{
            		alt284=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 284;
                EXCEPTION->state        = 0;


                goto rulebindvarEx;
            }

            switch (alt284) 
            {
        	case 1:
        	    // OraclePLSQL.g:1175:4: b= BINDVAR
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        b = (pANTLR3_COMMON_TOKEN) MATCHT(BINDVAR, &FOLLOW_BINDVAR_in_bindvar11013); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebindvarEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        b_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, b));
        	        ADAPTOR->addChild(ADAPTOR, root_0, b_tree);
        	        }
        	        if ( BACKTRACKING==0 ) 
        	        {
        	             b->setType(b, T_BINDVAR_NAME); b->user1 = T_BINDVAR_NAME, b->user2 = T_USE; 
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:1176:7: COLON i= ID
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        COLON901 = (pANTLR3_COMMON_TOKEN) MATCHT(COLON, &FOLLOW_COLON_in_bindvar11023); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebindvarEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        COLON901_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, COLON901));
        	        ADAPTOR->addChild(ADAPTOR, root_0, COLON901_tree);
        	        }
        	        i = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_bindvar11027); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulebindvarEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        i_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, i));
        	        ADAPTOR->addChild(ADAPTOR, root_0, i_tree);
        	        }
        	        if ( BACKTRACKING==0 ) 
        	        {
        	             i->setType(i, T_BINDVAR_NAME); i->user1 = T_BINDVAR_NAME, i->user2 = T_USE; 
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulebindvarEx; /* Prevent compiler warnings */
    rulebindvarEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(279, bindvar_StartIndex); }

    return retval;
}
/* $ANTLR end bindvar */

/** 
 * $ANTLR start doublevertbar
 * OraclePLSQL.g:1255:1: doublevertbar : ( DOUBLEVERTBAR | VERTBAR VERTBAR );
 */
static OraclePLSQLParser_doublevertbar_return
doublevertbar(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_doublevertbar_return retval;
    ANTLR3_UINT32 doublevertbar_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    DOUBLEVERTBAR902;
    pANTLR3_COMMON_TOKEN    VERTBAR903;
    pANTLR3_COMMON_TOKEN    VERTBAR904;

    pANTLR3_BASE_TREE DOUBLEVERTBAR902_tree;
    pANTLR3_BASE_TREE VERTBAR903_tree;
    pANTLR3_BASE_TREE VERTBAR904_tree;

    /* Initialize rule variables
     */
    doublevertbar_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(280)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    DOUBLEVERTBAR902       = NULL;
    VERTBAR903       = NULL;
    VERTBAR904       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    DOUBLEVERTBAR902_tree   = NULL;
    VERTBAR903_tree   = NULL;
    VERTBAR904_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:1256:2: ( DOUBLEVERTBAR | VERTBAR VERTBAR )
            
            ANTLR3_UINT32 alt285;

            alt285=2;

            switch ( LA(1) ) 
            {
            case DOUBLEVERTBAR:
            	{
            		alt285=1;
            	}
                break;
            case VERTBAR:
            	{
            		alt285=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 285;
                EXCEPTION->state        = 0;


                goto ruledoublevertbarEx;
            }

            switch (alt285) 
            {
        	case 1:
        	    // OraclePLSQL.g:1256:4: DOUBLEVERTBAR
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        DOUBLEVERTBAR902 = (pANTLR3_COMMON_TOKEN) MATCHT(DOUBLEVERTBAR, &FOLLOW_DOUBLEVERTBAR_in_doublevertbar11408); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledoublevertbarEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        DOUBLEVERTBAR902_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, DOUBLEVERTBAR902));
        	        ADAPTOR->addChild(ADAPTOR, root_0, DOUBLEVERTBAR902_tree);
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:1257:7: VERTBAR VERTBAR
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        VERTBAR903 = (pANTLR3_COMMON_TOKEN) MATCHT(VERTBAR, &FOLLOW_VERTBAR_in_doublevertbar11416); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledoublevertbarEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        VERTBAR903_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, VERTBAR903));
        	        ADAPTOR->addChild(ADAPTOR, root_0, VERTBAR903_tree);
        	        }
        	        VERTBAR904 = (pANTLR3_COMMON_TOKEN) MATCHT(VERTBAR, &FOLLOW_VERTBAR_in_doublevertbar11418); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruledoublevertbarEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        VERTBAR904_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, VERTBAR904));
        	        ADAPTOR->addChild(ADAPTOR, root_0, VERTBAR904_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruledoublevertbarEx; /* Prevent compiler warnings */
    ruledoublevertbarEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(280, doublevertbar_StartIndex); }

    return retval;
}
/* $ANTLR end doublevertbar */

/** 
 * $ANTLR start not_equal
 * OraclePLSQL.g:1262:1: not_equal : ( NOT_EQ | LTH GTH | '!' EQ | '^' EQ | '~' EQ );
 */
static OraclePLSQLParser_not_equal_return
not_equal(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_not_equal_return retval;
    ANTLR3_UINT32 not_equal_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    NOT_EQ905;
    pANTLR3_COMMON_TOKEN    LTH906;
    pANTLR3_COMMON_TOKEN    GTH907;
    pANTLR3_COMMON_TOKEN    char_literal908;
    pANTLR3_COMMON_TOKEN    EQ909;
    pANTLR3_COMMON_TOKEN    char_literal910;
    pANTLR3_COMMON_TOKEN    EQ911;
    pANTLR3_COMMON_TOKEN    char_literal912;
    pANTLR3_COMMON_TOKEN    EQ913;

    pANTLR3_BASE_TREE NOT_EQ905_tree;
    pANTLR3_BASE_TREE LTH906_tree;
    pANTLR3_BASE_TREE GTH907_tree;
    pANTLR3_BASE_TREE char_literal908_tree;
    pANTLR3_BASE_TREE EQ909_tree;
    pANTLR3_BASE_TREE char_literal910_tree;
    pANTLR3_BASE_TREE EQ911_tree;
    pANTLR3_BASE_TREE char_literal912_tree;
    pANTLR3_BASE_TREE EQ913_tree;

    /* Initialize rule variables
     */
    not_equal_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(281)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    NOT_EQ905       = NULL;
    LTH906       = NULL;
    GTH907       = NULL;
    char_literal908       = NULL;
    EQ909       = NULL;
    char_literal910       = NULL;
    EQ911       = NULL;
    char_literal912       = NULL;
    EQ913       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    NOT_EQ905_tree   = NULL;
    LTH906_tree   = NULL;
    GTH907_tree   = NULL;
    char_literal908_tree   = NULL;
    EQ909_tree   = NULL;
    char_literal910_tree   = NULL;
    EQ911_tree   = NULL;
    char_literal912_tree   = NULL;
    EQ913_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:1263:2: ( NOT_EQ | LTH GTH | '!' EQ | '^' EQ | '~' EQ )
            
            ANTLR3_UINT32 alt286;

            alt286=5;

            switch ( LA(1) ) 
            {
            case NOT_EQ:
            	{
            		alt286=1;
            	}
                break;
            case LTH:
            	{
            		alt286=2;
            	}
                break;
            case 237:
            	{
            		alt286=3;
            	}
                break;
            case 238:
            	{
            		alt286=4;
            	}
                break;
            case 239:
            	{
            		alt286=5;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 286;
                EXCEPTION->state        = 0;


                goto rulenot_equalEx;
            }

            switch (alt286) 
            {
        	case 1:
        	    // OraclePLSQL.g:1263:4: NOT_EQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        NOT_EQ905 = (pANTLR3_COMMON_TOKEN) MATCHT(NOT_EQ, &FOLLOW_NOT_EQ_in_not_equal11441); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        NOT_EQ905_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, NOT_EQ905));
        	        ADAPTOR->addChild(ADAPTOR, root_0, NOT_EQ905_tree);
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:1264:7: LTH GTH
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        LTH906 = (pANTLR3_COMMON_TOKEN) MATCHT(LTH, &FOLLOW_LTH_in_not_equal11449); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        LTH906_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LTH906));
        	        ADAPTOR->addChild(ADAPTOR, root_0, LTH906_tree);
        	        }
        	        GTH907 = (pANTLR3_COMMON_TOKEN) MATCHT(GTH, &FOLLOW_GTH_in_not_equal11451); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        GTH907_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, GTH907));
        	        ADAPTOR->addChild(ADAPTOR, root_0, GTH907_tree);
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:1265:7: '!' EQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        char_literal908 = (pANTLR3_COMMON_TOKEN) MATCHT(237, &FOLLOW_237_in_not_equal11459); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        char_literal908_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, char_literal908));
        	        ADAPTOR->addChild(ADAPTOR, root_0, char_literal908_tree);
        	        }
        	        EQ909 = (pANTLR3_COMMON_TOKEN) MATCHT(EQ, &FOLLOW_EQ_in_not_equal11461); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        EQ909_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, EQ909));
        	        ADAPTOR->addChild(ADAPTOR, root_0, EQ909_tree);
        	        }

        	    }
        	    break;
        	case 4:
        	    // OraclePLSQL.g:1266:7: '^' EQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        char_literal910 = (pANTLR3_COMMON_TOKEN) MATCHT(238, &FOLLOW_238_in_not_equal11469); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        char_literal910_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, char_literal910));
        	        ADAPTOR->addChild(ADAPTOR, root_0, char_literal910_tree);
        	        }
        	        EQ911 = (pANTLR3_COMMON_TOKEN) MATCHT(EQ, &FOLLOW_EQ_in_not_equal11471); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        EQ911_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, EQ911));
        	        ADAPTOR->addChild(ADAPTOR, root_0, EQ911_tree);
        	        }

        	    }
        	    break;
        	case 5:
        	    // OraclePLSQL.g:1267:7: '~' EQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        char_literal912 = (pANTLR3_COMMON_TOKEN) MATCHT(239, &FOLLOW_239_in_not_equal11479); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        char_literal912_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, char_literal912));
        	        ADAPTOR->addChild(ADAPTOR, root_0, char_literal912_tree);
        	        }
        	        EQ913 = (pANTLR3_COMMON_TOKEN) MATCHT(EQ, &FOLLOW_EQ_in_not_equal11481); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulenot_equalEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        EQ913_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, EQ913));
        	        ADAPTOR->addChild(ADAPTOR, root_0, EQ913_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulenot_equalEx; /* Prevent compiler warnings */
    rulenot_equalEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(281, not_equal_StartIndex); }

    return retval;
}
/* $ANTLR end not_equal */

/** 
 * $ANTLR start leq
 * OraclePLSQL.g:1275:1: leq : ( LEQ | LTH EQ );
 */
static OraclePLSQLParser_leq_return
leq(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_leq_return retval;
    ANTLR3_UINT32 leq_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    LEQ914;
    pANTLR3_COMMON_TOKEN    LTH915;
    pANTLR3_COMMON_TOKEN    EQ916;

    pANTLR3_BASE_TREE LEQ914_tree;
    pANTLR3_BASE_TREE LTH915_tree;
    pANTLR3_BASE_TREE EQ916_tree;

    /* Initialize rule variables
     */
    leq_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(282)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    LEQ914       = NULL;
    LTH915       = NULL;
    EQ916       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    LEQ914_tree   = NULL;
    LTH915_tree   = NULL;
    EQ916_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:1276:2: ( LEQ | LTH EQ )
            
            ANTLR3_UINT32 alt287;

            alt287=2;

            switch ( LA(1) ) 
            {
            case LEQ:
            	{
            		alt287=1;
            	}
                break;
            case LTH:
            	{
            		alt287=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 287;
                EXCEPTION->state        = 0;


                goto ruleleqEx;
            }

            switch (alt287) 
            {
        	case 1:
        	    // OraclePLSQL.g:1276:4: LEQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        LEQ914 = (pANTLR3_COMMON_TOKEN) MATCHT(LEQ, &FOLLOW_LEQ_in_leq11534); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleleqEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        LEQ914_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LEQ914));
        	        ADAPTOR->addChild(ADAPTOR, root_0, LEQ914_tree);
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:1277:7: LTH EQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        LTH915 = (pANTLR3_COMMON_TOKEN) MATCHT(LTH, &FOLLOW_LTH_in_leq11542); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleleqEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        LTH915_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, LTH915));
        	        ADAPTOR->addChild(ADAPTOR, root_0, LTH915_tree);
        	        }
        	        EQ916 = (pANTLR3_COMMON_TOKEN) MATCHT(EQ, &FOLLOW_EQ_in_leq11544); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto ruleleqEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        EQ916_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, EQ916));
        	        ADAPTOR->addChild(ADAPTOR, root_0, EQ916_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto ruleleqEx; /* Prevent compiler warnings */
    ruleleqEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(282, leq_StartIndex); }

    return retval;
}
/* $ANTLR end leq */

/** 
 * $ANTLR start geq
 * OraclePLSQL.g:1285:1: geq : ( GEQ | GTH EQ );
 */
static OraclePLSQLParser_geq_return
geq(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_geq_return retval;
    ANTLR3_UINT32 geq_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    GEQ917;
    pANTLR3_COMMON_TOKEN    GTH918;
    pANTLR3_COMMON_TOKEN    EQ919;

    pANTLR3_BASE_TREE GEQ917_tree;
    pANTLR3_BASE_TREE GTH918_tree;
    pANTLR3_BASE_TREE EQ919_tree;

    /* Initialize rule variables
     */
    geq_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(283)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    GEQ917       = NULL;
    GTH918       = NULL;
    EQ919       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    GEQ917_tree   = NULL;
    GTH918_tree   = NULL;
    EQ919_tree   = NULL;


    retval.tree  = NULL;
    {
        {
            //  OraclePLSQL.g:1286:2: ( GEQ | GTH EQ )
            
            ANTLR3_UINT32 alt288;

            alt288=2;

            switch ( LA(1) ) 
            {
            case GEQ:
            	{
            		alt288=1;
            	}
                break;
            case GTH:
            	{
            		alt288=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return retval;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 288;
                EXCEPTION->state        = 0;


                goto rulegeqEx;
            }

            switch (alt288) 
            {
        	case 1:
        	    // OraclePLSQL.g:1286:4: GEQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        GEQ917 = (pANTLR3_COMMON_TOKEN) MATCHT(GEQ, &FOLLOW_GEQ_in_geq11577); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulegeqEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        GEQ917_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, GEQ917));
        	        ADAPTOR->addChild(ADAPTOR, root_0, GEQ917_tree);
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:1287:7: GTH EQ
        	    {
        	        root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

        	        GTH918 = (pANTLR3_COMMON_TOKEN) MATCHT(GTH, &FOLLOW_GTH_in_geq11585); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulegeqEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        GTH918_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, GTH918));
        	        ADAPTOR->addChild(ADAPTOR, root_0, GTH918_tree);
        	        }
        	        EQ919 = (pANTLR3_COMMON_TOKEN) MATCHT(EQ, &FOLLOW_EQ_in_geq11587); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulegeqEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return retval;
        	        }
        	        if ( BACKTRACKING==0 ) {
        	        EQ919_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, EQ919));
        	        ADAPTOR->addChild(ADAPTOR, root_0, EQ919_tree);
        	        }

        	    }
        	    break;

            }
        }
    }
    

    // This is where rules clean up and exit
    //
    goto rulegeqEx; /* Prevent compiler warnings */
    rulegeqEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(283, geq_StartIndex); }

    return retval;
}
/* $ANTLR end geq */

/** 
 * $ANTLR start type_attr
 * OraclePLSQL.g:1334:1: type_attr : PERCENT k_type ;
 */
static OraclePLSQLParser_type_attr_return
type_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_type_attr_return retval;
    ANTLR3_UINT32 type_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT920;
    OraclePLSQLParser_k_type_return k_type921;
    #undef	RETURN_TYPE_k_type921
    #define	RETURN_TYPE_k_type921 OraclePLSQLParser_k_type_return

    pANTLR3_BASE_TREE PERCENT920_tree;

    /* Initialize rule variables
     */
    type_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(284)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT920       = NULL;
    k_type921.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT920_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1335:2: ( PERCENT k_type )
        // OraclePLSQL.g:1335:4: PERCENT k_type
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT920 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_type_attr11837); 
            if  (HASEXCEPTION())
            {
                goto ruletype_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT920_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT920));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT920_tree);
            }
            FOLLOWPUSH(FOLLOW_k_type_in_type_attr11839);
            k_type921=k_type(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto ruletype_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_type921.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruletype_attrEx; /* Prevent compiler warnings */
    ruletype_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(284, type_attr_StartIndex); }

    return retval;
}
/* $ANTLR end type_attr */

/** 
 * $ANTLR start rowtype_attr
 * OraclePLSQL.g:1337:1: rowtype_attr : PERCENT k_rowtype ;
 */
static OraclePLSQLParser_rowtype_attr_return
rowtype_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_rowtype_attr_return retval;
    ANTLR3_UINT32 rowtype_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT922;
    OraclePLSQLParser_k_rowtype_return k_rowtype923;
    #undef	RETURN_TYPE_k_rowtype923
    #define	RETURN_TYPE_k_rowtype923 OraclePLSQLParser_k_rowtype_return

    pANTLR3_BASE_TREE PERCENT922_tree;

    /* Initialize rule variables
     */
    rowtype_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(285)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT922       = NULL;
    k_rowtype923.tree = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT922_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1338:2: ( PERCENT k_rowtype )
        // OraclePLSQL.g:1338:4: PERCENT k_rowtype
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT922 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_rowtype_attr11849); 
            if  (HASEXCEPTION())
            {
                goto rulerowtype_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT922_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT922));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT922_tree);
            }
            FOLLOWPUSH(FOLLOW_k_rowtype_in_rowtype_attr11851);
            k_rowtype923=k_rowtype(ctx);

            FOLLOWPOP();
            if  (HASEXCEPTION())
            {
                goto rulerowtype_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) ADAPTOR->addChild(ADAPTOR, root_0, k_rowtype923.tree);

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulerowtype_attrEx; /* Prevent compiler warnings */
    rulerowtype_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(285, rowtype_attr_StartIndex); }

    return retval;
}
/* $ANTLR end rowtype_attr */

/** 
 * $ANTLR start notfound_attr
 * OraclePLSQL.g:1340:1: notfound_attr : PERCENT 'NOTFOUND' ;
 */
static OraclePLSQLParser_notfound_attr_return
notfound_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_notfound_attr_return retval;
    ANTLR3_UINT32 notfound_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT924;
    pANTLR3_COMMON_TOKEN    string_literal925;

    pANTLR3_BASE_TREE PERCENT924_tree;
    pANTLR3_BASE_TREE string_literal925_tree;

    /* Initialize rule variables
     */
    notfound_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(286)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT924       = NULL;
    string_literal925       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT924_tree   = NULL;
    string_literal925_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1341:2: ( PERCENT 'NOTFOUND' )
        // OraclePLSQL.g:1341:4: PERCENT 'NOTFOUND'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT924 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_notfound_attr11861); 
            if  (HASEXCEPTION())
            {
                goto rulenotfound_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT924_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT924));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT924_tree);
            }
            string_literal925 = (pANTLR3_COMMON_TOKEN) MATCHT(240, &FOLLOW_240_in_notfound_attr11863); 
            if  (HASEXCEPTION())
            {
                goto rulenotfound_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            string_literal925_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal925));
            ADAPTOR->addChild(ADAPTOR, root_0, string_literal925_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulenotfound_attrEx; /* Prevent compiler warnings */
    rulenotfound_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(286, notfound_attr_StartIndex); }

    return retval;
}
/* $ANTLR end notfound_attr */

/** 
 * $ANTLR start found_attr
 * OraclePLSQL.g:1343:1: found_attr : PERCENT 'FOUND' ;
 */
static OraclePLSQLParser_found_attr_return
found_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_found_attr_return retval;
    ANTLR3_UINT32 found_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT926;
    pANTLR3_COMMON_TOKEN    string_literal927;

    pANTLR3_BASE_TREE PERCENT926_tree;
    pANTLR3_BASE_TREE string_literal927_tree;

    /* Initialize rule variables
     */
    found_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(287)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT926       = NULL;
    string_literal927       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT926_tree   = NULL;
    string_literal927_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1344:2: ( PERCENT 'FOUND' )
        // OraclePLSQL.g:1344:4: PERCENT 'FOUND'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT926 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_found_attr11873); 
            if  (HASEXCEPTION())
            {
                goto rulefound_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT926_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT926));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT926_tree);
            }
            string_literal927 = (pANTLR3_COMMON_TOKEN) MATCHT(127, &FOLLOW_127_in_found_attr11875); 
            if  (HASEXCEPTION())
            {
                goto rulefound_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            string_literal927_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal927));
            ADAPTOR->addChild(ADAPTOR, root_0, string_literal927_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulefound_attrEx; /* Prevent compiler warnings */
    rulefound_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(287, found_attr_StartIndex); }

    return retval;
}
/* $ANTLR end found_attr */

/** 
 * $ANTLR start isopen_attr
 * OraclePLSQL.g:1346:1: isopen_attr : PERCENT 'ISOPEN' ;
 */
static OraclePLSQLParser_isopen_attr_return
isopen_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_isopen_attr_return retval;
    ANTLR3_UINT32 isopen_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT928;
    pANTLR3_COMMON_TOKEN    string_literal929;

    pANTLR3_BASE_TREE PERCENT928_tree;
    pANTLR3_BASE_TREE string_literal929_tree;

    /* Initialize rule variables
     */
    isopen_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(288)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT928       = NULL;
    string_literal929       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT928_tree   = NULL;
    string_literal929_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1347:2: ( PERCENT 'ISOPEN' )
        // OraclePLSQL.g:1347:4: PERCENT 'ISOPEN'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT928 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_isopen_attr11885); 
            if  (HASEXCEPTION())
            {
                goto ruleisopen_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT928_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT928));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT928_tree);
            }
            string_literal929 = (pANTLR3_COMMON_TOKEN) MATCHT(241, &FOLLOW_241_in_isopen_attr11887); 
            if  (HASEXCEPTION())
            {
                goto ruleisopen_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            string_literal929_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal929));
            ADAPTOR->addChild(ADAPTOR, root_0, string_literal929_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto ruleisopen_attrEx; /* Prevent compiler warnings */
    ruleisopen_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(288, isopen_attr_StartIndex); }

    return retval;
}
/* $ANTLR end isopen_attr */

/** 
 * $ANTLR start rowcount_attr
 * OraclePLSQL.g:1349:1: rowcount_attr : PERCENT 'ROWCOUNT' ;
 */
static OraclePLSQLParser_rowcount_attr_return
rowcount_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_rowcount_attr_return retval;
    ANTLR3_UINT32 rowcount_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT930;
    pANTLR3_COMMON_TOKEN    string_literal931;

    pANTLR3_BASE_TREE PERCENT930_tree;
    pANTLR3_BASE_TREE string_literal931_tree;

    /* Initialize rule variables
     */
    rowcount_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(289)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT930       = NULL;
    string_literal931       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT930_tree   = NULL;
    string_literal931_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1350:2: ( PERCENT 'ROWCOUNT' )
        // OraclePLSQL.g:1350:4: PERCENT 'ROWCOUNT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT930 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_rowcount_attr11897); 
            if  (HASEXCEPTION())
            {
                goto rulerowcount_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT930_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT930));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT930_tree);
            }
            string_literal931 = (pANTLR3_COMMON_TOKEN) MATCHT(129, &FOLLOW_129_in_rowcount_attr11899); 
            if  (HASEXCEPTION())
            {
                goto rulerowcount_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            string_literal931_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal931));
            ADAPTOR->addChild(ADAPTOR, root_0, string_literal931_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulerowcount_attrEx; /* Prevent compiler warnings */
    rulerowcount_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(289, rowcount_attr_StartIndex); }

    return retval;
}
/* $ANTLR end rowcount_attr */

/** 
 * $ANTLR start bulk_rowcount_attr
 * OraclePLSQL.g:1352:1: bulk_rowcount_attr : PERCENT 'BULK_ROWCOUNT' ;
 */
static OraclePLSQLParser_bulk_rowcount_attr_return
bulk_rowcount_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_bulk_rowcount_attr_return retval;
    ANTLR3_UINT32 bulk_rowcount_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT932;
    pANTLR3_COMMON_TOKEN    string_literal933;

    pANTLR3_BASE_TREE PERCENT932_tree;
    pANTLR3_BASE_TREE string_literal933_tree;

    /* Initialize rule variables
     */
    bulk_rowcount_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(290)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT932       = NULL;
    string_literal933       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT932_tree   = NULL;
    string_literal933_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1353:2: ( PERCENT 'BULK_ROWCOUNT' )
        // OraclePLSQL.g:1353:4: PERCENT 'BULK_ROWCOUNT'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT932 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_bulk_rowcount_attr11909); 
            if  (HASEXCEPTION())
            {
                goto rulebulk_rowcount_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT932_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT932));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT932_tree);
            }
            string_literal933 = (pANTLR3_COMMON_TOKEN) MATCHT(242, &FOLLOW_242_in_bulk_rowcount_attr11911); 
            if  (HASEXCEPTION())
            {
                goto rulebulk_rowcount_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            string_literal933_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal933));
            ADAPTOR->addChild(ADAPTOR, root_0, string_literal933_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulebulk_rowcount_attrEx; /* Prevent compiler warnings */
    rulebulk_rowcount_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(290, bulk_rowcount_attr_StartIndex); }

    return retval;
}
/* $ANTLR end bulk_rowcount_attr */

/** 
 * $ANTLR start charset_attr
 * OraclePLSQL.g:1355:1: charset_attr : PERCENT 'CHARSET' ;
 */
static OraclePLSQLParser_charset_attr_return
charset_attr(pOraclePLSQLParser ctx)
{   
    OraclePLSQLParser_charset_attr_return retval;
    ANTLR3_UINT32 charset_attr_StartIndex;
    pANTLR3_BASE_TREE root_0;

    pANTLR3_COMMON_TOKEN    PERCENT934;
    pANTLR3_COMMON_TOKEN    string_literal935;

    pANTLR3_BASE_TREE PERCENT934_tree;
    pANTLR3_BASE_TREE string_literal935_tree;

    /* Initialize rule variables
     */
    charset_attr_StartIndex = INDEX();


    root_0 = NULL;

    if ( (BACKTRACKING>0) && (HAVEPARSEDRULE(291)) )
    {
    	retval.start = 0;

        {
        }


        return retval; 
    }
    PERCENT934       = NULL;
    string_literal935       = NULL;
    retval.start = LT(1); retval.stop = retval.start;

    PERCENT934_tree   = NULL;
    string_literal935_tree   = NULL;


    retval.tree  = NULL;
    {
        // OraclePLSQL.g:1356:3: ( PERCENT 'CHARSET' )
        // OraclePLSQL.g:1356:5: PERCENT 'CHARSET'
        {
            root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));

            PERCENT934 = (pANTLR3_COMMON_TOKEN) MATCHT(PERCENT, &FOLLOW_PERCENT_in_charset_attr11922); 
            if  (HASEXCEPTION())
            {
                goto rulecharset_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            PERCENT934_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, PERCENT934));
            ADAPTOR->addChild(ADAPTOR, root_0, PERCENT934_tree);
            }
            string_literal935 = (pANTLR3_COMMON_TOKEN) MATCHT(243, &FOLLOW_243_in_charset_attr11924); 
            if  (HASEXCEPTION())
            {
                goto rulecharset_attrEx;
            }
            if (HASFAILED())
            {
                return retval;
            }
            if ( BACKTRACKING==0 ) {
            string_literal935_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal935));
            ADAPTOR->addChild(ADAPTOR, root_0, string_literal935_tree);
            }

        }

    }
    

    // This is where rules clean up and exit
    //
    goto rulecharset_attrEx; /* Prevent compiler warnings */
    rulecharset_attrEx: ;
    retval.stop = LT(-1);

    if ( BACKTRACKING==0 )
    {
    	retval.stop = LT(-1);
    	retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));
    	ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);
    }

            if (HASEXCEPTION())
            {
                PREPORTERROR();
                PRECOVER();
                retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));
            }

    if ( BACKTRACKING>0 ) { MEMOIZE(291, charset_attr_StartIndex); }

    return retval;
}
/* $ANTLR end charset_attr */

// $ANTLR start synpred9_OraclePLSQL
static void synpred9_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:212:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_trigger )
    // OraclePLSQL.g:212:8: ( k_create )? ( k_or )? ( kREPLACE )? k_trigger
    {

        // OraclePLSQL.g:212:8: ( k_create )?
        {
            int alt291=2;
            switch ( LA(1) ) 
            {
                case 159:
                	{
                		alt291=1;
                	}
                    break;
            }

            switch (alt291) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_create
        	    {
        	        FOLLOWPUSH(FOLLOW_k_create_in_synpred9_OraclePLSQL1143);
        	        k_create(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred9_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:212:18: ( k_or )?
        {
            int alt292=2;
            switch ( LA(1) ) 
            {
                case 185:
                	{
                		alt292=1;
                	}
                    break;
            }

            switch (alt292) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_or
        	    {
        	        FOLLOWPUSH(FOLLOW_k_or_in_synpred9_OraclePLSQL1146);
        	        k_or(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred9_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:212:24: ( kREPLACE )?
        {
            int alt293=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		alt293=1;
                	}
                    break;
            }

            switch (alt293) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: kREPLACE
        	    {
        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_synpred9_OraclePLSQL1149);
        	        kREPLACE(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred9_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_k_trigger_in_synpred9_OraclePLSQL1152);
        k_trigger(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred9_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred9_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred9_OraclePLSQLEx: ;

}
// $ANTLR end synpred9_OraclePLSQL

// $ANTLR start synpred13_OraclePLSQL
static void synpred13_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:213:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_function )
    // OraclePLSQL.g:213:8: ( k_create )? ( k_or )? ( kREPLACE )? k_function
    {

        // OraclePLSQL.g:213:8: ( k_create )?
        {
            int alt294=2;
            switch ( LA(1) ) 
            {
                case 159:
                	{
                		alt294=1;
                	}
                    break;
            }

            switch (alt294) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_create
        	    {
        	        FOLLOWPUSH(FOLLOW_k_create_in_synpred13_OraclePLSQL1166);
        	        k_create(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred13_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:213:18: ( k_or )?
        {
            int alt295=2;
            switch ( LA(1) ) 
            {
                case 185:
                	{
                		alt295=1;
                	}
                    break;
            }

            switch (alt295) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_or
        	    {
        	        FOLLOWPUSH(FOLLOW_k_or_in_synpred13_OraclePLSQL1169);
        	        k_or(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred13_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:213:24: ( kREPLACE )?
        {
            int alt296=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		alt296=1;
                	}
                    break;
            }

            switch (alt296) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: kREPLACE
        	    {
        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_synpred13_OraclePLSQL1172);
        	        kREPLACE(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred13_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_k_function_in_synpred13_OraclePLSQL1175);
        k_function(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred13_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred13_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred13_OraclePLSQLEx: ;

}
// $ANTLR end synpred13_OraclePLSQL

// $ANTLR start synpred17_OraclePLSQL
static void synpred17_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:214:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_procedure )
    // OraclePLSQL.g:214:8: ( k_create )? ( k_or )? ( kREPLACE )? k_procedure
    {

        // OraclePLSQL.g:214:8: ( k_create )?
        {
            int alt297=2;
            switch ( LA(1) ) 
            {
                case 159:
                	{
                		alt297=1;
                	}
                    break;
            }

            switch (alt297) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_create
        	    {
        	        FOLLOWPUSH(FOLLOW_k_create_in_synpred17_OraclePLSQL1189);
        	        k_create(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred17_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:214:18: ( k_or )?
        {
            int alt298=2;
            switch ( LA(1) ) 
            {
                case 185:
                	{
                		alt298=1;
                	}
                    break;
            }

            switch (alt298) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_or
        	    {
        	        FOLLOWPUSH(FOLLOW_k_or_in_synpred17_OraclePLSQL1192);
        	        k_or(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred17_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:214:24: ( kREPLACE )?
        {
            int alt299=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		alt299=1;
                	}
                    break;
            }

            switch (alt299) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: kREPLACE
        	    {
        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_synpred17_OraclePLSQL1195);
        	        kREPLACE(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred17_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_k_procedure_in_synpred17_OraclePLSQL1198);
        k_procedure(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred17_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred17_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred17_OraclePLSQLEx: ;

}
// $ANTLR end synpred17_OraclePLSQL

// $ANTLR start synpred21_OraclePLSQL
static void synpred21_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:215:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_type )
    // OraclePLSQL.g:215:8: ( k_create )? ( k_or )? ( kREPLACE )? k_type
    {

        // OraclePLSQL.g:215:8: ( k_create )?
        {
            int alt300=2;
            switch ( LA(1) ) 
            {
                case 159:
                	{
                		alt300=1;
                	}
                    break;
            }

            switch (alt300) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_create
        	    {
        	        FOLLOWPUSH(FOLLOW_k_create_in_synpred21_OraclePLSQL1212);
        	        k_create(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred21_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:215:18: ( k_or )?
        {
            int alt301=2;
            switch ( LA(1) ) 
            {
                case 185:
                	{
                		alt301=1;
                	}
                    break;
            }

            switch (alt301) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_or
        	    {
        	        FOLLOWPUSH(FOLLOW_k_or_in_synpred21_OraclePLSQL1215);
        	        k_or(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred21_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:215:24: ( kREPLACE )?
        {
            int alt302=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		alt302=1;
                	}
                    break;
            }

            switch (alt302) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: kREPLACE
        	    {
        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_synpred21_OraclePLSQL1218);
        	        kREPLACE(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred21_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_k_type_in_synpred21_OraclePLSQL1221);
        k_type(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred21_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred21_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred21_OraclePLSQLEx: ;

}
// $ANTLR end synpred21_OraclePLSQL

// $ANTLR start synpred25_OraclePLSQL
static void synpred25_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:216:7: ( ( k_create )? ( k_or )? ( kREPLACE )? k_package k_body )
    // OraclePLSQL.g:216:8: ( k_create )? ( k_or )? ( kREPLACE )? k_package k_body
    {

        // OraclePLSQL.g:216:8: ( k_create )?
        {
            int alt303=2;
            switch ( LA(1) ) 
            {
                case 159:
                	{
                		alt303=1;
                	}
                    break;
            }

            switch (alt303) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_create
        	    {
        	        FOLLOWPUSH(FOLLOW_k_create_in_synpred25_OraclePLSQL1235);
        	        k_create(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred25_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:216:18: ( k_or )?
        {
            int alt304=2;
            switch ( LA(1) ) 
            {
                case 185:
                	{
                		alt304=1;
                	}
                    break;
            }

            switch (alt304) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: k_or
        	    {
        	        FOLLOWPUSH(FOLLOW_k_or_in_synpred25_OraclePLSQL1238);
        	        k_or(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred25_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:216:24: ( kREPLACE )?
        {
            int alt305=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		alt305=1;
                	}
                    break;
            }

            switch (alt305) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: kREPLACE
        	    {
        	        FOLLOWPUSH(FOLLOW_kREPLACE_in_synpred25_OraclePLSQL1241);
        	        kREPLACE(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred25_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_k_package_in_synpred25_OraclePLSQL1244);
        k_package(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred25_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_k_body_in_synpred25_OraclePLSQL1246);
        k_body(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred25_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred25_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred25_OraclePLSQLEx: ;

}
// $ANTLR end synpred25_OraclePLSQL

// $ANTLR start synpred26_OraclePLSQL
static void synpred26_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:217:22: ( create_package_body )
    // OraclePLSQL.g:217:22: create_package_body
    {
        FOLLOWPUSH(FOLLOW_create_package_body_in_synpred26_OraclePLSQL1261);
        create_package_body(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred26_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred26_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred26_OraclePLSQLEx: ;

}
// $ANTLR end synpred26_OraclePLSQL

// $ANTLR start synpred75_OraclePLSQL
static void synpred75_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:310:4: ( k_interval kDAY ( LPAREN INTEGER RPAREN )? r_to kSECOND ( LPAREN INTEGER RPAREN )? )
    // OraclePLSQL.g:310:4: k_interval kDAY ( LPAREN INTEGER RPAREN )? r_to kSECOND ( LPAREN INTEGER RPAREN )?
    {
        FOLLOWPUSH(FOLLOW_k_interval_in_synpred75_OraclePLSQL2229);
        k_interval(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred75_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kDAY_in_synpred75_OraclePLSQL2231);
        kDAY(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred75_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:310:20: ( LPAREN INTEGER RPAREN )?
        {
            int alt317=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                	{
                		alt317=1;
                	}
                    break;
            }

            switch (alt317) 
            {
        	case 1:
        	    // OraclePLSQL.g:310:22: LPAREN INTEGER RPAREN
        	    {
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred75_OraclePLSQL2235); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred75_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(INTEGER, &FOLLOW_INTEGER_in_synpred75_OraclePLSQL2237); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred75_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred75_OraclePLSQL2239); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred75_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_r_to_in_synpred75_OraclePLSQL2244);
        r_to(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred75_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kSECOND_in_synpred75_OraclePLSQL2246);
        kSECOND(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred75_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:310:60: ( LPAREN INTEGER RPAREN )?
        {
            int alt318=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                	{
                		alt318=1;
                	}
                    break;
            }

            switch (alt318) 
            {
        	case 1:
        	    // OraclePLSQL.g:310:62: LPAREN INTEGER RPAREN
        	    {
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred75_OraclePLSQL2250); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred75_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(INTEGER, &FOLLOW_INTEGER_in_synpred75_OraclePLSQL2252); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred75_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred75_OraclePLSQL2254); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred75_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred75_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred75_OraclePLSQLEx: ;

}
// $ANTLR end synpred75_OraclePLSQL

// $ANTLR start synpred77_OraclePLSQL
static void synpred77_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:311:4: ( k_interval kYEAR ( LPAREN INTEGER RPAREN )? r_to kMONTH )
    // OraclePLSQL.g:311:4: k_interval kYEAR ( LPAREN INTEGER RPAREN )? r_to kMONTH
    {
        FOLLOWPUSH(FOLLOW_k_interval_in_synpred77_OraclePLSQL2262);
        k_interval(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred77_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kYEAR_in_synpred77_OraclePLSQL2264);
        kYEAR(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred77_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:311:21: ( LPAREN INTEGER RPAREN )?
        {
            int alt319=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                	{
                		alt319=1;
                	}
                    break;
            }

            switch (alt319) 
            {
        	case 1:
        	    // OraclePLSQL.g:311:23: LPAREN INTEGER RPAREN
        	    {
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred77_OraclePLSQL2268); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred77_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(INTEGER, &FOLLOW_INTEGER_in_synpred77_OraclePLSQL2270); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred77_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred77_OraclePLSQL2272); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred77_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_r_to_in_synpred77_OraclePLSQL2277);
        r_to(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred77_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kMONTH_in_synpred77_OraclePLSQL2279);
        kMONTH(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred77_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred77_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred77_OraclePLSQLEx: ;

}
// $ANTLR end synpred77_OraclePLSQL

// $ANTLR start synpred118_OraclePLSQL
static void synpred118_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:339:4: ( ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr )
    // OraclePLSQL.g:339:4: ( k_ref )? ( schema_name DOT )? identifier[T_TABLE_NAME,T_USE] DOT column_name[T_USE] type_attr
    {

        // OraclePLSQL.g:339:4: ( k_ref )?
        {
            int alt353=2;
            switch ( LA(1) ) 
            {
                case 226:
                	{
                		alt353=1;
                	}
                    break;
            }

            switch (alt353) 
            {
        	case 1:
        	    // OraclePLSQL.g:339:6: k_ref
        	    {
        	        FOLLOWPUSH(FOLLOW_k_ref_in_synpred118_OraclePLSQL2708);
        	        k_ref(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred118_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:339:15: ( schema_name DOT )?
        {
            int alt354=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		switch ( LA(2) ) 
                		{
                		    case DOT:
                		    	{
                		    		switch ( LA(3) ) 
                		    		{
                		    		    case ID:
                		    		    	{
                		    		    		switch ( LA(4) ) 
                		    		    		{
                		    		    		    case DOT:
                		    		    		    	{
                		    		    		    		alt354=1;
                		    		    		    	}
                		    		    		        break;
                		    		    		}

                		    		    	}
                		    		        break;
                		    		}

                		    	}
                		        break;
                		}

                	}
                    break;
            }

            switch (alt354) 
            {
        	case 1:
        	    // OraclePLSQL.g:339:16: schema_name DOT
        	    {
        	        FOLLOWPUSH(FOLLOW_schema_name_in_synpred118_OraclePLSQL2714);
        	        schema_name(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred118_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(DOT, &FOLLOW_DOT_in_synpred118_OraclePLSQL2716); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred118_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_identifier_in_synpred118_OraclePLSQL2720);
        identifier(ctx, T_TABLE_NAME, T_USE);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred118_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
         MATCHT(DOT, &FOLLOW_DOT_in_synpred118_OraclePLSQL2723); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred118_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_column_name_in_synpred118_OraclePLSQL2725);
        column_name(ctx, T_USE);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred118_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_type_attr_in_synpred118_OraclePLSQL2728);
        type_attr(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred118_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred118_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred118_OraclePLSQLEx: ;

}
// $ANTLR end synpred118_OraclePLSQL

// $ANTLR start synpred121_OraclePLSQL
static void synpred121_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:340:7: ( ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr )
    // OraclePLSQL.g:340:7: ( k_ref )? ( schema_name DOT )? variable_name_ex[T_USE] type_attr
    {

        // OraclePLSQL.g:340:7: ( k_ref )?
        {
            int alt355=2;
            switch ( LA(1) ) 
            {
                case 226:
                	{
                		alt355=1;
                	}
                    break;
            }

            switch (alt355) 
            {
        	case 1:
        	    // OraclePLSQL.g:340:9: k_ref
        	    {
        	        FOLLOWPUSH(FOLLOW_k_ref_in_synpred121_OraclePLSQL2738);
        	        k_ref(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred121_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:340:18: ( schema_name DOT )?
        {
            int alt356=2;
            switch ( LA(1) ) 
            {
                case ID:
                	{
                		switch ( LA(2) ) 
                		{
                		    case DOT:
                		    	{
                		    		alt356=1;
                		    	}
                		        break;
                		}

                	}
                    break;
            }

            switch (alt356) 
            {
        	case 1:
        	    // OraclePLSQL.g:340:19: schema_name DOT
        	    {
        	        FOLLOWPUSH(FOLLOW_schema_name_in_synpred121_OraclePLSQL2744);
        	        schema_name(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred121_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	         MATCHT(DOT, &FOLLOW_DOT_in_synpred121_OraclePLSQL2746); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred121_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_variable_name_ex_in_synpred121_OraclePLSQL2750);
        variable_name_ex(ctx, T_USE);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred121_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_type_attr_in_synpred121_OraclePLSQL2753);
        type_attr(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred121_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred121_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred121_OraclePLSQLEx: ;

}
// $ANTLR end synpred121_OraclePLSQL

// $ANTLR start synpred126_OraclePLSQL
static void synpred126_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:342:7: ( ( k_ref )? datatype_name )
    // OraclePLSQL.g:342:7: ( k_ref )? datatype_name
    {

        // OraclePLSQL.g:342:7: ( k_ref )?
        {
            int alt359=2;
            switch ( LA(1) ) 
            {
                case 226:
                	{
                		alt359=1;
                	}
                    break;
            }

            switch (alt359) 
            {
        	case 1:
        	    // OraclePLSQL.g:342:9: k_ref
        	    {
        	        FOLLOWPUSH(FOLLOW_k_ref_in_synpred126_OraclePLSQL2796);
        	        k_ref(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred126_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_datatype_name_in_synpred126_OraclePLSQL2801);
        datatype_name(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred126_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred126_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred126_OraclePLSQLEx: ;

}
// $ANTLR end synpred126_OraclePLSQL

// $ANTLR start synpred131_OraclePLSQL
static void synpred131_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:343:7: ( ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )? )
    // OraclePLSQL.g:343:7: ( k_ref )? ( k_date | k_timestamp ) ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )?
    {

        // OraclePLSQL.g:343:7: ( k_ref )?
        {
            int alt361=2;
            switch ( LA(1) ) 
            {
                case 226:
                	{
                		alt361=1;
                	}
                    break;
            }

            switch (alt361) 
            {
        	case 1:
        	    // OraclePLSQL.g:343:9: k_ref
        	    {
        	        FOLLOWPUSH(FOLLOW_k_ref_in_synpred131_OraclePLSQL2811);
        	        k_ref(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred131_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:343:18: ( k_date | k_timestamp )
        {
            int alt362=2;
            switch ( LA(1) ) 
            {
            case 163:
            	{
            		alt362=1;
            	}
                break;
            case 128:
            	{
            		alt362=2;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return ;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 362;
                EXCEPTION->state        = 0;


                goto rulesynpred131_OraclePLSQLEx;
            }

            switch (alt362) 
            {
        	case 1:
        	    // OraclePLSQL.g:343:19: k_date
        	    {
        	        FOLLOWPUSH(FOLLOW_k_date_in_synpred131_OraclePLSQL2817);
        	        k_date(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred131_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:343:28: k_timestamp
        	    {
        	        FOLLOWPUSH(FOLLOW_k_timestamp_in_synpred131_OraclePLSQL2821);
        	        k_timestamp(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred131_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

        // OraclePLSQL.g:343:41: ( LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN )?
        {
            int alt364=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                	{
                		alt364=1;
                	}
                    break;
            }

            switch (alt364) 
            {
        	case 1:
        	    // OraclePLSQL.g:343:43: LPAREN numeric_literal ( COMMA numeric_literal )? RPAREN
        	    {
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred131_OraclePLSQL2826); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred131_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	        FOLLOWPUSH(FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2828);
        	        numeric_literal(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred131_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	        // OraclePLSQL.g:343:66: ( COMMA numeric_literal )?
        	        {
        	            int alt363=2;
        	            switch ( LA(1) ) 
        	            {
        	                case COMMA:
        	                	{
        	                		alt363=1;
        	                	}
        	                    break;
        	            }

        	            switch (alt363) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:343:68: COMMA numeric_literal
        	        	    {
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_synpred131_OraclePLSQL2832); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulesynpred131_OraclePLSQLEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return ;
        	        	        }
        	        	        FOLLOWPUSH(FOLLOW_numeric_literal_in_synpred131_OraclePLSQL2834);
        	        	        numeric_literal(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulesynpred131_OraclePLSQLEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return ;
        	        	        }

        	        	    }
        	        	    break;

        	            }
        	        }
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred131_OraclePLSQL2839); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred131_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred131_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred131_OraclePLSQLEx: ;

}
// $ANTLR end synpred131_OraclePLSQL

// $ANTLR start synpred157_OraclePLSQL
static void synpred157_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:383:7: ( k_execute k_immediate )
    // OraclePLSQL.g:383:8: k_execute k_immediate
    {
        FOLLOWPUSH(FOLLOW_k_execute_in_synpred157_OraclePLSQL3144);
        k_execute(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred157_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_k_immediate_in_synpred157_OraclePLSQL3146);
        k_immediate(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred157_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred157_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred157_OraclePLSQLEx: ;

}
// $ANTLR end synpred157_OraclePLSQL

// $ANTLR start synpred158_OraclePLSQL
static void synpred158_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:384:4: ( k_if )
    // OraclePLSQL.g:384:5: k_if
    {
        FOLLOWPUSH(FOLLOW_k_if_in_synpred158_OraclePLSQL3157);
        k_if(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred158_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred158_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred158_OraclePLSQLEx: ;

}
// $ANTLR end synpred158_OraclePLSQL

// $ANTLR start synpred159_OraclePLSQL
static void synpred159_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:385:4: ( k_case )
    // OraclePLSQL.g:385:5: k_case
    {
        FOLLOWPUSH(FOLLOW_k_case_in_synpred159_OraclePLSQL3168);
        k_case(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred159_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred159_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred159_OraclePLSQLEx: ;

}
// $ANTLR end synpred159_OraclePLSQL

// $ANTLR start synpred160_OraclePLSQL
static void synpred160_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:386:7: ( k_open )
    // OraclePLSQL.g:386:8: k_open
    {
        FOLLOWPUSH(FOLLOW_k_open_in_synpred160_OraclePLSQL3182);
        k_open(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred160_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred160_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred160_OraclePLSQLEx: ;

}
// $ANTLR end synpred160_OraclePLSQL

// $ANTLR start synpred161_OraclePLSQL
static void synpred161_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:387:4: ( k_close )
    // OraclePLSQL.g:387:5: k_close
    {
        FOLLOWPUSH(FOLLOW_k_close_in_synpred161_OraclePLSQL3205);
        k_close(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred161_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred161_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred161_OraclePLSQLEx: ;

}
// $ANTLR end synpred161_OraclePLSQL

// $ANTLR start synpred162_OraclePLSQL
static void synpred162_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:388:7: ( k_continue )
    // OraclePLSQL.g:388:8: k_continue
    {
        FOLLOWPUSH(FOLLOW_k_continue_in_synpred162_OraclePLSQL3219);
        k_continue(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred162_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred162_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred162_OraclePLSQLEx: ;

}
// $ANTLR end synpred162_OraclePLSQL

// $ANTLR start synpred163_OraclePLSQL
static void synpred163_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:389:7: ( k_pipe )
    // OraclePLSQL.g:389:8: k_pipe
    {
        FOLLOWPUSH(FOLLOW_k_pipe_in_synpred163_OraclePLSQL3233);
        k_pipe(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred163_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred163_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred163_OraclePLSQLEx: ;

}
// $ANTLR end synpred163_OraclePLSQL

// $ANTLR start synpred164_OraclePLSQL
static void synpred164_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:390:7: ( k_goto )
    // OraclePLSQL.g:390:8: k_goto
    {
        FOLLOWPUSH(FOLLOW_k_goto_in_synpred164_OraclePLSQL3247);
        k_goto(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred164_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred164_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred164_OraclePLSQLEx: ;

}
// $ANTLR end synpred164_OraclePLSQL

// $ANTLR start synpred165_OraclePLSQL
static void synpred165_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:391:7: ( k_exit )
    // OraclePLSQL.g:391:8: k_exit
    {
        FOLLOWPUSH(FOLLOW_k_exit_in_synpred165_OraclePLSQL3262);
        k_exit(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred165_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred165_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred165_OraclePLSQLEx: ;

}
// $ANTLR end synpred165_OraclePLSQL

// $ANTLR start synpred166_OraclePLSQL
static void synpred166_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:392:7: ( k_return )
    // OraclePLSQL.g:392:8: k_return
    {
        FOLLOWPUSH(FOLLOW_k_return_in_synpred166_OraclePLSQL3276);
        k_return(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred166_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred166_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred166_OraclePLSQLEx: ;

}
// $ANTLR end synpred166_OraclePLSQL

// $ANTLR start synpred168_OraclePLSQL
static void synpred168_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    {
        //  OraclePLSQL.g:393:7: ( k_declare | k_begin )
        
        ANTLR3_UINT32 alt379;

        alt379=2;

        switch ( LA(1) ) 
        {
        case 138:
        	{
        		alt379=1;
        	}
            break;
        case 139:
        	{
        		alt379=2;
        	}
            break;

        default:
            if (BACKTRACKING>0)
            {
                FAILEDFLAG = ANTLR3_TRUE;
                return ;
            }
            CONSTRUCTEX();
            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            EXCEPTION->message      = (void *)"";
            EXCEPTION->decisionNum  = 379;
            EXCEPTION->state        = 0;


            goto rulesynpred168_OraclePLSQLEx;
        }

        switch (alt379) 
        {
    	case 1:
    	    // OraclePLSQL.g:393:8: k_declare
    	    {
    	        FOLLOWPUSH(FOLLOW_k_declare_in_synpred168_OraclePLSQL3290);
    	        k_declare(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred168_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 2:
    	    // OraclePLSQL.g:393:20: k_begin
    	    {
    	        FOLLOWPUSH(FOLLOW_k_begin_in_synpred168_OraclePLSQL3294);
    	        k_begin(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred168_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;

        }
    }
// This is where rules clean up and exit
//
goto rulesynpred168_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred168_OraclePLSQLEx: ;

}
// $ANTLR end synpred168_OraclePLSQL

// $ANTLR start synpred169_OraclePLSQL
static void synpred169_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:394:7: ( k_raise )
    // OraclePLSQL.g:394:8: k_raise
    {
        FOLLOWPUSH(FOLLOW_k_raise_in_synpred169_OraclePLSQL3308);
        k_raise(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred169_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred169_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred169_OraclePLSQLEx: ;

}
// $ANTLR end synpred169_OraclePLSQL

// $ANTLR start synpred170_OraclePLSQL
static void synpred170_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:395:7: ( k_fetch )
    // OraclePLSQL.g:395:8: k_fetch
    {
        FOLLOWPUSH(FOLLOW_k_fetch_in_synpred170_OraclePLSQL3322);
        k_fetch(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred170_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred170_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred170_OraclePLSQLEx: ;

}
// $ANTLR end synpred170_OraclePLSQL

// $ANTLR start synpred171_OraclePLSQL
static void synpred171_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:396:7: ( k_loop )
    // OraclePLSQL.g:396:8: k_loop
    {
        FOLLOWPUSH(FOLLOW_k_loop_in_synpred171_OraclePLSQL3336);
        k_loop(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred171_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred171_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred171_OraclePLSQLEx: ;

}
// $ANTLR end synpred171_OraclePLSQL

// $ANTLR start synpred172_OraclePLSQL
static void synpred172_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:397:7: ( k_while )
    // OraclePLSQL.g:397:8: k_while
    {
        FOLLOWPUSH(FOLLOW_k_while_in_synpred172_OraclePLSQL3350);
        k_while(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred172_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred172_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred172_OraclePLSQLEx: ;

}
// $ANTLR end synpred172_OraclePLSQL

// $ANTLR start synpred173_OraclePLSQL
static void synpred173_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:398:7: ( k_null )
    // OraclePLSQL.g:398:8: k_null
    {
        FOLLOWPUSH(FOLLOW_k_null_in_synpred173_OraclePLSQL3364);
        k_null(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred173_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred173_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred173_OraclePLSQLEx: ;

}
// $ANTLR end synpred173_OraclePLSQL

// $ANTLR start synpred174_OraclePLSQL
static void synpred174_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:399:7: ( k_for )
    // OraclePLSQL.g:399:8: k_for
    {
        FOLLOWPUSH(FOLLOW_k_for_in_synpred174_OraclePLSQL3378);
        k_for(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred174_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred174_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred174_OraclePLSQLEx: ;

}
// $ANTLR end synpred174_OraclePLSQL

// $ANTLR start synpred175_OraclePLSQL
static void synpred175_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:400:7: ( k_forall )
    // OraclePLSQL.g:400:8: k_forall
    {
        FOLLOWPUSH(FOLLOW_k_forall_in_synpred175_OraclePLSQL3392);
        k_forall(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred175_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred175_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred175_OraclePLSQLEx: ;

}
// $ANTLR end synpred175_OraclePLSQL

// $ANTLR start synpred186_OraclePLSQL
static void synpred186_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    {
        //  OraclePLSQL.g:401:7: ( k_commit | k_delete | k_insert | k_lock | k_rollback | k_savepoint | k_select | r_with | k_merge | r_set | k_update )
        
        ANTLR3_UINT32 alt380;

        alt380=11;

        switch ( LA(1) ) 
        {
        case 161:
        	{
        		alt380=1;
        	}
            break;
        case 133:
        	{
        		alt380=2;
        	}
            break;
        case 176:
        	{
        		alt380=3;
        	}
            break;
        case 181:
        	{
        		alt380=4;
        	}
            break;
        case 187:
        	{
        		alt380=5;
        	}
            break;
        case 188:
        	{
        		alt380=6;
        	}
            break;
        case 189:
        	{
        		alt380=7;
        	}
            break;
        case 148:
        	{
        		alt380=8;
        	}
            break;
        case 216:
        	{
        		alt380=9;
        	}
            break;
        case 144:
        	{
        		alt380=10;
        	}
            break;
        case 197:
        	{
        		alt380=11;
        	}
            break;

        default:
            if (BACKTRACKING>0)
            {
                FAILEDFLAG = ANTLR3_TRUE;
                return ;
            }
            CONSTRUCTEX();
            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            EXCEPTION->message      = (void *)"";
            EXCEPTION->decisionNum  = 380;
            EXCEPTION->state        = 0;


            goto rulesynpred186_OraclePLSQLEx;
        }

        switch (alt380) 
        {
    	case 1:
    	    // OraclePLSQL.g:401:8: k_commit
    	    {
    	        FOLLOWPUSH(FOLLOW_k_commit_in_synpred186_OraclePLSQL3406);
    	        k_commit(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 2:
    	    // OraclePLSQL.g:401:19: k_delete
    	    {
    	        FOLLOWPUSH(FOLLOW_k_delete_in_synpred186_OraclePLSQL3410);
    	        k_delete(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 3:
    	    // OraclePLSQL.g:401:30: k_insert
    	    {
    	        FOLLOWPUSH(FOLLOW_k_insert_in_synpred186_OraclePLSQL3414);
    	        k_insert(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 4:
    	    // OraclePLSQL.g:401:41: k_lock
    	    {
    	        FOLLOWPUSH(FOLLOW_k_lock_in_synpred186_OraclePLSQL3418);
    	        k_lock(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 5:
    	    // OraclePLSQL.g:401:50: k_rollback
    	    {
    	        FOLLOWPUSH(FOLLOW_k_rollback_in_synpred186_OraclePLSQL3422);
    	        k_rollback(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 6:
    	    // OraclePLSQL.g:401:63: k_savepoint
    	    {
    	        FOLLOWPUSH(FOLLOW_k_savepoint_in_synpred186_OraclePLSQL3426);
    	        k_savepoint(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 7:
    	    // OraclePLSQL.g:401:77: k_select
    	    {
    	        FOLLOWPUSH(FOLLOW_k_select_in_synpred186_OraclePLSQL3430);
    	        k_select(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 8:
    	    // OraclePLSQL.g:401:88: r_with
    	    {
    	        FOLLOWPUSH(FOLLOW_r_with_in_synpred186_OraclePLSQL3434);
    	        r_with(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 9:
    	    // OraclePLSQL.g:401:97: k_merge
    	    {
    	        FOLLOWPUSH(FOLLOW_k_merge_in_synpred186_OraclePLSQL3438);
    	        k_merge(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 10:
    	    // OraclePLSQL.g:401:107: r_set
    	    {
    	        FOLLOWPUSH(FOLLOW_r_set_in_synpred186_OraclePLSQL3442);
    	        r_set(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 11:
    	    // OraclePLSQL.g:401:115: k_update
    	    {
    	        FOLLOWPUSH(FOLLOW_k_update_in_synpred186_OraclePLSQL3446);
    	        k_update(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred186_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;

        }
    }
// This is where rules clean up and exit
//
goto rulesynpred186_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred186_OraclePLSQLEx: ;

}
// $ANTLR end synpred186_OraclePLSQL

// $ANTLR start synpred187_OraclePLSQL
static void synpred187_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:410:28: ( DOT call_next[T_USEL] )
    // OraclePLSQL.g:410:28: DOT call_next[T_USEL]
    {
         MATCHT(DOT, &FOLLOW_DOT_in_synpred187_OraclePLSQL3516); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred187_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_call_next_in_synpred187_OraclePLSQL3518);
        call_next(ctx, T_USEL);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred187_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred187_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred187_OraclePLSQLEx: ;

}
// $ANTLR end synpred187_OraclePLSQL

// $ANTLR start synpred188_OraclePLSQL
static void synpred188_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:414:7: ( lvalue DOT delete_call )
    // OraclePLSQL.g:414:7: lvalue DOT delete_call
    {
        FOLLOWPUSH(FOLLOW_lvalue_in_synpred188_OraclePLSQL3539);
        lvalue(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred188_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
         MATCHT(DOT, &FOLLOW_DOT_in_synpred188_OraclePLSQL3541); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred188_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_delete_call_in_synpred188_OraclePLSQL3543);
        delete_call(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred188_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred188_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred188_OraclePLSQLEx: ;

}
// $ANTLR end synpred188_OraclePLSQL

// $ANTLR start synpred189_OraclePLSQL
static void synpred189_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:415:7: ( lvalue ASSIGN expression )
    // OraclePLSQL.g:415:7: lvalue ASSIGN expression
    {
        FOLLOWPUSH(FOLLOW_lvalue_in_synpred189_OraclePLSQL3565);
        lvalue(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred189_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
         MATCHT(ASSIGN, &FOLLOW_ASSIGN_in_synpred189_OraclePLSQL3567); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred189_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_expression_in_synpred189_OraclePLSQL3569);
        expression(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred189_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred189_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred189_OraclePLSQLEx: ;

}
// $ANTLR end synpred189_OraclePLSQL

// $ANTLR start synpred194_OraclePLSQL
static void synpred194_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:420:60: ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )
    // OraclePLSQL.g:420:60: LPAREN ( parameter ( COMMA parameter )* )? RPAREN
    {
         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred194_OraclePLSQL3648); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred194_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:420:67: ( parameter ( COMMA parameter )* )?
        {
            int alt383=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                case K_OUT:
                case ID:
                case INTEGER:
                case COLON:
                case MINUS:
                case PLUS:
                case REAL_NUMBER:
                case QUOTED_STRING:
                case BINDVAR:
                case 127:
                case 128:
                case 129:
                case 130:
                case 157:
                case 163:
                case 169:
                case 183:
                case 184:
                case 190:
                case 194:
                case 199:
                case 200:
                case 201:
                case 203:
                case 232:
                	{
                		alt383=1;
                	}
                    break;
            }

            switch (alt383) 
            {
        	case 1:
        	    // OraclePLSQL.g:420:69: parameter ( COMMA parameter )*
        	    {
        	        FOLLOWPUSH(FOLLOW_parameter_in_synpred194_OraclePLSQL3652);
        	        parameter(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred194_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	        // OraclePLSQL.g:420:79: ( COMMA parameter )*

        	        for (;;)
        	        {
        	            int alt382=2;
        	            switch ( LA(1) ) 
        	            {
        	            case COMMA:
        	            	{
        	            		alt382=1;
        	            	}
        	                break;

        	            }

        	            switch (alt382) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:420:81: COMMA parameter
        	        	    {
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_synpred194_OraclePLSQL3656); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulesynpred194_OraclePLSQLEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return ;
        	        	        }
        	        	        FOLLOWPUSH(FOLLOW_parameter_in_synpred194_OraclePLSQL3658);
        	        	        parameter(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulesynpred194_OraclePLSQLEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return ;
        	        	        }

        	        	    }
        	        	    break;

        	        	default:
        	        	    goto loop382;	/* break out of the loop */
        	        	    break;
        	            }
        	        }
        	        loop382: ; /* Jump out to here if this rule does not match */


        	    }
        	    break;

            }
        }
         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred194_OraclePLSQL3666); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred194_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred194_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred194_OraclePLSQLEx: ;

}
// $ANTLR end synpred194_OraclePLSQL

// $ANTLR start synpred198_OraclePLSQL
static void synpred198_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:424:52: ( LPAREN ( parameter ( COMMA parameter )* )? RPAREN )
    // OraclePLSQL.g:424:52: LPAREN ( parameter ( COMMA parameter )* )? RPAREN
    {
         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred198_OraclePLSQL3697); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred198_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:424:59: ( parameter ( COMMA parameter )* )?
        {
            int alt386=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                case K_OUT:
                case ID:
                case INTEGER:
                case COLON:
                case MINUS:
                case PLUS:
                case REAL_NUMBER:
                case QUOTED_STRING:
                case BINDVAR:
                case 127:
                case 128:
                case 129:
                case 130:
                case 157:
                case 163:
                case 169:
                case 183:
                case 184:
                case 190:
                case 194:
                case 199:
                case 200:
                case 201:
                case 203:
                case 232:
                	{
                		alt386=1;
                	}
                    break;
            }

            switch (alt386) 
            {
        	case 1:
        	    // OraclePLSQL.g:424:61: parameter ( COMMA parameter )*
        	    {
        	        FOLLOWPUSH(FOLLOW_parameter_in_synpred198_OraclePLSQL3701);
        	        parameter(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred198_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	        // OraclePLSQL.g:424:71: ( COMMA parameter )*

        	        for (;;)
        	        {
        	            int alt385=2;
        	            switch ( LA(1) ) 
        	            {
        	            case COMMA:
        	            	{
        	            		alt385=1;
        	            	}
        	                break;

        	            }

        	            switch (alt385) 
        	            {
        	        	case 1:
        	        	    // OraclePLSQL.g:424:73: COMMA parameter
        	        	    {
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_synpred198_OraclePLSQL3705); 
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulesynpred198_OraclePLSQLEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return ;
        	        	        }
        	        	        FOLLOWPUSH(FOLLOW_parameter_in_synpred198_OraclePLSQL3707);
        	        	        parameter(ctx);

        	        	        FOLLOWPOP();
        	        	        if  (HASEXCEPTION())
        	        	        {
        	        	            goto rulesynpred198_OraclePLSQLEx;
        	        	        }
        	        	        if (HASFAILED())
        	        	        {
        	        	            return ;
        	        	        }

        	        	    }
        	        	    break;

        	        	default:
        	        	    goto loop385;	/* break out of the loop */
        	        	    break;
        	            }
        	        }
        	        loop385: ; /* Jump out to here if this rule does not match */


        	    }
        	    break;

            }
        }
         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred198_OraclePLSQL3715); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred198_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred198_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred198_OraclePLSQLEx: ;

}
// $ANTLR end synpred198_OraclePLSQL

// $ANTLR start synpred200_OraclePLSQL
static void synpred200_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:428:18: ( LPAREN ( parameter )? RPAREN )
    // OraclePLSQL.g:428:18: LPAREN ( parameter )? RPAREN
    {
         MATCHT(LPAREN, &FOLLOW_LPAREN_in_synpred200_OraclePLSQL3739); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred200_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:428:25: ( parameter )?
        {
            int alt387=2;
            switch ( LA(1) ) 
            {
                case LPAREN:
                case K_OUT:
                case ID:
                case INTEGER:
                case COLON:
                case MINUS:
                case PLUS:
                case REAL_NUMBER:
                case QUOTED_STRING:
                case BINDVAR:
                case 127:
                case 128:
                case 129:
                case 130:
                case 157:
                case 163:
                case 169:
                case 183:
                case 184:
                case 190:
                case 194:
                case 199:
                case 200:
                case 201:
                case 203:
                case 232:
                	{
                		alt387=1;
                	}
                    break;
            }

            switch (alt387) 
            {
        	case 1:
        	    // OraclePLSQL.g:0:0: parameter
        	    {
        	        FOLLOWPUSH(FOLLOW_parameter_in_synpred200_OraclePLSQL3741);
        	        parameter(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred200_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
         MATCHT(RPAREN, &FOLLOW_RPAREN_in_synpred200_OraclePLSQL3744); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred200_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred200_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred200_OraclePLSQLEx: ;

}
// $ANTLR end synpred200_OraclePLSQL

// $ANTLR start synpred205_OraclePLSQL
static void synpred205_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:437:38: ( ( statement )+ )
    // OraclePLSQL.g:437:38: ( statement )+
    {
        // OraclePLSQL.g:437:38: ( statement )+
        {
            int cnt388=0;

            for (;;)
            {
                int alt388=2;
        	switch ( LA(1) ) 
        	{
        	case LPAREN:
        	case K_OUT:
        	case ID:
        	case LLABEL:
        	case COLON:
        	case BINDVAR:
        	case 126:
        	case 127:
        	case 128:
        	case 129:
        	case 130:
        	case 131:
        	case 133:
        	case 134:
        	case 135:
        	case 138:
        	case 139:
        	case 144:
        	case 148:
        	case 157:
        	case 161:
        	case 170:
        	case 171:
        	case 172:
        	case 173:
        	case 174:
        	case 176:
        	case 181:
        	case 184:
        	case 187:
        	case 188:
        	case 189:
        	case 197:
        	case 198:
        	case 205:
        	case 207:
        	case 213:
        	case 216:
        	case 221:
        	case 228:
        		{
        			alt388=1;
        		}
        	    break;

        	}

        	switch (alt388) 
        	{
        	    case 1:
        	        // OraclePLSQL.g:0:0: statement
        	        {
        	            FOLLOWPUSH(FOLLOW_statement_in_synpred205_OraclePLSQL3838);
        	            statement(ctx);

        	            FOLLOWPOP();
        	            if  (HASEXCEPTION())
        	            {
        	                goto rulesynpred205_OraclePLSQLEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return ;
        	            }

        	        }
        	        break;

        	    default:
        	    
        		if ( cnt388 >= 1 )
        		{
        		    goto loop388;
        		}
        		if (BACKTRACKING>0)
        		{
        		    FAILEDFLAG = ANTLR3_TRUE;
        		    return ;
        		}
        		/* mismatchedSetEx()
        		 */
        		CONSTRUCTEX();
        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


        		goto rulesynpred205_OraclePLSQLEx;
        	}
        	cnt388++;
            }
            loop388: ;	/* Jump to here if this rule does not match */
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred205_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred205_OraclePLSQLEx: ;

}
// $ANTLR end synpred205_OraclePLSQL

// $ANTLR start synpred208_OraclePLSQL
static void synpred208_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:438:20: ( ( statement )+ )
    // OraclePLSQL.g:438:20: ( statement )+
    {
        // OraclePLSQL.g:438:20: ( statement )+
        {
            int cnt391=0;

            for (;;)
            {
                int alt391=2;
        	switch ( LA(1) ) 
        	{
        	case LPAREN:
        	case K_OUT:
        	case ID:
        	case LLABEL:
        	case COLON:
        	case BINDVAR:
        	case 126:
        	case 127:
        	case 128:
        	case 129:
        	case 130:
        	case 131:
        	case 133:
        	case 134:
        	case 135:
        	case 138:
        	case 139:
        	case 144:
        	case 148:
        	case 157:
        	case 161:
        	case 170:
        	case 171:
        	case 172:
        	case 173:
        	case 174:
        	case 176:
        	case 181:
        	case 184:
        	case 187:
        	case 188:
        	case 189:
        	case 197:
        	case 198:
        	case 205:
        	case 207:
        	case 213:
        	case 216:
        	case 221:
        	case 228:
        		{
        			alt391=1;
        		}
        	    break;

        	}

        	switch (alt391) 
        	{
        	    case 1:
        	        // OraclePLSQL.g:0:0: statement
        	        {
        	            FOLLOWPUSH(FOLLOW_statement_in_synpred208_OraclePLSQL3863);
        	            statement(ctx);

        	            FOLLOWPOP();
        	            if  (HASEXCEPTION())
        	            {
        	                goto rulesynpred208_OraclePLSQLEx;
        	            }
        	            if (HASFAILED())
        	            {
        	                return ;
        	            }

        	        }
        	        break;

        	    default:
        	    
        		if ( cnt391 >= 1 )
        		{
        		    goto loop391;
        		}
        		if (BACKTRACKING>0)
        		{
        		    FAILEDFLAG = ANTLR3_TRUE;
        		    return ;
        		}
        		/* mismatchedSetEx()
        		 */
        		CONSTRUCTEX();
        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;


        		goto rulesynpred208_OraclePLSQLEx;
        	}
        	cnt391++;
            }
            loop391: ;	/* Jump to here if this rule does not match */
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred208_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred208_OraclePLSQLEx: ;

}
// $ANTLR end synpred208_OraclePLSQL

// $ANTLR start synpred225_OraclePLSQL
static void synpred225_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:472:17: ( param_modifiers )
    // OraclePLSQL.g:472:17: param_modifiers
    {
        FOLLOWPUSH(FOLLOW_param_modifiers_in_synpred225_OraclePLSQL4233);
        param_modifiers(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred225_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred225_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred225_OraclePLSQLEx: ;

}
// $ANTLR end synpred225_OraclePLSQL

// $ANTLR start synpred226_OraclePLSQL
static void synpred226_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:472:53: ( param_modifiers )
    // OraclePLSQL.g:472:53: param_modifiers
    {
        FOLLOWPUSH(FOLLOW_param_modifiers_in_synpred226_OraclePLSQL4242);
        param_modifiers(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred226_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred226_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred226_OraclePLSQLEx: ;

}
// $ANTLR end synpred226_OraclePLSQL

// $ANTLR start synpred228_OraclePLSQL
static void synpred228_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:476:9: ( K_OUT )
    // OraclePLSQL.g:476:9: K_OUT
    {
         MATCHT(K_OUT, &FOLLOW_K_OUT_in_synpred228_OraclePLSQL4264); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred228_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred228_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred228_OraclePLSQLEx: ;

}
// $ANTLR end synpred228_OraclePLSQL

// $ANTLR start synpred238_OraclePLSQL
static void synpred238_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:497:7: ( numeric_expression DOUBLEDOT numeric_expression )
    // OraclePLSQL.g:497:7: numeric_expression DOUBLEDOT numeric_expression
    {
        FOLLOWPUSH(FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4493);
        numeric_expression(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred238_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
         MATCHT(DOUBLEDOT, &FOLLOW_DOUBLEDOT_in_synpred238_OraclePLSQL4495); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred238_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_numeric_expression_in_synpred238_OraclePLSQL4497);
        numeric_expression(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred238_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred238_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred238_OraclePLSQLEx: ;

}
// $ANTLR end synpred238_OraclePLSQL

// $ANTLR start synpred240_OraclePLSQL
static void synpred240_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:498:7: ( kINDICES kOF atom ( k_between numeric_expression k_and numeric_expression )? )
    // OraclePLSQL.g:498:7: kINDICES kOF atom ( k_between numeric_expression k_and numeric_expression )?
    {
        FOLLOWPUSH(FOLLOW_kINDICES_in_synpred240_OraclePLSQL4505);
        kINDICES(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred240_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kOF_in_synpred240_OraclePLSQL4507);
        kOF(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred240_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_atom_in_synpred240_OraclePLSQL4509);
        atom(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred240_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

        // OraclePLSQL.g:498:25: ( k_between numeric_expression k_and numeric_expression )?
        {
            int alt400=2;
            switch ( LA(1) ) 
            {
                case 153:
                	{
                		alt400=1;
                	}
                    break;
            }

            switch (alt400) 
            {
        	case 1:
        	    // OraclePLSQL.g:498:27: k_between numeric_expression k_and numeric_expression
        	    {
        	        FOLLOWPUSH(FOLLOW_k_between_in_synpred240_OraclePLSQL4513);
        	        k_between(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred240_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4515);
        	        numeric_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred240_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	        FOLLOWPUSH(FOLLOW_k_and_in_synpred240_OraclePLSQL4517);
        	        k_and(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred240_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }
        	        FOLLOWPUSH(FOLLOW_numeric_expression_in_synpred240_OraclePLSQL4519);
        	        numeric_expression(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred240_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred240_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred240_OraclePLSQLEx: ;

}
// $ANTLR end synpred240_OraclePLSQL

// $ANTLR start synpred249_OraclePLSQL
static void synpred249_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:537:61: ( select_statement )
    // OraclePLSQL.g:537:61: select_statement
    {
        FOLLOWPUSH(FOLLOW_select_statement_in_synpred249_OraclePLSQL4904);
        select_statement(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred249_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred249_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred249_OraclePLSQLEx: ;

}
// $ANTLR end synpred249_OraclePLSQL

// $ANTLR start synpred253_OraclePLSQL
static void synpred253_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:542:34: ( ID DOT )
    // OraclePLSQL.g:542:34: ID DOT
    {
         MATCHT(ID, &FOLLOW_ID_in_synpred253_OraclePLSQL4979); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred253_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
         MATCHT(DOT, &FOLLOW_DOT_in_synpred253_OraclePLSQL4981); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred253_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred253_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred253_OraclePLSQLEx: ;

}
// $ANTLR end synpred253_OraclePLSQL

// $ANTLR start synpred270_OraclePLSQL
static void synpred270_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:589:4: ( bindvar )
    // OraclePLSQL.g:589:4: bindvar
    {
        FOLLOWPUSH(FOLLOW_bindvar_in_synpred270_OraclePLSQL5315);
        bindvar(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred270_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred270_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred270_OraclePLSQLEx: ;

}
// $ANTLR end synpred270_OraclePLSQL

// $ANTLR start synpred319_OraclePLSQL
static void synpred319_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:690:18: ( swallow_to_semi )
    // OraclePLSQL.g:690:18: swallow_to_semi
    {
        FOLLOWPUSH(FOLLOW_swallow_to_semi_in_synpred319_OraclePLSQL5970);
        swallow_to_semi(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred319_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred319_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred319_OraclePLSQLEx: ;

}
// $ANTLR end synpred319_OraclePLSQL

// $ANTLR start synpred320_OraclePLSQL
static void synpred320_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:706:20: ( swallow_to_semi )
    // OraclePLSQL.g:706:20: swallow_to_semi
    {
        FOLLOWPUSH(FOLLOW_swallow_to_semi_in_synpred320_OraclePLSQL6065);
        swallow_to_semi(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred320_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred320_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred320_OraclePLSQLEx: ;

}
// $ANTLR end synpred320_OraclePLSQL

// $ANTLR start synpred325_OraclePLSQL
static void synpred325_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:731:9: (~ ( SEMI ) )
    // OraclePLSQL.g:731:9: ~ ( SEMI )
    {
        if ( ((LA(1) >= T_UNKNOWN) && (LA(1) <= DIVIDE)) || ((LA(1) >= LPAREN) && (LA(1) <= 243)) )
        {
            CONSUME();
            PERRORRECOVERY=ANTLR3_FALSE;FAILEDFLAG=ANTLR3_FALSE;

        }
        else 
        {
            if (BACKTRACKING>0)
            {
                FAILEDFLAG = ANTLR3_TRUE;
                return ;
            }
            CONSTRUCTEX();
            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
            EXCEPTION->expectingSet = &FOLLOW_set_in_synpred325_OraclePLSQL6219;
            RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_synpred325_OraclePLSQL6219);    goto rulesynpred325_OraclePLSQLEx;
        }


    }

// This is where rules clean up and exit
//
goto rulesynpred325_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred325_OraclePLSQLEx: ;

}
// $ANTLR end synpred325_OraclePLSQL

// $ANTLR start synpred326_OraclePLSQL
static void synpred326_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:736:55: ( DOT identifier[T_DBLINK_NAME,T_USE] )
    // OraclePLSQL.g:736:55: DOT identifier[T_DBLINK_NAME,T_USE]
    {
         MATCHT(DOT, &FOLLOW_DOT_in_synpred326_OraclePLSQL6251); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred326_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_identifier_in_synpred326_OraclePLSQL6253);
        identifier(ctx, T_DBLINK_NAME, T_USE);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred326_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred326_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred326_OraclePLSQLEx: ;

}
// $ANTLR end synpred326_OraclePLSQL

// $ANTLR start synpred351_OraclePLSQL
static void synpred351_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:783:25: ( ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr )
    // OraclePLSQL.g:783:25: ( ASTERISK | DIVIDE | kMOD ) unary_sign_expr
    {

        // OraclePLSQL.g:783:25: ( ASTERISK | DIVIDE | kMOD )
        {
            int alt417=3;
            switch ( LA(1) ) 
            {
            case ASTERISK:
            	{
            		alt417=1;
            	}
                break;
            case DIVIDE:
            	{
            		alt417=2;
            	}
                break;
            case ID:
            	{
            		alt417=3;
            	}
                break;

            default:
                if (BACKTRACKING>0)
                {
                    FAILEDFLAG = ANTLR3_TRUE;
                    return ;
                }
                CONSTRUCTEX();
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
                EXCEPTION->message      = (void *)"";
                EXCEPTION->decisionNum  = 417;
                EXCEPTION->state        = 0;


                goto rulesynpred351_OraclePLSQLEx;
            }

            switch (alt417) 
            {
        	case 1:
        	    // OraclePLSQL.g:783:27: ASTERISK
        	    {
        	         MATCHT(ASTERISK, &FOLLOW_ASTERISK_in_synpred351_OraclePLSQL6625); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred351_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;
        	case 2:
        	    // OraclePLSQL.g:783:38: DIVIDE
        	    {
        	         MATCHT(DIVIDE, &FOLLOW_DIVIDE_in_synpred351_OraclePLSQL6629); 
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred351_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;
        	case 3:
        	    // OraclePLSQL.g:783:47: kMOD
        	    {
        	        FOLLOWPUSH(FOLLOW_kMOD_in_synpred351_OraclePLSQL6633);
        	        kMOD(ctx);

        	        FOLLOWPOP();
        	        if  (HASEXCEPTION())
        	        {
        	            goto rulesynpred351_OraclePLSQLEx;
        	        }
        	        if (HASFAILED())
        	        {
        	            return ;
        	        }

        	    }
        	    break;

            }
        }
        FOLLOWPUSH(FOLLOW_unary_sign_expr_in_synpred351_OraclePLSQL6637);
        unary_sign_expr(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred351_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred351_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred351_OraclePLSQLEx: ;

}
// $ANTLR end synpred351_OraclePLSQL

// $ANTLR start synpred354_OraclePLSQL
static void synpred354_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:795:7: ( k_case )
    // OraclePLSQL.g:795:8: k_case
    {
        FOLLOWPUSH(FOLLOW_k_case_in_synpred354_OraclePLSQL6690);
        k_case(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred354_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred354_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred354_OraclePLSQLEx: ;

}
// $ANTLR end synpred354_OraclePLSQL

// $ANTLR start synpred355_OraclePLSQL
static void synpred355_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:796:4: ( k_cast )
    // OraclePLSQL.g:796:5: k_cast
    {
        FOLLOWPUSH(FOLLOW_k_cast_in_synpred355_OraclePLSQL6701);
        k_cast(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred355_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred355_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred355_OraclePLSQLEx: ;

}
// $ANTLR end synpred355_OraclePLSQL

// $ANTLR start synpred365_OraclePLSQL
static void synpred365_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:809:27: ( DOT call_next[T_USE] )
    // OraclePLSQL.g:809:27: DOT call_next[T_USE]
    {
         MATCHT(DOT, &FOLLOW_DOT_in_synpred365_OraclePLSQL6804); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred365_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_call_next_in_synpred365_OraclePLSQL6806);
        call_next(ctx, T_USE);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred365_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred365_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred365_OraclePLSQLEx: ;

}
// $ANTLR end synpred365_OraclePLSQL

// $ANTLR start synpred369_OraclePLSQL
static void synpred369_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:814:20: ( kAT kTIME kZONE quoted_string )
    // OraclePLSQL.g:814:20: kAT kTIME kZONE quoted_string
    {
        FOLLOWPUSH(FOLLOW_kAT_in_synpred369_OraclePLSQL6849);
        kAT(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred369_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kTIME_in_synpred369_OraclePLSQL6851);
        kTIME(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred369_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_kZONE_in_synpred369_OraclePLSQL6853);
        kZONE(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred369_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
        FOLLOWPUSH(FOLLOW_quoted_string_in_synpred369_OraclePLSQL6855);
        quoted_string(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred369_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred369_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred369_OraclePLSQLEx: ;

}
// $ANTLR end synpred369_OraclePLSQL

// $ANTLR start synpred370_OraclePLSQL
static void synpred370_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:818:73: ( datatype )
    // OraclePLSQL.g:818:73: datatype
    {
        FOLLOWPUSH(FOLLOW_datatype_in_synpred370_OraclePLSQL6887);
        datatype(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred370_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred370_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred370_OraclePLSQLEx: ;

}
// $ANTLR end synpred370_OraclePLSQL

// $ANTLR start synpred441_OraclePLSQL
static void synpred441_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    // OraclePLSQL.g:943:52: ( schema_name DOT )
    // OraclePLSQL.g:943:52: schema_name DOT
    {
        FOLLOWPUSH(FOLLOW_schema_name_in_synpred441_OraclePLSQL8097);
        schema_name(ctx);

        FOLLOWPOP();
        if  (HASEXCEPTION())
        {
            goto rulesynpred441_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }
         MATCHT(DOT, &FOLLOW_DOT_in_synpred441_OraclePLSQL8099); 
        if  (HASEXCEPTION())
        {
            goto rulesynpred441_OraclePLSQLEx;
        }
        if (HASFAILED())
        {
            return ;
        }

    }

// This is where rules clean up and exit
//
goto rulesynpred441_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred441_OraclePLSQLEx: ;

}
// $ANTLR end synpred441_OraclePLSQL

// $ANTLR start synpred446_OraclePLSQL
static void synpred446_OraclePLSQL_fragment(pOraclePLSQLParser ctx ) 
{
    {
        //  OraclePLSQL.g:949:9: ( k_declare | k_begin )
        
        ANTLR3_UINT32 alt441;

        alt441=2;

        switch ( LA(1) ) 
        {
        case 138:
        	{
        		alt441=1;
        	}
            break;
        case 139:
        	{
        		alt441=2;
        	}
            break;

        default:
            if (BACKTRACKING>0)
            {
                FAILEDFLAG = ANTLR3_TRUE;
                return ;
            }
            CONSTRUCTEX();
            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
            EXCEPTION->message      = (void *)"";
            EXCEPTION->decisionNum  = 441;
            EXCEPTION->state        = 0;


            goto rulesynpred446_OraclePLSQLEx;
        }

        switch (alt441) 
        {
    	case 1:
    	    // OraclePLSQL.g:949:10: k_declare
    	    {
    	        FOLLOWPUSH(FOLLOW_k_declare_in_synpred446_OraclePLSQL8138);
    	        k_declare(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred446_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;
    	case 2:
    	    // OraclePLSQL.g:949:20: k_begin
    	    {
    	        FOLLOWPUSH(FOLLOW_k_begin_in_synpred446_OraclePLSQL8140);
    	        k_begin(ctx);

    	        FOLLOWPOP();
    	        if  (HASEXCEPTION())
    	        {
    	            goto rulesynpred446_OraclePLSQLEx;
    	        }
    	        if (HASFAILED())
    	        {
    	            return ;
    	        }

    	    }
    	    break;

        }
    }
// This is where rules clean up and exit
//
goto rulesynpred446_OraclePLSQLEx; /* Prevent compiler warnings */
rulesynpred446_OraclePLSQLEx: ;

}
// $ANTLR end synpred446_OraclePLSQL
/* End of parsing rules
 * ==============================================
 */

/* ==============================================
 * Syntactic predicates
 */
static ANTLR3_BOOLEAN synpred189_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred189_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred75_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred75_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred188_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred188_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred253_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred253_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred225_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred225_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred77_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred77_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred174_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred174_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred205_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred205_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred163_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred163_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred238_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred238_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred354_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred354_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred121_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred121_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred157_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred157_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred370_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred370_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred166_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred166_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred26_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred26_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred21_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred21_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred187_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred187_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred25_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred25_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred326_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred326_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred446_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred446_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred170_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred170_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred171_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred171_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred17_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred17_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred226_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred226_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred118_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred118_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred168_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred168_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred169_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred169_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred369_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred369_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred320_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred320_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred441_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred441_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred249_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred249_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred186_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred186_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred325_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred325_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred164_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred164_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred126_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred126_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred161_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred161_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred351_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred351_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred172_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred172_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred365_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred365_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred175_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred175_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred355_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred355_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred13_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred13_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred131_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred131_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred165_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred165_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred240_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred240_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred228_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred228_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred270_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred270_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred173_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred173_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred162_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred162_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred319_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred319_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred9_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred9_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred208_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred208_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred200_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred200_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred160_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred160_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred159_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred159_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred158_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred158_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred198_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred198_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}
static ANTLR3_BOOLEAN synpred194_OraclePLSQL(pOraclePLSQLParser ctx) 
{
    ANTLR3_MARKER   start;
    ANTLR3_BOOLEAN  success;

    BACKTRACKING++;
    start	= MARK();
    synpred194_OraclePLSQL_fragment(ctx);	    // can never throw exception
    success	= !(FAILEDFLAG);
    REWIND(start);
    BACKTRACKING--;
    FAILEDFLAG	= ANTLR3_FALSE;
    return success;
}

/* End of syntactic predicates
 * ==============================================
 */

 
 



/* End of code
 * =============================================================================
 */
