All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.opitzconsulting.parser.antlr.internal.InternalOrcasDslParser Maven / Gradle / Ivy

Go to download

orcas model modified by syntax extensions (contains the original model). If custom-syntax-extensions are provided, there will be a custom artifact.

The newest version!
package de.opitzconsulting.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import de.opitzconsulting.services.OrcasDslGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalOrcasDslParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "", "", "", "", "RULE_DBNAME", "RULE_INT", "RULE_STRING", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'create'", "'global'", "'table'", "'alias'", "'domain'", "'of'", "'('", "')'", "'on'", "'commit'", "'rows'", "'tablespace'", "'organization'", "'index'", "'pctthreshold'", "'including'", "'overflow'", "'pctfree'", "'for'", "';'", "'partition'", "'by'", "'range'", "'interval'", "'subpartition'", "'list'", "'hash'", "'values'", "'less'", "'than'", "','", "'maxvalue'", "'reference'", "'default'", "'lob'", "'store'", "'as'", "'varray'", "'nested'", "'unsigned'", "'with_time_zone'", "'type'", "'virtual'", "'defaultname'", "'constraint'", "'not'", "'null'", "'check'", "'deferrable'", "'initially'", "'foreign'", "'key'", "'references'", "'delete'", "'primary'", "'using'", "'reverse'", "'unique'", "'domain_index'", "'bitmap'", "'nonunique'", "'sequence'", "'start'", "'with'", "'increment'", "'minvalue'", "'cache'", "'orcas_ext_max_value_select'", "'generated'", "'always'", "'identity'", "'materialized'", "'view'", "'rowid'", "'query'", "'rewrite'", "'log'", "'new'", "'commit_scn'", "'purge'", "'immediate'", "'next'", "'repeat'", "'comment'", "'.'", "'is'", "'-'", "'add'", "'column'", "'append_last'", "'column-name'", "'history-table'", "'table-name'", "'alias-name'", "'primary-key-mode'", "'append'", "'remove'", "'define'", "'extends'", "'regexp'", "'replace'", "'||'", "'generate-primary-key'", "'constraint-name'", "'sequence-name'", "'generate-unique-key'", "'generate-index'", "'index-name'", "'generate-check-constraint'", "'check-rule'", "'generate-foreign-key'", "'pk-column-name'", "'null_LobStorageType'", "'basicfile'", "'securefile'", "'null_LobDeduplicateType'", "'deduplicate'", "'keep_duplicates'", "'null_DataType'", "'number'", "'blob'", "'clob'", "'nclob'", "'varchar2'", "'nvarchar2'", "'char'", "'date'", "'xmltype'", "'timestamp'", "'raw'", "'long_raw'", "'float'", "'long'", "'object'", "'tinyint'", "'smallint'", "'mediumint'", "'int'", "'bigint'", "'bit'", "'urowid'", "'boolean'", "'null_FkDeleteRuleType'", "'cascade'", "'no_action'", "'set_null'", "'null_DeferrType'", "'deferred'", "'null_CharType'", "'BYTE'", "'CHAR'", "'byte'", "'null_LoggingType'", "'logging'", "'nologging'", "'null_EnableType'", "'enable'", "'disable'", "'null_ParallelType'", "'parallel'", "'noparallel'", "'null_IndexGlobalType'", "'local'", "'null_CommentObjectType'", "'null_PermanentnessType'", "'temporary'", "'permanent'", "'null_PermanentnessTransactionType'", "'preserve'", "'null_CycleType'", "'cycle'", "'nocycle'", "'null_OrderType'", "'order'", "'noorder'", "'null_CompressForType'", "'all_operations'", "'direct_load_operations'", "'query_low'", "'query_high'", "'archive_low'", "'archive_high'", "'null_LobCompressForType'", "'high'", "'medium'", "'low'", "'null_CompressType'", "'nocompress'", "'compress'", "'null_BuildModeType'", "'prebuilt'", "'null_RefreshModeType'", "'demand'", "'null_RefreshMethodType'", "'refresh_complete'", "'refresh_force'", "'refresh_fast'", "'never_refresh'", "'null_NewValuesType'", "'excluding'", "'null_SynchronousType'", "'asynchronous'", "'synchronous'", "'null_GenNameRulePart'", "'column-domain-name'", "'remove-next'"
    };
    public static final int T__144=144;
    public static final int T__143=143;
    public static final int T__146=146;
    public static final int T__50=50;
    public static final int T__145=145;
    public static final int T__140=140;
    public static final int T__142=142;
    public static final int T__141=141;
    public static final int T__59=59;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__137=137;
    public static final int T__52=52;
    public static final int T__136=136;
    public static final int T__53=53;
    public static final int T__139=139;
    public static final int T__54=54;
    public static final int T__138=138;
    public static final int T__133=133;
    public static final int T__132=132;
    public static final int T__60=60;
    public static final int T__135=135;
    public static final int T__61=61;
    public static final int T__134=134;
    public static final int RULE_ID=7;
    public static final int T__131=131;
    public static final int T__130=130;
    public static final int RULE_INT=5;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int T__129=129;
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int T__62=62;
    public static final int T__126=126;
    public static final int T__63=63;
    public static final int T__125=125;
    public static final int T__64=64;
    public static final int T__128=128;
    public static final int T__65=65;
    public static final int T__127=127;
    public static final int T__166=166;
    public static final int T__165=165;
    public static final int T__168=168;
    public static final int T__167=167;
    public static final int T__162=162;
    public static final int T__161=161;
    public static final int T__164=164;
    public static final int T__163=163;
    public static final int RULE_DBNAME=4;
    public static final int T__160=160;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__159=159;
    public static final int T__30=30;
    public static final int T__158=158;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__155=155;
    public static final int T__154=154;
    public static final int T__157=157;
    public static final int T__156=156;
    public static final int T__151=151;
    public static final int T__150=150;
    public static final int T__153=153;
    public static final int T__152=152;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__40=40;
    public static final int T__148=148;
    public static final int T__41=41;
    public static final int T__147=147;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__149=149;
    public static final int T__100=100;
    public static final int T__102=102;
    public static final int T__101=101;
    public static final int T__19=19;
    public static final int T__15=15;
    public static final int T__16=16;
    public static final int T__17=17;
    public static final int T__18=18;
    public static final int T__12=12;
    public static final int T__217=217;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__214=214;
    public static final int T__213=213;
    public static final int T__216=216;
    public static final int T__215=215;
    public static final int T__210=210;
    public static final int T__212=212;
    public static final int T__211=211;
    public static final int T__26=26;
    public static final int T__27=27;
    public static final int T__28=28;
    public static final int T__29=29;
    public static final int T__22=22;
    public static final int T__207=207;
    public static final int T__23=23;
    public static final int T__206=206;
    public static final int T__24=24;
    public static final int T__209=209;
    public static final int T__25=25;
    public static final int T__208=208;
    public static final int T__203=203;
    public static final int T__202=202;
    public static final int T__20=20;
    public static final int T__205=205;
    public static final int T__21=21;
    public static final int T__204=204;
    public static final int T__122=122;
    public static final int T__121=121;
    public static final int T__124=124;
    public static final int T__123=123;
    public static final int T__120=120;
    public static final int RULE_SL_COMMENT=9;
    public static final int T__119=119;
    public static final int T__118=118;
    public static final int T__115=115;
    public static final int EOF=-1;
    public static final int T__114=114;
    public static final int T__117=117;
    public static final int T__116=116;
    public static final int T__111=111;
    public static final int T__110=110;
    public static final int T__113=113;
    public static final int T__112=112;
    public static final int T__108=108;
    public static final int T__107=107;
    public static final int T__109=109;
    public static final int T__104=104;
    public static final int T__103=103;
    public static final int T__106=106;
    public static final int T__105=105;
    public static final int RULE_ML_COMMENT=8;
    public static final int T__201=201;
    public static final int T__200=200;
    public static final int T__91=91;
    public static final int T__188=188;
    public static final int T__92=92;
    public static final int T__187=187;
    public static final int T__93=93;
    public static final int T__94=94;
    public static final int T__189=189;
    public static final int T__184=184;
    public static final int T__183=183;
    public static final int T__186=186;
    public static final int T__90=90;
    public static final int T__185=185;
    public static final int T__180=180;
    public static final int T__182=182;
    public static final int T__181=181;
    public static final int T__99=99;
    public static final int T__95=95;
    public static final int T__96=96;
    public static final int T__97=97;
    public static final int T__98=98;
    public static final int T__177=177;
    public static final int T__176=176;
    public static final int T__179=179;
    public static final int T__178=178;
    public static final int T__173=173;
    public static final int T__172=172;
    public static final int T__175=175;
    public static final int T__174=174;
    public static final int T__171=171;
    public static final int T__170=170;
    public static final int T__169=169;
    public static final int T__70=70;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int RULE_STRING=6;
    public static final int T__77=77;
    public static final int T__78=78;
    public static final int T__79=79;
    public static final int T__73=73;
    public static final int T__74=74;
    public static final int T__75=75;
    public static final int T__76=76;
    public static final int T__80=80;
    public static final int T__199=199;
    public static final int T__81=81;
    public static final int T__198=198;
    public static final int T__82=82;
    public static final int T__83=83;
    public static final int T__195=195;
    public static final int T__194=194;
    public static final int RULE_WS=10;
    public static final int T__197=197;
    public static final int T__196=196;
    public static final int T__191=191;
    public static final int T__190=190;
    public static final int T__193=193;
    public static final int T__192=192;
    public static final int RULE_ANY_OTHER=11;
    public static final int T__88=88;
    public static final int T__89=89;
    public static final int T__84=84;
    public static final int T__85=85;
    public static final int T__86=86;
    public static final int T__87=87;

    // delegates
    // delegators


        public InternalOrcasDslParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalOrcasDslParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalOrcasDslParser.tokenNames; }
    public String getGrammarFileName() { return "../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g"; }



     	private OrcasDslGrammarAccess grammarAccess;
     	
        public InternalOrcasDslParser(TokenStream input, OrcasDslGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "Model";	
       	}
       	
       	@Override
       	protected OrcasDslGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleModel"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:68:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
    public final EObject entryRuleModel() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleModel = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:69:2: (iv_ruleModel= ruleModel EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:70:2: iv_ruleModel= ruleModel EOF
            {
             newCompositeNode(grammarAccess.getModelRule()); 
            pushFollow(FOLLOW_ruleModel_in_entryRuleModel75);
            iv_ruleModel=ruleModel();

            state._fsp--;

             current =iv_ruleModel; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModel85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleModel"


    // $ANTLR start "ruleModel"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:77:1: ruleModel returns [EObject current=null] : ( (lv_model_elements_0_0= ruleModelElement ) )+ ;
    public final EObject ruleModel() throws RecognitionException {
        EObject current = null;

        EObject lv_model_elements_0_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:80:28: ( ( (lv_model_elements_0_0= ruleModelElement ) )+ )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:81:1: ( (lv_model_elements_0_0= ruleModelElement ) )+
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:81:1: ( (lv_model_elements_0_0= ruleModelElement ) )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==12||LA1_0==95||LA1_0==109) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:82:1: (lv_model_elements_0_0= ruleModelElement )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:82:1: (lv_model_elements_0_0= ruleModelElement )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:83:3: lv_model_elements_0_0= ruleModelElement
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getModelAccess().getModel_elementsModelElementParserRuleCall_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleModelElement_in_ruleModel130);
            	    lv_model_elements_0_0=ruleModelElement();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getModelRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"model_elements",
            	            		lv_model_elements_0_0, 
            	            		"ModelElement");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleModel"


    // $ANTLR start "entryRuleModelElement"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:107:1: entryRuleModelElement returns [EObject current=null] : iv_ruleModelElement= ruleModelElement EOF ;
    public final EObject entryRuleModelElement() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleModelElement = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:108:2: (iv_ruleModelElement= ruleModelElement EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:109:2: iv_ruleModelElement= ruleModelElement EOF
            {
             newCompositeNode(grammarAccess.getModelElementRule()); 
            pushFollow(FOLLOW_ruleModelElement_in_entryRuleModelElement166);
            iv_ruleModelElement=ruleModelElement();

            state._fsp--;

             current =iv_ruleModelElement; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModelElement176); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleModelElement"


    // $ANTLR start "ruleModelElement"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:116:1: ruleModelElement returns [EObject current=null] : (this_Table_0= ruleTable | this_Sequence_1= ruleSequence | this_IndexExTable_2= ruleIndexExTable | this_Comment_3= ruleComment | this_Mview_4= ruleMview | this_Domain_5= ruleDomain | this_ColumnDomain_6= ruleColumnDomain ) ;
    public final EObject ruleModelElement() throws RecognitionException {
        EObject current = null;

        EObject this_Table_0 = null;

        EObject this_Sequence_1 = null;

        EObject this_IndexExTable_2 = null;

        EObject this_Comment_3 = null;

        EObject this_Mview_4 = null;

        EObject this_Domain_5 = null;

        EObject this_ColumnDomain_6 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:119:28: ( (this_Table_0= ruleTable | this_Sequence_1= ruleSequence | this_IndexExTable_2= ruleIndexExTable | this_Comment_3= ruleComment | this_Mview_4= ruleMview | this_Domain_5= ruleDomain | this_ColumnDomain_6= ruleColumnDomain ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:120:1: (this_Table_0= ruleTable | this_Sequence_1= ruleSequence | this_IndexExTable_2= ruleIndexExTable | this_Comment_3= ruleComment | this_Mview_4= ruleMview | this_Domain_5= ruleDomain | this_ColumnDomain_6= ruleColumnDomain )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:120:1: (this_Table_0= ruleTable | this_Sequence_1= ruleSequence | this_IndexExTable_2= ruleIndexExTable | this_Comment_3= ruleComment | this_Mview_4= ruleMview | this_Domain_5= ruleDomain | this_ColumnDomain_6= ruleColumnDomain )
            int alt2=7;
            alt2 = dfa2.predict(input);
            switch (alt2) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:121:5: this_Table_0= ruleTable
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getTableParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleTable_in_ruleModelElement223);
                    this_Table_0=ruleTable();

                    state._fsp--;

                     
                            current = this_Table_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:131:5: this_Sequence_1= ruleSequence
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getSequenceParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSequence_in_ruleModelElement250);
                    this_Sequence_1=ruleSequence();

                    state._fsp--;

                     
                            current = this_Sequence_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:141:5: this_IndexExTable_2= ruleIndexExTable
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getIndexExTableParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleIndexExTable_in_ruleModelElement277);
                    this_IndexExTable_2=ruleIndexExTable();

                    state._fsp--;

                     
                            current = this_IndexExTable_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:151:5: this_Comment_3= ruleComment
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getCommentParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleComment_in_ruleModelElement304);
                    this_Comment_3=ruleComment();

                    state._fsp--;

                     
                            current = this_Comment_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 5 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:161:5: this_Mview_4= ruleMview
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getMviewParserRuleCall_4()); 
                        
                    pushFollow(FOLLOW_ruleMview_in_ruleModelElement331);
                    this_Mview_4=ruleMview();

                    state._fsp--;

                     
                            current = this_Mview_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 6 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:171:5: this_Domain_5= ruleDomain
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getDomainParserRuleCall_5()); 
                        
                    pushFollow(FOLLOW_ruleDomain_in_ruleModelElement358);
                    this_Domain_5=ruleDomain();

                    state._fsp--;

                     
                            current = this_Domain_5; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 7 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:181:5: this_ColumnDomain_6= ruleColumnDomain
                    {
                     
                            newCompositeNode(grammarAccess.getModelElementAccess().getColumnDomainParserRuleCall_6()); 
                        
                    pushFollow(FOLLOW_ruleColumnDomain_in_ruleModelElement385);
                    this_ColumnDomain_6=ruleColumnDomain();

                    state._fsp--;

                     
                            current = this_ColumnDomain_6; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleModelElement"


    // $ANTLR start "entryRuleTable"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:197:1: entryRuleTable returns [EObject current=null] : iv_ruleTable= ruleTable EOF ;
    public final EObject entryRuleTable() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTable = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:198:2: (iv_ruleTable= ruleTable EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:199:2: iv_ruleTable= ruleTable EOF
            {
             newCompositeNode(grammarAccess.getTableRule()); 
            pushFollow(FOLLOW_ruleTable_in_entryRuleTable420);
            iv_ruleTable=ruleTable();

            state._fsp--;

             current =iv_ruleTable; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTable430); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTable"


    // $ANTLR start "ruleTable"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:206:1: ruleTable returns [EObject current=null] : (otherlv_0= 'create' ( (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) ) )? otherlv_3= 'table' ( (lv_name_4_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) ) )? (otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) ) )? (otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) ) )? (otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')' )? (otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows' )? ( (lv_lobStorages_23_0= ruleLobStorage ) )* ( (lv_varrayStorages_24_0= ruleVarrayStorage ) )* ( (lv_nestedTableStorages_25_0= ruleNestedTableStorage ) )* ( (lv_tablePartitioning_26_0= ruleTablePartitioning ) )? (otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) ) )? (otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )? )? (otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) ) )? ( ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )? )? ( (lv_logging_43_0= ruleLoggingType ) )? ( ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )? )? ( (lv_mviewLog_46_0= ruleMviewLog ) )? otherlv_47= ';' ) ;
    public final EObject ruleTable() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token lv_alias_6_0=null;
        Token otherlv_7=null;
        Token lv_domain_8_0=null;
        Token otherlv_9=null;
        Token otherlv_11=null;
        Token otherlv_18=null;
        Token otherlv_19=null;
        Token otherlv_20=null;
        Token otherlv_22=null;
        Token otherlv_27=null;
        Token lv_tablespace_28_0=null;
        Token otherlv_29=null;
        Token lv_indexOrganized_30_0=null;
        Token otherlv_31=null;
        Token otherlv_33=null;
        Token lv_includingColumn_34_0=null;
        Token otherlv_35=null;
        Token otherlv_36=null;
        Token lv_overflowTablespace_37_0=null;
        Token otherlv_38=null;
        Token otherlv_41=null;
        Token lv_parallel_degree_45_0=null;
        Token otherlv_47=null;
        Enumerator lv_permanentness_2_0 = null;

        AntlrDatatypeRuleToken lv_name_4_0 = null;

        AntlrDatatypeRuleToken lv_object_type_10_0 = null;

        EObject lv_columns_12_0 = null;

        EObject lv_primary_key_13_0 = null;

        EObject lv_constraints_14_0 = null;

        EObject lv_ind_uks_15_0 = null;

        EObject lv_foreign_keys_16_0 = null;

        EObject lv_comments_17_0 = null;

        Enumerator lv_transactionControl_21_0 = null;

        EObject lv_lobStorages_23_0 = null;

        EObject lv_varrayStorages_24_0 = null;

        EObject lv_nestedTableStorages_25_0 = null;

        EObject lv_tablePartitioning_26_0 = null;

        AntlrDatatypeRuleToken lv_pctthreshold_32_0 = null;

        AntlrDatatypeRuleToken lv_pctfree_39_0 = null;

        Enumerator lv_compression_40_0 = null;

        Enumerator lv_compressionFor_42_0 = null;

        Enumerator lv_logging_43_0 = null;

        Enumerator lv_parallel_44_0 = null;

        EObject lv_mviewLog_46_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:209:28: ( (otherlv_0= 'create' ( (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) ) )? otherlv_3= 'table' ( (lv_name_4_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) ) )? (otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) ) )? (otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) ) )? (otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')' )? (otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows' )? ( (lv_lobStorages_23_0= ruleLobStorage ) )* ( (lv_varrayStorages_24_0= ruleVarrayStorage ) )* ( (lv_nestedTableStorages_25_0= ruleNestedTableStorage ) )* ( (lv_tablePartitioning_26_0= ruleTablePartitioning ) )? (otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) ) )? (otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )? )? (otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) ) )? ( ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )? )? ( (lv_logging_43_0= ruleLoggingType ) )? ( ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )? )? ( (lv_mviewLog_46_0= ruleMviewLog ) )? otherlv_47= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:210:1: (otherlv_0= 'create' ( (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) ) )? otherlv_3= 'table' ( (lv_name_4_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) ) )? (otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) ) )? (otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) ) )? (otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')' )? (otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows' )? ( (lv_lobStorages_23_0= ruleLobStorage ) )* ( (lv_varrayStorages_24_0= ruleVarrayStorage ) )* ( (lv_nestedTableStorages_25_0= ruleNestedTableStorage ) )* ( (lv_tablePartitioning_26_0= ruleTablePartitioning ) )? (otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) ) )? (otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )? )? (otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) ) )? ( ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )? )? ( (lv_logging_43_0= ruleLoggingType ) )? ( ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )? )? ( (lv_mviewLog_46_0= ruleMviewLog ) )? otherlv_47= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:210:1: (otherlv_0= 'create' ( (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) ) )? otherlv_3= 'table' ( (lv_name_4_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) ) )? (otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) ) )? (otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) ) )? (otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')' )? (otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows' )? ( (lv_lobStorages_23_0= ruleLobStorage ) )* ( (lv_varrayStorages_24_0= ruleVarrayStorage ) )* ( (lv_nestedTableStorages_25_0= ruleNestedTableStorage ) )* ( (lv_tablePartitioning_26_0= ruleTablePartitioning ) )? (otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) ) )? (otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )? )? (otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) ) )? ( ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )? )? ( (lv_logging_43_0= ruleLoggingType ) )? ( ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )? )? ( (lv_mviewLog_46_0= ruleMviewLog ) )? otherlv_47= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:210:3: otherlv_0= 'create' ( (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) ) )? otherlv_3= 'table' ( (lv_name_4_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) ) )? (otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) ) )? (otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) ) )? (otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')' )? (otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows' )? ( (lv_lobStorages_23_0= ruleLobStorage ) )* ( (lv_varrayStorages_24_0= ruleVarrayStorage ) )* ( (lv_nestedTableStorages_25_0= ruleNestedTableStorage ) )* ( (lv_tablePartitioning_26_0= ruleTablePartitioning ) )? (otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) ) )? (otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )? )? (otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) ) )? ( ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )? )? ( (lv_logging_43_0= ruleLoggingType ) )? ( ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )? )? ( (lv_mviewLog_46_0= ruleMviewLog ) )? otherlv_47= ';'
            {
            otherlv_0=(Token)match(input,12,FOLLOW_12_in_ruleTable467); 

                	newLeafNode(otherlv_0, grammarAccess.getTableAccess().getCreateKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:214:1: ( (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) ) )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==13||(LA4_0>=176 && LA4_0<=178)) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:214:2: (otherlv_1= 'global' )? ( (lv_permanentness_2_0= rulePermanentnessType ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:214:2: (otherlv_1= 'global' )?
                    int alt3=2;
                    int LA3_0 = input.LA(1);

                    if ( (LA3_0==13) ) {
                        alt3=1;
                    }
                    switch (alt3) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:214:4: otherlv_1= 'global'
                            {
                            otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleTable481); 

                                	newLeafNode(otherlv_1, grammarAccess.getTableAccess().getGlobalKeyword_1_0());
                                

                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:218:3: ( (lv_permanentness_2_0= rulePermanentnessType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:219:1: (lv_permanentness_2_0= rulePermanentnessType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:219:1: (lv_permanentness_2_0= rulePermanentnessType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:220:3: lv_permanentness_2_0= rulePermanentnessType
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getPermanentnessPermanentnessTypeEnumRuleCall_1_1_0()); 
                    	    
                    pushFollow(FOLLOW_rulePermanentnessType_in_ruleTable504);
                    lv_permanentness_2_0=rulePermanentnessType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"permanentness",
                            		lv_permanentness_2_0, 
                            		"PermanentnessType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleTable518); 

                	newLeafNode(otherlv_3, grammarAccess.getTableAccess().getTableKeyword_2());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:240:1: ( (lv_name_4_0= ruleDBNAME_WITH_SCHEMA ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:241:1: (lv_name_4_0= ruleDBNAME_WITH_SCHEMA )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:241:1: (lv_name_4_0= ruleDBNAME_WITH_SCHEMA )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:242:3: lv_name_4_0= ruleDBNAME_WITH_SCHEMA
            {
             
            	        newCompositeNode(grammarAccess.getTableAccess().getNameDBNAME_WITH_SCHEMAParserRuleCall_3_0()); 
            	    
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleTable539);
            lv_name_4_0=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getTableRule());
            	        }
                   		set(
                   			current, 
                   			"name",
                    		lv_name_4_0, 
                    		"DBNAME_WITH_SCHEMA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:258:2: (otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) ) )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==15) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:258:4: otherlv_5= 'alias' ( (lv_alias_6_0= RULE_DBNAME ) )
                    {
                    otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleTable552); 

                        	newLeafNode(otherlv_5, grammarAccess.getTableAccess().getAliasKeyword_4_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:262:1: ( (lv_alias_6_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:263:1: (lv_alias_6_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:263:1: (lv_alias_6_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:264:3: lv_alias_6_0= RULE_DBNAME
                    {
                    lv_alias_6_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleTable569); 

                    			newLeafNode(lv_alias_6_0, grammarAccess.getTableAccess().getAliasDBNAMETerminalRuleCall_4_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"alias",
                            		lv_alias_6_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:280:4: (otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) ) )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==16) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:280:6: otherlv_7= 'domain' ( (lv_domain_8_0= RULE_DBNAME ) )
                    {
                    otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleTable589); 

                        	newLeafNode(otherlv_7, grammarAccess.getTableAccess().getDomainKeyword_5_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:284:1: ( (lv_domain_8_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:285:1: (lv_domain_8_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:285:1: (lv_domain_8_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:286:3: lv_domain_8_0= RULE_DBNAME
                    {
                    lv_domain_8_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleTable606); 

                    			newLeafNode(lv_domain_8_0, grammarAccess.getTableAccess().getDomainDBNAMETerminalRuleCall_5_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"domain",
                            		lv_domain_8_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:302:4: (otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) ) )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==17) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:302:6: otherlv_9= 'of' ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) )
                    {
                    otherlv_9=(Token)match(input,17,FOLLOW_17_in_ruleTable626); 

                        	newLeafNode(otherlv_9, grammarAccess.getTableAccess().getOfKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:306:1: ( (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:307:1: (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:307:1: (lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:308:3: lv_object_type_10_0= ruleDBNAME_WITH_SCHEMA
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getObject_typeDBNAME_WITH_SCHEMAParserRuleCall_6_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleTable647);
                    lv_object_type_10_0=ruleDBNAME_WITH_SCHEMA();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"object_type",
                            		lv_object_type_10_0, 
                            		"DBNAME_WITH_SCHEMA");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:324:4: (otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')' )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==18) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:324:6: otherlv_11= '(' ( (lv_columns_12_0= ruleColumn ) )* ( (lv_primary_key_13_0= rulePrimaryKey ) )? ( (lv_constraints_14_0= ruleConstraint ) )* ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )* ( (lv_foreign_keys_16_0= ruleForeignKey ) )* ( (lv_comments_17_0= ruleInlineComment ) )* otherlv_18= ')'
                    {
                    otherlv_11=(Token)match(input,18,FOLLOW_18_in_ruleTable662); 

                        	newLeafNode(otherlv_11, grammarAccess.getTableAccess().getLeftParenthesisKeyword_7_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:328:1: ( (lv_columns_12_0= ruleColumn ) )*
                    loop8:
                    do {
                        int alt8=2;
                        int LA8_0 = input.LA(1);

                        if ( (LA8_0==RULE_DBNAME||LA8_0==RULE_STRING) ) {
                            alt8=1;
                        }


                        switch (alt8) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:329:1: (lv_columns_12_0= ruleColumn )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:329:1: (lv_columns_12_0= ruleColumn )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:330:3: lv_columns_12_0= ruleColumn
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getTableAccess().getColumnsColumnParserRuleCall_7_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleColumn_in_ruleTable683);
                    	    lv_columns_12_0=ruleColumn();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"columns",
                    	            		lv_columns_12_0, 
                    	            		"Column");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop8;
                        }
                    } while (true);

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:346:3: ( (lv_primary_key_13_0= rulePrimaryKey ) )?
                    int alt9=2;
                    int LA9_0 = input.LA(1);

                    if ( (LA9_0==56) ) {
                        int LA9_1 = input.LA(2);

                        if ( (LA9_1==RULE_DBNAME) ) {
                            int LA9_4 = input.LA(3);

                            if ( (LA9_4==66) ) {
                                alt9=1;
                            }
                        }
                    }
                    else if ( (LA9_0==66) ) {
                        alt9=1;
                    }
                    switch (alt9) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:347:1: (lv_primary_key_13_0= rulePrimaryKey )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:347:1: (lv_primary_key_13_0= rulePrimaryKey )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:348:3: lv_primary_key_13_0= rulePrimaryKey
                            {
                             
                            	        newCompositeNode(grammarAccess.getTableAccess().getPrimary_keyPrimaryKeyParserRuleCall_7_2_0()); 
                            	    
                            pushFollow(FOLLOW_rulePrimaryKey_in_ruleTable705);
                            lv_primary_key_13_0=rulePrimaryKey();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getTableRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"primary_key",
                                    		lv_primary_key_13_0, 
                                    		"PrimaryKey");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:364:3: ( (lv_constraints_14_0= ruleConstraint ) )*
                    loop10:
                    do {
                        int alt10=2;
                        int LA10_0 = input.LA(1);

                        if ( (LA10_0==56) ) {
                            int LA10_2 = input.LA(2);

                            if ( (LA10_2==RULE_DBNAME) ) {
                                int LA10_3 = input.LA(3);

                                if ( (LA10_3==59) ) {
                                    alt10=1;
                                }


                            }


                        }


                        switch (alt10) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:365:1: (lv_constraints_14_0= ruleConstraint )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:365:1: (lv_constraints_14_0= ruleConstraint )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:366:3: lv_constraints_14_0= ruleConstraint
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getTableAccess().getConstraintsConstraintParserRuleCall_7_3_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleConstraint_in_ruleTable727);
                    	    lv_constraints_14_0=ruleConstraint();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"constraints",
                    	            		lv_constraints_14_0, 
                    	            		"Constraint");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop10;
                        }
                    } while (true);

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:382:3: ( (lv_ind_uks_15_0= ruleIndexOrUniqueKey ) )*
                    loop11:
                    do {
                        int alt11=2;
                        int LA11_0 = input.LA(1);

                        if ( (LA11_0==56) ) {
                            int LA11_1 = input.LA(2);

                            if ( (LA11_1==RULE_DBNAME) ) {
                                int LA11_4 = input.LA(3);

                                if ( (LA11_4==69) ) {
                                    alt11=1;
                                }


                            }


                        }
                        else if ( (LA11_0==25) ) {
                            alt11=1;
                        }


                        switch (alt11) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:383:1: (lv_ind_uks_15_0= ruleIndexOrUniqueKey )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:383:1: (lv_ind_uks_15_0= ruleIndexOrUniqueKey )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:384:3: lv_ind_uks_15_0= ruleIndexOrUniqueKey
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getTableAccess().getInd_uksIndexOrUniqueKeyParserRuleCall_7_4_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleIndexOrUniqueKey_in_ruleTable749);
                    	    lv_ind_uks_15_0=ruleIndexOrUniqueKey();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"ind_uks",
                    	            		lv_ind_uks_15_0, 
                    	            		"IndexOrUniqueKey");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop11;
                        }
                    } while (true);

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:400:3: ( (lv_foreign_keys_16_0= ruleForeignKey ) )*
                    loop12:
                    do {
                        int alt12=2;
                        int LA12_0 = input.LA(1);

                        if ( (LA12_0==56) ) {
                            alt12=1;
                        }


                        switch (alt12) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:401:1: (lv_foreign_keys_16_0= ruleForeignKey )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:401:1: (lv_foreign_keys_16_0= ruleForeignKey )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:402:3: lv_foreign_keys_16_0= ruleForeignKey
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getTableAccess().getForeign_keysForeignKeyParserRuleCall_7_5_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleForeignKey_in_ruleTable771);
                    	    lv_foreign_keys_16_0=ruleForeignKey();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"foreign_keys",
                    	            		lv_foreign_keys_16_0, 
                    	            		"ForeignKey");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop12;
                        }
                    } while (true);

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:418:3: ( (lv_comments_17_0= ruleInlineComment ) )*
                    loop13:
                    do {
                        int alt13=2;
                        int LA13_0 = input.LA(1);

                        if ( (LA13_0==95) ) {
                            alt13=1;
                        }


                        switch (alt13) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:419:1: (lv_comments_17_0= ruleInlineComment )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:419:1: (lv_comments_17_0= ruleInlineComment )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:420:3: lv_comments_17_0= ruleInlineComment
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getTableAccess().getCommentsInlineCommentParserRuleCall_7_6_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleInlineComment_in_ruleTable793);
                    	    lv_comments_17_0=ruleInlineComment();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"comments",
                    	            		lv_comments_17_0, 
                    	            		"InlineComment");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop13;
                        }
                    } while (true);

                    otherlv_18=(Token)match(input,19,FOLLOW_19_in_ruleTable806); 

                        	newLeafNode(otherlv_18, grammarAccess.getTableAccess().getRightParenthesisKeyword_7_7());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:440:3: (otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows' )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==20) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:440:5: otherlv_19= 'on' otherlv_20= 'commit' ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) ) otherlv_22= 'rows'
                    {
                    otherlv_19=(Token)match(input,20,FOLLOW_20_in_ruleTable821); 

                        	newLeafNode(otherlv_19, grammarAccess.getTableAccess().getOnKeyword_8_0());
                        
                    otherlv_20=(Token)match(input,21,FOLLOW_21_in_ruleTable833); 

                        	newLeafNode(otherlv_20, grammarAccess.getTableAccess().getCommitKeyword_8_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:448:1: ( (lv_transactionControl_21_0= rulePermanentnessTransactionType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:449:1: (lv_transactionControl_21_0= rulePermanentnessTransactionType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:449:1: (lv_transactionControl_21_0= rulePermanentnessTransactionType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:450:3: lv_transactionControl_21_0= rulePermanentnessTransactionType
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getTransactionControlPermanentnessTransactionTypeEnumRuleCall_8_2_0()); 
                    	    
                    pushFollow(FOLLOW_rulePermanentnessTransactionType_in_ruleTable854);
                    lv_transactionControl_21_0=rulePermanentnessTransactionType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"transactionControl",
                            		lv_transactionControl_21_0, 
                            		"PermanentnessTransactionType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_22=(Token)match(input,22,FOLLOW_22_in_ruleTable866); 

                        	newLeafNode(otherlv_22, grammarAccess.getTableAccess().getRowsKeyword_8_3());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:470:3: ( (lv_lobStorages_23_0= ruleLobStorage ) )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==46) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:471:1: (lv_lobStorages_23_0= ruleLobStorage )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:471:1: (lv_lobStorages_23_0= ruleLobStorage )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:472:3: lv_lobStorages_23_0= ruleLobStorage
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getTableAccess().getLobStoragesLobStorageParserRuleCall_9_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleLobStorage_in_ruleTable889);
            	    lv_lobStorages_23_0=ruleLobStorage();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getTableRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"lobStorages",
            	            		lv_lobStorages_23_0, 
            	            		"LobStorage");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:488:3: ( (lv_varrayStorages_24_0= ruleVarrayStorage ) )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0==49) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:489:1: (lv_varrayStorages_24_0= ruleVarrayStorage )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:489:1: (lv_varrayStorages_24_0= ruleVarrayStorage )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:490:3: lv_varrayStorages_24_0= ruleVarrayStorage
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getTableAccess().getVarrayStoragesVarrayStorageParserRuleCall_10_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleVarrayStorage_in_ruleTable911);
            	    lv_varrayStorages_24_0=ruleVarrayStorage();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getTableRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"varrayStorages",
            	            		lv_varrayStorages_24_0, 
            	            		"VarrayStorage");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop17;
                }
            } while (true);

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:506:3: ( (lv_nestedTableStorages_25_0= ruleNestedTableStorage ) )*
            loop18:
            do {
                int alt18=2;
                int LA18_0 = input.LA(1);

                if ( (LA18_0==50) ) {
                    alt18=1;
                }


                switch (alt18) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:507:1: (lv_nestedTableStorages_25_0= ruleNestedTableStorage )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:507:1: (lv_nestedTableStorages_25_0= ruleNestedTableStorage )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:508:3: lv_nestedTableStorages_25_0= ruleNestedTableStorage
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getTableAccess().getNestedTableStoragesNestedTableStorageParserRuleCall_11_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleNestedTableStorage_in_ruleTable933);
            	    lv_nestedTableStorages_25_0=ruleNestedTableStorage();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getTableRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"nestedTableStorages",
            	            		lv_nestedTableStorages_25_0, 
            	            		"NestedTableStorage");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop18;
                }
            } while (true);

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:524:3: ( (lv_tablePartitioning_26_0= ruleTablePartitioning ) )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==32) ) {
                alt19=1;
            }
            switch (alt19) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:525:1: (lv_tablePartitioning_26_0= ruleTablePartitioning )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:525:1: (lv_tablePartitioning_26_0= ruleTablePartitioning )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:526:3: lv_tablePartitioning_26_0= ruleTablePartitioning
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getTablePartitioningTablePartitioningParserRuleCall_12_0()); 
                    	    
                    pushFollow(FOLLOW_ruleTablePartitioning_in_ruleTable955);
                    lv_tablePartitioning_26_0=ruleTablePartitioning();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"tablePartitioning",
                            		lv_tablePartitioning_26_0, 
                            		"TablePartitioning");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:542:3: (otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) ) )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==23) ) {
                alt20=1;
            }
            switch (alt20) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:542:5: otherlv_27= 'tablespace' ( (lv_tablespace_28_0= RULE_DBNAME ) )
                    {
                    otherlv_27=(Token)match(input,23,FOLLOW_23_in_ruleTable969); 

                        	newLeafNode(otherlv_27, grammarAccess.getTableAccess().getTablespaceKeyword_13_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:546:1: ( (lv_tablespace_28_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:547:1: (lv_tablespace_28_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:547:1: (lv_tablespace_28_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:548:3: lv_tablespace_28_0= RULE_DBNAME
                    {
                    lv_tablespace_28_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleTable986); 

                    			newLeafNode(lv_tablespace_28_0, grammarAccess.getTableAccess().getTablespaceDBNAMETerminalRuleCall_13_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_28_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:564:4: (otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )? )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==24) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:564:6: otherlv_29= 'organization' ( (lv_indexOrganized_30_0= 'index' ) ) (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )? (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )? (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )?
                    {
                    otherlv_29=(Token)match(input,24,FOLLOW_24_in_ruleTable1006); 

                        	newLeafNode(otherlv_29, grammarAccess.getTableAccess().getOrganizationKeyword_14_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:568:1: ( (lv_indexOrganized_30_0= 'index' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:569:1: (lv_indexOrganized_30_0= 'index' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:569:1: (lv_indexOrganized_30_0= 'index' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:570:3: lv_indexOrganized_30_0= 'index'
                    {
                    lv_indexOrganized_30_0=(Token)match(input,25,FOLLOW_25_in_ruleTable1024); 

                            newLeafNode(lv_indexOrganized_30_0, grammarAccess.getTableAccess().getIndexOrganizedIndexKeyword_14_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTableRule());
                    	        }
                           		setWithLastConsumed(current, "indexOrganized", true, "index");
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:583:2: (otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) ) )?
                    int alt21=2;
                    int LA21_0 = input.LA(1);

                    if ( (LA21_0==26) ) {
                        alt21=1;
                    }
                    switch (alt21) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:583:4: otherlv_31= 'pctthreshold' ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) )
                            {
                            otherlv_31=(Token)match(input,26,FOLLOW_26_in_ruleTable1050); 

                                	newLeafNode(otherlv_31, grammarAccess.getTableAccess().getPctthresholdKeyword_14_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:587:1: ( (lv_pctthreshold_32_0= ruleNULLABLE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:588:1: (lv_pctthreshold_32_0= ruleNULLABLE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:588:1: (lv_pctthreshold_32_0= ruleNULLABLE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:589:3: lv_pctthreshold_32_0= ruleNULLABLE_INT
                            {
                             
                            	        newCompositeNode(grammarAccess.getTableAccess().getPctthresholdNULLABLE_INTParserRuleCall_14_2_1_0()); 
                            	    
                            pushFollow(FOLLOW_ruleNULLABLE_INT_in_ruleTable1071);
                            lv_pctthreshold_32_0=ruleNULLABLE_INT();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getTableRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"pctthreshold",
                                    		lv_pctthreshold_32_0, 
                                    		"NULLABLE_INT");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:605:4: (otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) ) )?
                    int alt22=2;
                    int LA22_0 = input.LA(1);

                    if ( (LA22_0==27) ) {
                        alt22=1;
                    }
                    switch (alt22) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:605:6: otherlv_33= 'including' ( (lv_includingColumn_34_0= RULE_DBNAME ) )
                            {
                            otherlv_33=(Token)match(input,27,FOLLOW_27_in_ruleTable1086); 

                                	newLeafNode(otherlv_33, grammarAccess.getTableAccess().getIncludingKeyword_14_3_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:609:1: ( (lv_includingColumn_34_0= RULE_DBNAME ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:610:1: (lv_includingColumn_34_0= RULE_DBNAME )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:610:1: (lv_includingColumn_34_0= RULE_DBNAME )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:611:3: lv_includingColumn_34_0= RULE_DBNAME
                            {
                            lv_includingColumn_34_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleTable1103); 

                            			newLeafNode(lv_includingColumn_34_0, grammarAccess.getTableAccess().getIncludingColumnDBNAMETerminalRuleCall_14_3_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getTableRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"includingColumn",
                                    		lv_includingColumn_34_0, 
                                    		"DBNAME");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:627:4: (otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) ) )?
                    int alt23=2;
                    int LA23_0 = input.LA(1);

                    if ( (LA23_0==28) ) {
                        alt23=1;
                    }
                    switch (alt23) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:627:6: otherlv_35= 'overflow' otherlv_36= 'tablespace' ( (lv_overflowTablespace_37_0= RULE_DBNAME ) )
                            {
                            otherlv_35=(Token)match(input,28,FOLLOW_28_in_ruleTable1123); 

                                	newLeafNode(otherlv_35, grammarAccess.getTableAccess().getOverflowKeyword_14_4_0());
                                
                            otherlv_36=(Token)match(input,23,FOLLOW_23_in_ruleTable1135); 

                                	newLeafNode(otherlv_36, grammarAccess.getTableAccess().getTablespaceKeyword_14_4_1());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:635:1: ( (lv_overflowTablespace_37_0= RULE_DBNAME ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:636:1: (lv_overflowTablespace_37_0= RULE_DBNAME )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:636:1: (lv_overflowTablespace_37_0= RULE_DBNAME )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:637:3: lv_overflowTablespace_37_0= RULE_DBNAME
                            {
                            lv_overflowTablespace_37_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleTable1152); 

                            			newLeafNode(lv_overflowTablespace_37_0, grammarAccess.getTableAccess().getOverflowTablespaceDBNAMETerminalRuleCall_14_4_2_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getTableRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"overflowTablespace",
                                    		lv_overflowTablespace_37_0, 
                                    		"DBNAME");
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:653:6: (otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) ) )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==29) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:653:8: otherlv_38= 'pctfree' ( (lv_pctfree_39_0= ruleNULLABLE_INT ) )
                    {
                    otherlv_38=(Token)match(input,29,FOLLOW_29_in_ruleTable1174); 

                        	newLeafNode(otherlv_38, grammarAccess.getTableAccess().getPctfreeKeyword_15_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:657:1: ( (lv_pctfree_39_0= ruleNULLABLE_INT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:658:1: (lv_pctfree_39_0= ruleNULLABLE_INT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:658:1: (lv_pctfree_39_0= ruleNULLABLE_INT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:659:3: lv_pctfree_39_0= ruleNULLABLE_INT
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getPctfreeNULLABLE_INTParserRuleCall_15_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleNULLABLE_INT_in_ruleTable1195);
                    lv_pctfree_39_0=ruleNULLABLE_INT();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"pctfree",
                            		lv_pctfree_39_0, 
                            		"NULLABLE_INT");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:675:4: ( ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )? )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( ((LA27_0>=198 && LA27_0<=200)) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:675:5: ( (lv_compression_40_0= ruleCompressType ) ) (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:675:5: ( (lv_compression_40_0= ruleCompressType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:676:1: (lv_compression_40_0= ruleCompressType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:676:1: (lv_compression_40_0= ruleCompressType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:677:3: lv_compression_40_0= ruleCompressType
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getCompressionCompressTypeEnumRuleCall_16_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCompressType_in_ruleTable1219);
                    lv_compression_40_0=ruleCompressType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"compression",
                            		lv_compression_40_0, 
                            		"CompressType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:693:2: (otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) ) )?
                    int alt26=2;
                    int LA26_0 = input.LA(1);

                    if ( (LA26_0==30) ) {
                        alt26=1;
                    }
                    switch (alt26) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:693:4: otherlv_41= 'for' ( (lv_compressionFor_42_0= ruleCompressForType ) )
                            {
                            otherlv_41=(Token)match(input,30,FOLLOW_30_in_ruleTable1232); 

                                	newLeafNode(otherlv_41, grammarAccess.getTableAccess().getForKeyword_16_1_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:697:1: ( (lv_compressionFor_42_0= ruleCompressForType ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:698:1: (lv_compressionFor_42_0= ruleCompressForType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:698:1: (lv_compressionFor_42_0= ruleCompressForType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:699:3: lv_compressionFor_42_0= ruleCompressForType
                            {
                             
                            	        newCompositeNode(grammarAccess.getTableAccess().getCompressionForCompressForTypeEnumRuleCall_16_1_1_0()); 
                            	    
                            pushFollow(FOLLOW_ruleCompressForType_in_ruleTable1253);
                            lv_compressionFor_42_0=ruleCompressForType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getTableRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"compressionFor",
                                    		lv_compressionFor_42_0, 
                                    		"CompressForType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:715:6: ( (lv_logging_43_0= ruleLoggingType ) )?
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( ((LA28_0>=164 && LA28_0<=166)) ) {
                alt28=1;
            }
            switch (alt28) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:716:1: (lv_logging_43_0= ruleLoggingType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:716:1: (lv_logging_43_0= ruleLoggingType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:717:3: lv_logging_43_0= ruleLoggingType
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getLoggingLoggingTypeEnumRuleCall_17_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLoggingType_in_ruleTable1278);
                    lv_logging_43_0=ruleLoggingType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"logging",
                            		lv_logging_43_0, 
                            		"LoggingType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:733:3: ( ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )? )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( ((LA30_0>=170 && LA30_0<=172)) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:733:4: ( (lv_parallel_44_0= ruleParallelType ) ) ( (lv_parallel_degree_45_0= RULE_INT ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:733:4: ( (lv_parallel_44_0= ruleParallelType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:734:1: (lv_parallel_44_0= ruleParallelType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:734:1: (lv_parallel_44_0= ruleParallelType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:735:3: lv_parallel_44_0= ruleParallelType
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getParallelParallelTypeEnumRuleCall_18_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleParallelType_in_ruleTable1301);
                    lv_parallel_44_0=ruleParallelType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"parallel",
                            		lv_parallel_44_0, 
                            		"ParallelType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:751:2: ( (lv_parallel_degree_45_0= RULE_INT ) )?
                    int alt29=2;
                    int LA29_0 = input.LA(1);

                    if ( (LA29_0==RULE_INT) ) {
                        alt29=1;
                    }
                    switch (alt29) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:752:1: (lv_parallel_degree_45_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:752:1: (lv_parallel_degree_45_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:753:3: lv_parallel_degree_45_0= RULE_INT
                            {
                            lv_parallel_degree_45_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleTable1318); 

                            			newLeafNode(lv_parallel_degree_45_0, grammarAccess.getTableAccess().getParallel_degreeINTTerminalRuleCall_18_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getTableRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"parallel_degree",
                                    		lv_parallel_degree_45_0, 
                                    		"INT");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:769:5: ( (lv_mviewLog_46_0= ruleMviewLog ) )?
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( (LA31_0==83) ) {
                alt31=1;
            }
            switch (alt31) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:770:1: (lv_mviewLog_46_0= ruleMviewLog )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:770:1: (lv_mviewLog_46_0= ruleMviewLog )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:771:3: lv_mviewLog_46_0= ruleMviewLog
                    {
                     
                    	        newCompositeNode(grammarAccess.getTableAccess().getMviewLogMviewLogParserRuleCall_19_0()); 
                    	    
                    pushFollow(FOLLOW_ruleMviewLog_in_ruleTable1347);
                    lv_mviewLog_46_0=ruleMviewLog();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getTableRule());
                    	        }
                           		set(
                           			current, 
                           			"mviewLog",
                            		lv_mviewLog_46_0, 
                            		"MviewLog");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            otherlv_47=(Token)match(input,31,FOLLOW_31_in_ruleTable1360); 

                	newLeafNode(otherlv_47, grammarAccess.getTableAccess().getSemicolonKeyword_20());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTable"


    // $ANTLR start "entryRuleTablePartitioning"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:799:1: entryRuleTablePartitioning returns [EObject current=null] : iv_ruleTablePartitioning= ruleTablePartitioning EOF ;
    public final EObject entryRuleTablePartitioning() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTablePartitioning = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:800:2: (iv_ruleTablePartitioning= ruleTablePartitioning EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:801:2: iv_ruleTablePartitioning= ruleTablePartitioning EOF
            {
             newCompositeNode(grammarAccess.getTablePartitioningRule()); 
            pushFollow(FOLLOW_ruleTablePartitioning_in_entryRuleTablePartitioning1396);
            iv_ruleTablePartitioning=ruleTablePartitioning();

            state._fsp--;

             current =iv_ruleTablePartitioning; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTablePartitioning1406); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTablePartitioning"


    // $ANTLR start "ruleTablePartitioning"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:808:1: ruleTablePartitioning returns [EObject current=null] : (otherlv_0= 'partition' otherlv_1= 'by' (this_RangePartitions_2= ruleRangePartitions | this_HashPartitions_3= ruleHashPartitions | this_ListPartitions_4= ruleListPartitions | this_RefPartitions_5= ruleRefPartitions ) ) ;
    public final EObject ruleTablePartitioning() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        EObject this_RangePartitions_2 = null;

        EObject this_HashPartitions_3 = null;

        EObject this_ListPartitions_4 = null;

        EObject this_RefPartitions_5 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:811:28: ( (otherlv_0= 'partition' otherlv_1= 'by' (this_RangePartitions_2= ruleRangePartitions | this_HashPartitions_3= ruleHashPartitions | this_ListPartitions_4= ruleListPartitions | this_RefPartitions_5= ruleRefPartitions ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:812:1: (otherlv_0= 'partition' otherlv_1= 'by' (this_RangePartitions_2= ruleRangePartitions | this_HashPartitions_3= ruleHashPartitions | this_ListPartitions_4= ruleListPartitions | this_RefPartitions_5= ruleRefPartitions ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:812:1: (otherlv_0= 'partition' otherlv_1= 'by' (this_RangePartitions_2= ruleRangePartitions | this_HashPartitions_3= ruleHashPartitions | this_ListPartitions_4= ruleListPartitions | this_RefPartitions_5= ruleRefPartitions ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:812:3: otherlv_0= 'partition' otherlv_1= 'by' (this_RangePartitions_2= ruleRangePartitions | this_HashPartitions_3= ruleHashPartitions | this_ListPartitions_4= ruleListPartitions | this_RefPartitions_5= ruleRefPartitions )
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleTablePartitioning1443); 

                	newLeafNode(otherlv_0, grammarAccess.getTablePartitioningAccess().getPartitionKeyword_0());
                
            otherlv_1=(Token)match(input,33,FOLLOW_33_in_ruleTablePartitioning1455); 

                	newLeafNode(otherlv_1, grammarAccess.getTablePartitioningAccess().getByKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:820:1: (this_RangePartitions_2= ruleRangePartitions | this_HashPartitions_3= ruleHashPartitions | this_ListPartitions_4= ruleListPartitions | this_RefPartitions_5= ruleRefPartitions )
            int alt32=4;
            switch ( input.LA(1) ) {
            case 34:
                {
                alt32=1;
                }
                break;
            case 38:
                {
                alt32=2;
                }
                break;
            case 37:
                {
                alt32=3;
                }
                break;
            case 44:
                {
                alt32=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }

            switch (alt32) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:821:5: this_RangePartitions_2= ruleRangePartitions
                    {
                     
                            newCompositeNode(grammarAccess.getTablePartitioningAccess().getRangePartitionsParserRuleCall_2_0()); 
                        
                    pushFollow(FOLLOW_ruleRangePartitions_in_ruleTablePartitioning1478);
                    this_RangePartitions_2=ruleRangePartitions();

                    state._fsp--;

                     
                            current = this_RangePartitions_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:831:5: this_HashPartitions_3= ruleHashPartitions
                    {
                     
                            newCompositeNode(grammarAccess.getTablePartitioningAccess().getHashPartitionsParserRuleCall_2_1()); 
                        
                    pushFollow(FOLLOW_ruleHashPartitions_in_ruleTablePartitioning1505);
                    this_HashPartitions_3=ruleHashPartitions();

                    state._fsp--;

                     
                            current = this_HashPartitions_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:841:5: this_ListPartitions_4= ruleListPartitions
                    {
                     
                            newCompositeNode(grammarAccess.getTablePartitioningAccess().getListPartitionsParserRuleCall_2_2()); 
                        
                    pushFollow(FOLLOW_ruleListPartitions_in_ruleTablePartitioning1532);
                    this_ListPartitions_4=ruleListPartitions();

                    state._fsp--;

                     
                            current = this_ListPartitions_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:851:5: this_RefPartitions_5= ruleRefPartitions
                    {
                     
                            newCompositeNode(grammarAccess.getTablePartitioningAccess().getRefPartitionsParserRuleCall_2_3()); 
                        
                    pushFollow(FOLLOW_ruleRefPartitions_in_ruleTablePartitioning1559);
                    this_RefPartitions_5=ruleRefPartitions();

                    state._fsp--;

                     
                            current = this_RefPartitions_5; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTablePartitioning"


    // $ANTLR start "entryRuleRangePartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:867:1: entryRuleRangePartitions returns [EObject current=null] : iv_ruleRangePartitions= ruleRangePartitions EOF ;
    public final EObject entryRuleRangePartitions() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangePartitions = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:868:2: (iv_ruleRangePartitions= ruleRangePartitions EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:869:2: iv_ruleRangePartitions= ruleRangePartitions EOF
            {
             newCompositeNode(grammarAccess.getRangePartitionsRule()); 
            pushFollow(FOLLOW_ruleRangePartitions_in_entryRuleRangePartitions1595);
            iv_ruleRangePartitions=ruleRangePartitions();

            state._fsp--;

             current =iv_ruleRangePartitions; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangePartitions1605); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangePartitions"


    // $ANTLR start "ruleRangePartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:876:1: ruleRangePartitions returns [EObject current=null] : (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' (otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')' )? ( (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' ) | ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' ) ) ) ;
    public final EObject ruleRangePartitions() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token lv_intervalExpression_6_0=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token otherlv_10=null;
        Token otherlv_12=null;
        Token otherlv_14=null;
        EObject lv_columns_2_0 = null;

        EObject lv_partitionList_9_0 = null;

        EObject lv_tableSubPart_11_0 = null;

        EObject lv_subPartitionList_13_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:879:28: ( (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' (otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')' )? ( (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' ) | ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' ) ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:880:1: (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' (otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')' )? ( (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' ) | ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' ) ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:880:1: (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' (otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')' )? ( (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' ) | ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:880:3: otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' (otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')' )? ( (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' ) | ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' ) )
            {
            otherlv_0=(Token)match(input,34,FOLLOW_34_in_ruleRangePartitions1642); 

                	newLeafNode(otherlv_0, grammarAccess.getRangePartitionsAccess().getRangeKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleRangePartitions1654); 

                	newLeafNode(otherlv_1, grammarAccess.getRangePartitionsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:888:1: ( (lv_columns_2_0= ruleColumnRef ) )+
            int cnt33=0;
            loop33:
            do {
                int alt33=2;
                int LA33_0 = input.LA(1);

                if ( (LA33_0==RULE_DBNAME||LA33_0==RULE_STRING) ) {
                    alt33=1;
                }


                switch (alt33) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:889:1: (lv_columns_2_0= ruleColumnRef )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:889:1: (lv_columns_2_0= ruleColumnRef )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:890:3: lv_columns_2_0= ruleColumnRef
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRangePartitionsAccess().getColumnsColumnRefParserRuleCall_2_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleColumnRef_in_ruleRangePartitions1675);
            	    lv_columns_2_0=ruleColumnRef();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRangePartitionsRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"columns",
            	            		lv_columns_2_0, 
            	            		"ColumnRef");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt33 >= 1 ) break loop33;
                        EarlyExitException eee =
                            new EarlyExitException(33, input);
                        throw eee;
                }
                cnt33++;
            } while (true);

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleRangePartitions1688); 

                	newLeafNode(otherlv_3, grammarAccess.getRangePartitionsAccess().getRightParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:910:1: (otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')' )?
            int alt34=2;
            int LA34_0 = input.LA(1);

            if ( (LA34_0==35) ) {
                alt34=1;
            }
            switch (alt34) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:910:3: otherlv_4= 'interval' otherlv_5= '(' ( (lv_intervalExpression_6_0= RULE_STRING ) ) otherlv_7= ')'
                    {
                    otherlv_4=(Token)match(input,35,FOLLOW_35_in_ruleRangePartitions1701); 

                        	newLeafNode(otherlv_4, grammarAccess.getRangePartitionsAccess().getIntervalKeyword_4_0());
                        
                    otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleRangePartitions1713); 

                        	newLeafNode(otherlv_5, grammarAccess.getRangePartitionsAccess().getLeftParenthesisKeyword_4_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:918:1: ( (lv_intervalExpression_6_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:919:1: (lv_intervalExpression_6_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:919:1: (lv_intervalExpression_6_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:920:3: lv_intervalExpression_6_0= RULE_STRING
                    {
                    lv_intervalExpression_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleRangePartitions1730); 

                    			newLeafNode(lv_intervalExpression_6_0, grammarAccess.getRangePartitionsAccess().getIntervalExpressionSTRINGTerminalRuleCall_4_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getRangePartitionsRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"intervalExpression",
                            		lv_intervalExpression_6_0, 
                            		"STRING");
                    	    

                    }


                    }

                    otherlv_7=(Token)match(input,19,FOLLOW_19_in_ruleRangePartitions1747); 

                        	newLeafNode(otherlv_7, grammarAccess.getRangePartitionsAccess().getRightParenthesisKeyword_4_3());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:940:3: ( (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' ) | ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' ) )
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( (LA37_0==18) ) {
                alt37=1;
            }
            else if ( (LA37_0==36) ) {
                alt37=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 37, 0, input);

                throw nvae;
            }
            switch (alt37) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:940:4: (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:940:4: (otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:940:6: otherlv_8= '(' ( (lv_partitionList_9_0= ruleRangePartition ) )+ otherlv_10= ')'
                    {
                    otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleRangePartitions1763); 

                        	newLeafNode(otherlv_8, grammarAccess.getRangePartitionsAccess().getLeftParenthesisKeyword_5_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:944:1: ( (lv_partitionList_9_0= ruleRangePartition ) )+
                    int cnt35=0;
                    loop35:
                    do {
                        int alt35=2;
                        int LA35_0 = input.LA(1);

                        if ( (LA35_0==32) ) {
                            alt35=1;
                        }


                        switch (alt35) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:945:1: (lv_partitionList_9_0= ruleRangePartition )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:945:1: (lv_partitionList_9_0= ruleRangePartition )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:946:3: lv_partitionList_9_0= ruleRangePartition
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getRangePartitionsAccess().getPartitionListRangePartitionParserRuleCall_5_0_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleRangePartition_in_ruleRangePartitions1784);
                    	    lv_partitionList_9_0=ruleRangePartition();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getRangePartitionsRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"partitionList",
                    	            		lv_partitionList_9_0, 
                    	            		"RangePartition");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt35 >= 1 ) break loop35;
                                EarlyExitException eee =
                                    new EarlyExitException(35, input);
                                throw eee;
                        }
                        cnt35++;
                    } while (true);

                    otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleRangePartitions1797); 

                        	newLeafNode(otherlv_10, grammarAccess.getRangePartitionsAccess().getRightParenthesisKeyword_5_0_2());
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:967:6: ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:967:6: ( ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:967:7: ( (lv_tableSubPart_11_0= ruleTableSubPart ) ) otherlv_12= '(' ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+ otherlv_14= ')'
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:967:7: ( (lv_tableSubPart_11_0= ruleTableSubPart ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:968:1: (lv_tableSubPart_11_0= ruleTableSubPart )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:968:1: (lv_tableSubPart_11_0= ruleTableSubPart )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:969:3: lv_tableSubPart_11_0= ruleTableSubPart
                    {
                     
                    	        newCompositeNode(grammarAccess.getRangePartitionsAccess().getTableSubPartTableSubPartParserRuleCall_5_1_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleTableSubPart_in_ruleRangePartitions1826);
                    lv_tableSubPart_11_0=ruleTableSubPart();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getRangePartitionsRule());
                    	        }
                           		set(
                           			current, 
                           			"tableSubPart",
                            		lv_tableSubPart_11_0, 
                            		"TableSubPart");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_12=(Token)match(input,18,FOLLOW_18_in_ruleRangePartitions1838); 

                        	newLeafNode(otherlv_12, grammarAccess.getRangePartitionsAccess().getLeftParenthesisKeyword_5_1_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:989:1: ( (lv_subPartitionList_13_0= ruleRangeSubPart ) )+
                    int cnt36=0;
                    loop36:
                    do {
                        int alt36=2;
                        int LA36_0 = input.LA(1);

                        if ( (LA36_0==32) ) {
                            alt36=1;
                        }


                        switch (alt36) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:990:1: (lv_subPartitionList_13_0= ruleRangeSubPart )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:990:1: (lv_subPartitionList_13_0= ruleRangeSubPart )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:991:3: lv_subPartitionList_13_0= ruleRangeSubPart
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getRangePartitionsAccess().getSubPartitionListRangeSubPartParserRuleCall_5_1_2_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleRangeSubPart_in_ruleRangePartitions1859);
                    	    lv_subPartitionList_13_0=ruleRangeSubPart();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getRangePartitionsRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"subPartitionList",
                    	            		lv_subPartitionList_13_0, 
                    	            		"RangeSubPart");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt36 >= 1 ) break loop36;
                                EarlyExitException eee =
                                    new EarlyExitException(36, input);
                                throw eee;
                        }
                        cnt36++;
                    } while (true);

                    otherlv_14=(Token)match(input,19,FOLLOW_19_in_ruleRangePartitions1872); 

                        	newLeafNode(otherlv_14, grammarAccess.getRangePartitionsAccess().getRightParenthesisKeyword_5_1_3());
                        

                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangePartitions"


    // $ANTLR start "entryRuleTableSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1019:1: entryRuleTableSubPart returns [EObject current=null] : iv_ruleTableSubPart= ruleTableSubPart EOF ;
    public final EObject entryRuleTableSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTableSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1020:2: (iv_ruleTableSubPart= ruleTableSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1021:2: iv_ruleTableSubPart= ruleTableSubPart EOF
            {
             newCompositeNode(grammarAccess.getTableSubPartRule()); 
            pushFollow(FOLLOW_ruleTableSubPart_in_entryRuleTableSubPart1910);
            iv_ruleTableSubPart=ruleTableSubPart();

            state._fsp--;

             current =iv_ruleTableSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTableSubPart1920); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTableSubPart"


    // $ANTLR start "ruleTableSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1028:1: ruleTableSubPart returns [EObject current=null] : (otherlv_0= 'subpartition' otherlv_1= 'by' (this_RangeSubParts_2= ruleRangeSubParts | this_ListSubParts_3= ruleListSubParts | this_HashSubParts_4= ruleHashSubParts ) ) ;
    public final EObject ruleTableSubPart() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        EObject this_RangeSubParts_2 = null;

        EObject this_ListSubParts_3 = null;

        EObject this_HashSubParts_4 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1031:28: ( (otherlv_0= 'subpartition' otherlv_1= 'by' (this_RangeSubParts_2= ruleRangeSubParts | this_ListSubParts_3= ruleListSubParts | this_HashSubParts_4= ruleHashSubParts ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1032:1: (otherlv_0= 'subpartition' otherlv_1= 'by' (this_RangeSubParts_2= ruleRangeSubParts | this_ListSubParts_3= ruleListSubParts | this_HashSubParts_4= ruleHashSubParts ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1032:1: (otherlv_0= 'subpartition' otherlv_1= 'by' (this_RangeSubParts_2= ruleRangeSubParts | this_ListSubParts_3= ruleListSubParts | this_HashSubParts_4= ruleHashSubParts ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1032:3: otherlv_0= 'subpartition' otherlv_1= 'by' (this_RangeSubParts_2= ruleRangeSubParts | this_ListSubParts_3= ruleListSubParts | this_HashSubParts_4= ruleHashSubParts )
            {
            otherlv_0=(Token)match(input,36,FOLLOW_36_in_ruleTableSubPart1957); 

                	newLeafNode(otherlv_0, grammarAccess.getTableSubPartAccess().getSubpartitionKeyword_0());
                
            otherlv_1=(Token)match(input,33,FOLLOW_33_in_ruleTableSubPart1969); 

                	newLeafNode(otherlv_1, grammarAccess.getTableSubPartAccess().getByKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1040:1: (this_RangeSubParts_2= ruleRangeSubParts | this_ListSubParts_3= ruleListSubParts | this_HashSubParts_4= ruleHashSubParts )
            int alt38=3;
            switch ( input.LA(1) ) {
            case 34:
                {
                alt38=1;
                }
                break;
            case 37:
                {
                alt38=2;
                }
                break;
            case 38:
                {
                alt38=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 38, 0, input);

                throw nvae;
            }

            switch (alt38) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1041:5: this_RangeSubParts_2= ruleRangeSubParts
                    {
                     
                            newCompositeNode(grammarAccess.getTableSubPartAccess().getRangeSubPartsParserRuleCall_2_0()); 
                        
                    pushFollow(FOLLOW_ruleRangeSubParts_in_ruleTableSubPart1992);
                    this_RangeSubParts_2=ruleRangeSubParts();

                    state._fsp--;

                     
                            current = this_RangeSubParts_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1051:5: this_ListSubParts_3= ruleListSubParts
                    {
                     
                            newCompositeNode(grammarAccess.getTableSubPartAccess().getListSubPartsParserRuleCall_2_1()); 
                        
                    pushFollow(FOLLOW_ruleListSubParts_in_ruleTableSubPart2019);
                    this_ListSubParts_3=ruleListSubParts();

                    state._fsp--;

                     
                            current = this_ListSubParts_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1061:5: this_HashSubParts_4= ruleHashSubParts
                    {
                     
                            newCompositeNode(grammarAccess.getTableSubPartAccess().getHashSubPartsParserRuleCall_2_2()); 
                        
                    pushFollow(FOLLOW_ruleHashSubParts_in_ruleTableSubPart2046);
                    this_HashSubParts_4=ruleHashSubParts();

                    state._fsp--;

                     
                            current = this_HashSubParts_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTableSubPart"


    // $ANTLR start "entryRuleRangeSubParts"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1077:1: entryRuleRangeSubParts returns [EObject current=null] : iv_ruleRangeSubParts= ruleRangeSubParts EOF ;
    public final EObject entryRuleRangeSubParts() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangeSubParts = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1078:2: (iv_ruleRangeSubParts= ruleRangeSubParts EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1079:2: iv_ruleRangeSubParts= ruleRangeSubParts EOF
            {
             newCompositeNode(grammarAccess.getRangeSubPartsRule()); 
            pushFollow(FOLLOW_ruleRangeSubParts_in_entryRuleRangeSubParts2082);
            iv_ruleRangeSubParts=ruleRangeSubParts();

            state._fsp--;

             current =iv_ruleRangeSubParts; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangeSubParts2092); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangeSubParts"


    // $ANTLR start "ruleRangeSubParts"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1086:1: ruleRangeSubParts returns [EObject current=null] : (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' ) ;
    public final EObject ruleRangeSubParts() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        EObject lv_columns_2_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1089:28: ( (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1090:1: (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1090:1: (otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1090:3: otherlv_0= 'range' otherlv_1= '(' ( (lv_columns_2_0= ruleColumnRef ) )+ otherlv_3= ')'
            {
            otherlv_0=(Token)match(input,34,FOLLOW_34_in_ruleRangeSubParts2129); 

                	newLeafNode(otherlv_0, grammarAccess.getRangeSubPartsAccess().getRangeKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleRangeSubParts2141); 

                	newLeafNode(otherlv_1, grammarAccess.getRangeSubPartsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1098:1: ( (lv_columns_2_0= ruleColumnRef ) )+
            int cnt39=0;
            loop39:
            do {
                int alt39=2;
                int LA39_0 = input.LA(1);

                if ( (LA39_0==RULE_DBNAME||LA39_0==RULE_STRING) ) {
                    alt39=1;
                }


                switch (alt39) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1099:1: (lv_columns_2_0= ruleColumnRef )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1099:1: (lv_columns_2_0= ruleColumnRef )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1100:3: lv_columns_2_0= ruleColumnRef
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRangeSubPartsAccess().getColumnsColumnRefParserRuleCall_2_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleColumnRef_in_ruleRangeSubParts2162);
            	    lv_columns_2_0=ruleColumnRef();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRangeSubPartsRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"columns",
            	            		lv_columns_2_0, 
            	            		"ColumnRef");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt39 >= 1 ) break loop39;
                        EarlyExitException eee =
                            new EarlyExitException(39, input);
                        throw eee;
                }
                cnt39++;
            } while (true);

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleRangeSubParts2175); 

                	newLeafNode(otherlv_3, grammarAccess.getRangeSubPartsAccess().getRightParenthesisKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangeSubParts"


    // $ANTLR start "entryRuleListSubParts"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1128:1: entryRuleListSubParts returns [EObject current=null] : iv_ruleListSubParts= ruleListSubParts EOF ;
    public final EObject entryRuleListSubParts() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleListSubParts = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1129:2: (iv_ruleListSubParts= ruleListSubParts EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1130:2: iv_ruleListSubParts= ruleListSubParts EOF
            {
             newCompositeNode(grammarAccess.getListSubPartsRule()); 
            pushFollow(FOLLOW_ruleListSubParts_in_entryRuleListSubParts2211);
            iv_ruleListSubParts=ruleListSubParts();

            state._fsp--;

             current =iv_ruleListSubParts; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleListSubParts2221); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleListSubParts"


    // $ANTLR start "ruleListSubParts"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1137:1: ruleListSubParts returns [EObject current=null] : (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ) ;
    public final EObject ruleListSubParts() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        EObject lv_column_2_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1140:28: ( (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1141:1: (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1141:1: (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1141:3: otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')'
            {
            otherlv_0=(Token)match(input,37,FOLLOW_37_in_ruleListSubParts2258); 

                	newLeafNode(otherlv_0, grammarAccess.getListSubPartsAccess().getListKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleListSubParts2270); 

                	newLeafNode(otherlv_1, grammarAccess.getListSubPartsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1149:1: ( (lv_column_2_0= ruleColumnRef ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1150:1: (lv_column_2_0= ruleColumnRef )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1150:1: (lv_column_2_0= ruleColumnRef )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1151:3: lv_column_2_0= ruleColumnRef
            {
             
            	        newCompositeNode(grammarAccess.getListSubPartsAccess().getColumnColumnRefParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleColumnRef_in_ruleListSubParts2291);
            lv_column_2_0=ruleColumnRef();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getListSubPartsRule());
            	        }
                   		set(
                   			current, 
                   			"column",
                    		lv_column_2_0, 
                    		"ColumnRef");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleListSubParts2303); 

                	newLeafNode(otherlv_3, grammarAccess.getListSubPartsAccess().getRightParenthesisKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleListSubParts"


    // $ANTLR start "entryRuleHashSubParts"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1179:1: entryRuleHashSubParts returns [EObject current=null] : iv_ruleHashSubParts= ruleHashSubParts EOF ;
    public final EObject entryRuleHashSubParts() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleHashSubParts = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1180:2: (iv_ruleHashSubParts= ruleHashSubParts EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1181:2: iv_ruleHashSubParts= ruleHashSubParts EOF
            {
             newCompositeNode(grammarAccess.getHashSubPartsRule()); 
            pushFollow(FOLLOW_ruleHashSubParts_in_entryRuleHashSubParts2339);
            iv_ruleHashSubParts=ruleHashSubParts();

            state._fsp--;

             current =iv_ruleHashSubParts; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleHashSubParts2349); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleHashSubParts"


    // $ANTLR start "ruleHashSubParts"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1188:1: ruleHashSubParts returns [EObject current=null] : (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ) ;
    public final EObject ruleHashSubParts() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        EObject lv_column_2_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1191:28: ( (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1192:1: (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1192:1: (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1192:3: otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')'
            {
            otherlv_0=(Token)match(input,38,FOLLOW_38_in_ruleHashSubParts2386); 

                	newLeafNode(otherlv_0, grammarAccess.getHashSubPartsAccess().getHashKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleHashSubParts2398); 

                	newLeafNode(otherlv_1, grammarAccess.getHashSubPartsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1200:1: ( (lv_column_2_0= ruleColumnRef ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1201:1: (lv_column_2_0= ruleColumnRef )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1201:1: (lv_column_2_0= ruleColumnRef )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1202:3: lv_column_2_0= ruleColumnRef
            {
             
            	        newCompositeNode(grammarAccess.getHashSubPartsAccess().getColumnColumnRefParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleColumnRef_in_ruleHashSubParts2419);
            lv_column_2_0=ruleColumnRef();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getHashSubPartsRule());
            	        }
                   		set(
                   			current, 
                   			"column",
                    		lv_column_2_0, 
                    		"ColumnRef");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleHashSubParts2431); 

                	newLeafNode(otherlv_3, grammarAccess.getHashSubPartsAccess().getRightParenthesisKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleHashSubParts"


    // $ANTLR start "entryRuleRangeSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1230:1: entryRuleRangeSubPart returns [EObject current=null] : iv_ruleRangeSubPart= ruleRangeSubPart EOF ;
    public final EObject entryRuleRangeSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangeSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1231:2: (iv_ruleRangeSubPart= ruleRangeSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1232:2: iv_ruleRangeSubPart= ruleRangeSubPart EOF
            {
             newCompositeNode(grammarAccess.getRangeSubPartRule()); 
            pushFollow(FOLLOW_ruleRangeSubPart_in_entryRuleRangeSubPart2467);
            iv_ruleRangeSubPart=ruleRangeSubPart();

            state._fsp--;

             current =iv_ruleRangeSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangeSubPart2477); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangeSubPart"


    // $ANTLR start "ruleRangeSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1239:1: ruleRangeSubPart returns [EObject current=null] : (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' otherlv_8= '(' ( (lv_subPartList_9_0= ruleSubSubPart ) )+ otherlv_10= ')' (otherlv_11= ',' )? ) ;
    public final EObject ruleRangeSubPart() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token otherlv_10=null;
        Token otherlv_11=null;
        EObject lv_value_6_0 = null;

        EObject lv_subPartList_9_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1242:28: ( (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' otherlv_8= '(' ( (lv_subPartList_9_0= ruleSubSubPart ) )+ otherlv_10= ')' (otherlv_11= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1243:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' otherlv_8= '(' ( (lv_subPartList_9_0= ruleSubSubPart ) )+ otherlv_10= ')' (otherlv_11= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1243:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' otherlv_8= '(' ( (lv_subPartList_9_0= ruleSubSubPart ) )+ otherlv_10= ')' (otherlv_11= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1243:3: otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' otherlv_8= '(' ( (lv_subPartList_9_0= ruleSubSubPart ) )+ otherlv_10= ')' (otherlv_11= ',' )?
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleRangeSubPart2514); 

                	newLeafNode(otherlv_0, grammarAccess.getRangeSubPartAccess().getPartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1247:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1248:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1248:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1249:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRangeSubPart2531); 

            			newLeafNode(lv_name_1_0, grammarAccess.getRangeSubPartAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRangeSubPartRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,39,FOLLOW_39_in_ruleRangeSubPart2548); 

                	newLeafNode(otherlv_2, grammarAccess.getRangeSubPartAccess().getValuesKeyword_2());
                
            otherlv_3=(Token)match(input,40,FOLLOW_40_in_ruleRangeSubPart2560); 

                	newLeafNode(otherlv_3, grammarAccess.getRangeSubPartAccess().getLessKeyword_3());
                
            otherlv_4=(Token)match(input,41,FOLLOW_41_in_ruleRangeSubPart2572); 

                	newLeafNode(otherlv_4, grammarAccess.getRangeSubPartAccess().getThanKeyword_4());
                
            otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleRangeSubPart2584); 

                	newLeafNode(otherlv_5, grammarAccess.getRangeSubPartAccess().getLeftParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1281:1: ( (lv_value_6_0= ruleRangePartitionValue ) )+
            int cnt40=0;
            loop40:
            do {
                int alt40=2;
                int LA40_0 = input.LA(1);

                if ( (LA40_0==RULE_STRING||LA40_0==43) ) {
                    alt40=1;
                }


                switch (alt40) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1282:1: (lv_value_6_0= ruleRangePartitionValue )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1282:1: (lv_value_6_0= ruleRangePartitionValue )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1283:3: lv_value_6_0= ruleRangePartitionValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRangeSubPartAccess().getValueRangePartitionValueParserRuleCall_6_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleRangePartitionValue_in_ruleRangeSubPart2605);
            	    lv_value_6_0=ruleRangePartitionValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRangeSubPartRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"value",
            	            		lv_value_6_0, 
            	            		"RangePartitionValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt40 >= 1 ) break loop40;
                        EarlyExitException eee =
                            new EarlyExitException(40, input);
                        throw eee;
                }
                cnt40++;
            } while (true);

            otherlv_7=(Token)match(input,19,FOLLOW_19_in_ruleRangeSubPart2618); 

                	newLeafNode(otherlv_7, grammarAccess.getRangeSubPartAccess().getRightParenthesisKeyword_7());
                
            otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleRangeSubPart2630); 

                	newLeafNode(otherlv_8, grammarAccess.getRangeSubPartAccess().getLeftParenthesisKeyword_8());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1307:1: ( (lv_subPartList_9_0= ruleSubSubPart ) )+
            int cnt41=0;
            loop41:
            do {
                int alt41=2;
                int LA41_0 = input.LA(1);

                if ( (LA41_0==36) ) {
                    alt41=1;
                }


                switch (alt41) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1308:1: (lv_subPartList_9_0= ruleSubSubPart )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1308:1: (lv_subPartList_9_0= ruleSubSubPart )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1309:3: lv_subPartList_9_0= ruleSubSubPart
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRangeSubPartAccess().getSubPartListSubSubPartParserRuleCall_9_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSubSubPart_in_ruleRangeSubPart2651);
            	    lv_subPartList_9_0=ruleSubSubPart();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRangeSubPartRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"subPartList",
            	            		lv_subPartList_9_0, 
            	            		"SubSubPart");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt41 >= 1 ) break loop41;
                        EarlyExitException eee =
                            new EarlyExitException(41, input);
                        throw eee;
                }
                cnt41++;
            } while (true);

            otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleRangeSubPart2664); 

                	newLeafNode(otherlv_10, grammarAccess.getRangeSubPartAccess().getRightParenthesisKeyword_10());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1329:1: (otherlv_11= ',' )?
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==42) ) {
                alt42=1;
            }
            switch (alt42) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1329:3: otherlv_11= ','
                    {
                    otherlv_11=(Token)match(input,42,FOLLOW_42_in_ruleRangeSubPart2677); 

                        	newLeafNode(otherlv_11, grammarAccess.getRangeSubPartAccess().getCommaKeyword_11());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangeSubPart"


    // $ANTLR start "entryRuleListSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1341:1: entryRuleListSubPart returns [EObject current=null] : iv_ruleListSubPart= ruleListSubPart EOF ;
    public final EObject entryRuleListSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleListSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1342:2: (iv_ruleListSubPart= ruleListSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1343:2: iv_ruleListSubPart= ruleListSubPart EOF
            {
             newCompositeNode(grammarAccess.getListSubPartRule()); 
            pushFollow(FOLLOW_ruleListSubPart_in_entryRuleListSubPart2715);
            iv_ruleListSubPart=ruleListSubPart();

            state._fsp--;

             current =iv_ruleListSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleListSubPart2725); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleListSubPart"


    // $ANTLR start "ruleListSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1350:1: ruleListSubPart returns [EObject current=null] : (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' otherlv_6= '(' ( (lv_subPartList_7_0= ruleSubSubPart ) )+ otherlv_8= ')' (otherlv_9= ',' )? ) ;
    public final EObject ruleListSubPart() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        EObject lv_value_4_0 = null;

        EObject lv_subPartList_7_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1353:28: ( (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' otherlv_6= '(' ( (lv_subPartList_7_0= ruleSubSubPart ) )+ otherlv_8= ')' (otherlv_9= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1354:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' otherlv_6= '(' ( (lv_subPartList_7_0= ruleSubSubPart ) )+ otherlv_8= ')' (otherlv_9= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1354:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' otherlv_6= '(' ( (lv_subPartList_7_0= ruleSubSubPart ) )+ otherlv_8= ')' (otherlv_9= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1354:3: otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' otherlv_6= '(' ( (lv_subPartList_7_0= ruleSubSubPart ) )+ otherlv_8= ')' (otherlv_9= ',' )?
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleListSubPart2762); 

                	newLeafNode(otherlv_0, grammarAccess.getListSubPartAccess().getPartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1358:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1359:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1359:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1360:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleListSubPart2779); 

            			newLeafNode(lv_name_1_0, grammarAccess.getListSubPartAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getListSubPartRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,39,FOLLOW_39_in_ruleListSubPart2796); 

                	newLeafNode(otherlv_2, grammarAccess.getListSubPartAccess().getValuesKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleListSubPart2808); 

                	newLeafNode(otherlv_3, grammarAccess.getListSubPartAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1384:1: ( (lv_value_4_0= ruleListPartitionValue ) )+
            int cnt43=0;
            loop43:
            do {
                int alt43=2;
                int LA43_0 = input.LA(1);

                if ( (LA43_0==RULE_STRING||LA43_0==45) ) {
                    alt43=1;
                }


                switch (alt43) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1385:1: (lv_value_4_0= ruleListPartitionValue )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1385:1: (lv_value_4_0= ruleListPartitionValue )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1386:3: lv_value_4_0= ruleListPartitionValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getListSubPartAccess().getValueListPartitionValueParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleListPartitionValue_in_ruleListSubPart2829);
            	    lv_value_4_0=ruleListPartitionValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getListSubPartRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"value",
            	            		lv_value_4_0, 
            	            		"ListPartitionValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt43 >= 1 ) break loop43;
                        EarlyExitException eee =
                            new EarlyExitException(43, input);
                        throw eee;
                }
                cnt43++;
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleListSubPart2842); 

                	newLeafNode(otherlv_5, grammarAccess.getListSubPartAccess().getRightParenthesisKeyword_5());
                
            otherlv_6=(Token)match(input,18,FOLLOW_18_in_ruleListSubPart2854); 

                	newLeafNode(otherlv_6, grammarAccess.getListSubPartAccess().getLeftParenthesisKeyword_6());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1410:1: ( (lv_subPartList_7_0= ruleSubSubPart ) )+
            int cnt44=0;
            loop44:
            do {
                int alt44=2;
                int LA44_0 = input.LA(1);

                if ( (LA44_0==36) ) {
                    alt44=1;
                }


                switch (alt44) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1411:1: (lv_subPartList_7_0= ruleSubSubPart )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1411:1: (lv_subPartList_7_0= ruleSubSubPart )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1412:3: lv_subPartList_7_0= ruleSubSubPart
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getListSubPartAccess().getSubPartListSubSubPartParserRuleCall_7_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSubSubPart_in_ruleListSubPart2875);
            	    lv_subPartList_7_0=ruleSubSubPart();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getListSubPartRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"subPartList",
            	            		lv_subPartList_7_0, 
            	            		"SubSubPart");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt44 >= 1 ) break loop44;
                        EarlyExitException eee =
                            new EarlyExitException(44, input);
                        throw eee;
                }
                cnt44++;
            } while (true);

            otherlv_8=(Token)match(input,19,FOLLOW_19_in_ruleListSubPart2888); 

                	newLeafNode(otherlv_8, grammarAccess.getListSubPartAccess().getRightParenthesisKeyword_8());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1432:1: (otherlv_9= ',' )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==42) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1432:3: otherlv_9= ','
                    {
                    otherlv_9=(Token)match(input,42,FOLLOW_42_in_ruleListSubPart2901); 

                        	newLeafNode(otherlv_9, grammarAccess.getListSubPartAccess().getCommaKeyword_9());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleListSubPart"


    // $ANTLR start "entryRuleSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1444:1: entryRuleSubSubPart returns [EObject current=null] : iv_ruleSubSubPart= ruleSubSubPart EOF ;
    public final EObject entryRuleSubSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSubSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1445:2: (iv_ruleSubSubPart= ruleSubSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1446:2: iv_ruleSubSubPart= ruleSubSubPart EOF
            {
             newCompositeNode(grammarAccess.getSubSubPartRule()); 
            pushFollow(FOLLOW_ruleSubSubPart_in_entryRuleSubSubPart2939);
            iv_ruleSubSubPart=ruleSubSubPart();

            state._fsp--;

             current =iv_ruleSubSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSubSubPart2949); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSubSubPart"


    // $ANTLR start "ruleSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1453:1: ruleSubSubPart returns [EObject current=null] : (this_RangeSubSubPart_0= ruleRangeSubSubPart | this_ListSubSubPart_1= ruleListSubSubPart | this_HashSubSubPart_2= ruleHashSubSubPart ) ;
    public final EObject ruleSubSubPart() throws RecognitionException {
        EObject current = null;

        EObject this_RangeSubSubPart_0 = null;

        EObject this_ListSubSubPart_1 = null;

        EObject this_HashSubSubPart_2 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1456:28: ( (this_RangeSubSubPart_0= ruleRangeSubSubPart | this_ListSubSubPart_1= ruleListSubSubPart | this_HashSubSubPart_2= ruleHashSubSubPart ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1457:1: (this_RangeSubSubPart_0= ruleRangeSubSubPart | this_ListSubSubPart_1= ruleListSubSubPart | this_HashSubSubPart_2= ruleHashSubSubPart )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1457:1: (this_RangeSubSubPart_0= ruleRangeSubSubPart | this_ListSubSubPart_1= ruleListSubSubPart | this_HashSubSubPart_2= ruleHashSubSubPart )
            int alt46=3;
            int LA46_0 = input.LA(1);

            if ( (LA46_0==36) ) {
                int LA46_1 = input.LA(2);

                if ( (LA46_1==RULE_DBNAME) ) {
                    int LA46_2 = input.LA(3);

                    if ( (LA46_2==39) ) {
                        int LA46_3 = input.LA(4);

                        if ( (LA46_3==18) ) {
                            alt46=2;
                        }
                        else if ( (LA46_3==40) ) {
                            alt46=1;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 46, 3, input);

                            throw nvae;
                        }
                    }
                    else if ( (LA46_2==EOF||LA46_2==19||LA46_2==23||LA46_2==36||LA46_2==42) ) {
                        alt46=3;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 46, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 46, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 46, 0, input);

                throw nvae;
            }
            switch (alt46) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1458:5: this_RangeSubSubPart_0= ruleRangeSubSubPart
                    {
                     
                            newCompositeNode(grammarAccess.getSubSubPartAccess().getRangeSubSubPartParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleRangeSubSubPart_in_ruleSubSubPart2996);
                    this_RangeSubSubPart_0=ruleRangeSubSubPart();

                    state._fsp--;

                     
                            current = this_RangeSubSubPart_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1468:5: this_ListSubSubPart_1= ruleListSubSubPart
                    {
                     
                            newCompositeNode(grammarAccess.getSubSubPartAccess().getListSubSubPartParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleListSubSubPart_in_ruleSubSubPart3023);
                    this_ListSubSubPart_1=ruleListSubSubPart();

                    state._fsp--;

                     
                            current = this_ListSubSubPart_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1478:5: this_HashSubSubPart_2= ruleHashSubSubPart
                    {
                     
                            newCompositeNode(grammarAccess.getSubSubPartAccess().getHashSubSubPartParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleHashSubSubPart_in_ruleSubSubPart3050);
                    this_HashSubSubPart_2=ruleHashSubSubPart();

                    state._fsp--;

                     
                            current = this_HashSubSubPart_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSubSubPart"


    // $ANTLR start "entryRuleRangeSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1494:1: entryRuleRangeSubSubPart returns [EObject current=null] : iv_ruleRangeSubSubPart= ruleRangeSubSubPart EOF ;
    public final EObject entryRuleRangeSubSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangeSubSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1495:2: (iv_ruleRangeSubSubPart= ruleRangeSubSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1496:2: iv_ruleRangeSubSubPart= ruleRangeSubSubPart EOF
            {
             newCompositeNode(grammarAccess.getRangeSubSubPartRule()); 
            pushFollow(FOLLOW_ruleRangeSubSubPart_in_entryRuleRangeSubSubPart3085);
            iv_ruleRangeSubSubPart=ruleRangeSubSubPart();

            state._fsp--;

             current =iv_ruleRangeSubSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangeSubSubPart3095); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangeSubSubPart"


    // $ANTLR start "ruleRangeSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1503:1: ruleRangeSubSubPart returns [EObject current=null] : (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? ) ;
    public final EObject ruleRangeSubSubPart() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token lv_tablespace_9_0=null;
        Token otherlv_10=null;
        EObject lv_value_6_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1506:28: ( (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1507:1: (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1507:1: (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1507:3: otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )?
            {
            otherlv_0=(Token)match(input,36,FOLLOW_36_in_ruleRangeSubSubPart3132); 

                	newLeafNode(otherlv_0, grammarAccess.getRangeSubSubPartAccess().getSubpartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1511:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1512:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1512:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1513:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRangeSubSubPart3149); 

            			newLeafNode(lv_name_1_0, grammarAccess.getRangeSubSubPartAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRangeSubSubPartRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,39,FOLLOW_39_in_ruleRangeSubSubPart3166); 

                	newLeafNode(otherlv_2, grammarAccess.getRangeSubSubPartAccess().getValuesKeyword_2());
                
            otherlv_3=(Token)match(input,40,FOLLOW_40_in_ruleRangeSubSubPart3178); 

                	newLeafNode(otherlv_3, grammarAccess.getRangeSubSubPartAccess().getLessKeyword_3());
                
            otherlv_4=(Token)match(input,41,FOLLOW_41_in_ruleRangeSubSubPart3190); 

                	newLeafNode(otherlv_4, grammarAccess.getRangeSubSubPartAccess().getThanKeyword_4());
                
            otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleRangeSubSubPart3202); 

                	newLeafNode(otherlv_5, grammarAccess.getRangeSubSubPartAccess().getLeftParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1545:1: ( (lv_value_6_0= ruleRangePartitionValue ) )+
            int cnt47=0;
            loop47:
            do {
                int alt47=2;
                int LA47_0 = input.LA(1);

                if ( (LA47_0==RULE_STRING||LA47_0==43) ) {
                    alt47=1;
                }


                switch (alt47) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1546:1: (lv_value_6_0= ruleRangePartitionValue )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1546:1: (lv_value_6_0= ruleRangePartitionValue )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1547:3: lv_value_6_0= ruleRangePartitionValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRangeSubSubPartAccess().getValueRangePartitionValueParserRuleCall_6_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleRangePartitionValue_in_ruleRangeSubSubPart3223);
            	    lv_value_6_0=ruleRangePartitionValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRangeSubSubPartRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"value",
            	            		lv_value_6_0, 
            	            		"RangePartitionValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt47 >= 1 ) break loop47;
                        EarlyExitException eee =
                            new EarlyExitException(47, input);
                        throw eee;
                }
                cnt47++;
            } while (true);

            otherlv_7=(Token)match(input,19,FOLLOW_19_in_ruleRangeSubSubPart3236); 

                	newLeafNode(otherlv_7, grammarAccess.getRangeSubSubPartAccess().getRightParenthesisKeyword_7());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1567:1: (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )?
            int alt48=2;
            int LA48_0 = input.LA(1);

            if ( (LA48_0==23) ) {
                alt48=1;
            }
            switch (alt48) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1567:3: otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) )
                    {
                    otherlv_8=(Token)match(input,23,FOLLOW_23_in_ruleRangeSubSubPart3249); 

                        	newLeafNode(otherlv_8, grammarAccess.getRangeSubSubPartAccess().getTablespaceKeyword_8_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1571:1: ( (lv_tablespace_9_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1572:1: (lv_tablespace_9_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1572:1: (lv_tablespace_9_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1573:3: lv_tablespace_9_0= RULE_DBNAME
                    {
                    lv_tablespace_9_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRangeSubSubPart3266); 

                    			newLeafNode(lv_tablespace_9_0, grammarAccess.getRangeSubSubPartAccess().getTablespaceDBNAMETerminalRuleCall_8_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getRangeSubSubPartRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_9_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1589:4: (otherlv_10= ',' )?
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( (LA49_0==42) ) {
                alt49=1;
            }
            switch (alt49) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1589:6: otherlv_10= ','
                    {
                    otherlv_10=(Token)match(input,42,FOLLOW_42_in_ruleRangeSubSubPart3286); 

                        	newLeafNode(otherlv_10, grammarAccess.getRangeSubSubPartAccess().getCommaKeyword_9());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangeSubSubPart"


    // $ANTLR start "entryRuleListSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1601:1: entryRuleListSubSubPart returns [EObject current=null] : iv_ruleListSubSubPart= ruleListSubSubPart EOF ;
    public final EObject entryRuleListSubSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleListSubSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1602:2: (iv_ruleListSubSubPart= ruleListSubSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1603:2: iv_ruleListSubSubPart= ruleListSubSubPart EOF
            {
             newCompositeNode(grammarAccess.getListSubSubPartRule()); 
            pushFollow(FOLLOW_ruleListSubSubPart_in_entryRuleListSubSubPart3324);
            iv_ruleListSubSubPart=ruleListSubSubPart();

            state._fsp--;

             current =iv_ruleListSubSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleListSubSubPart3334); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleListSubSubPart"


    // $ANTLR start "ruleListSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1610:1: ruleListSubSubPart returns [EObject current=null] : (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? ) ;
    public final EObject ruleListSubSubPart() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token lv_tablespace_7_0=null;
        Token otherlv_8=null;
        EObject lv_value_4_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1613:28: ( (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1614:1: (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1614:1: (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1614:3: otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )?
            {
            otherlv_0=(Token)match(input,36,FOLLOW_36_in_ruleListSubSubPart3371); 

                	newLeafNode(otherlv_0, grammarAccess.getListSubSubPartAccess().getSubpartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1618:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1619:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1619:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1620:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleListSubSubPart3388); 

            			newLeafNode(lv_name_1_0, grammarAccess.getListSubSubPartAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getListSubSubPartRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,39,FOLLOW_39_in_ruleListSubSubPart3405); 

                	newLeafNode(otherlv_2, grammarAccess.getListSubSubPartAccess().getValuesKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleListSubSubPart3417); 

                	newLeafNode(otherlv_3, grammarAccess.getListSubSubPartAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1644:1: ( (lv_value_4_0= ruleListPartitionValue ) )+
            int cnt50=0;
            loop50:
            do {
                int alt50=2;
                int LA50_0 = input.LA(1);

                if ( (LA50_0==RULE_STRING||LA50_0==45) ) {
                    alt50=1;
                }


                switch (alt50) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1645:1: (lv_value_4_0= ruleListPartitionValue )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1645:1: (lv_value_4_0= ruleListPartitionValue )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1646:3: lv_value_4_0= ruleListPartitionValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getListSubSubPartAccess().getValueListPartitionValueParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleListPartitionValue_in_ruleListSubSubPart3438);
            	    lv_value_4_0=ruleListPartitionValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getListSubSubPartRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"value",
            	            		lv_value_4_0, 
            	            		"ListPartitionValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt50 >= 1 ) break loop50;
                        EarlyExitException eee =
                            new EarlyExitException(50, input);
                        throw eee;
                }
                cnt50++;
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleListSubSubPart3451); 

                	newLeafNode(otherlv_5, grammarAccess.getListSubSubPartAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1666:1: (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )?
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( (LA51_0==23) ) {
                alt51=1;
            }
            switch (alt51) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1666:3: otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) )
                    {
                    otherlv_6=(Token)match(input,23,FOLLOW_23_in_ruleListSubSubPart3464); 

                        	newLeafNode(otherlv_6, grammarAccess.getListSubSubPartAccess().getTablespaceKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1670:1: ( (lv_tablespace_7_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1671:1: (lv_tablespace_7_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1671:1: (lv_tablespace_7_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1672:3: lv_tablespace_7_0= RULE_DBNAME
                    {
                    lv_tablespace_7_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleListSubSubPart3481); 

                    			newLeafNode(lv_tablespace_7_0, grammarAccess.getListSubSubPartAccess().getTablespaceDBNAMETerminalRuleCall_6_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getListSubSubPartRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_7_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1688:4: (otherlv_8= ',' )?
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( (LA52_0==42) ) {
                alt52=1;
            }
            switch (alt52) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1688:6: otherlv_8= ','
                    {
                    otherlv_8=(Token)match(input,42,FOLLOW_42_in_ruleListSubSubPart3501); 

                        	newLeafNode(otherlv_8, grammarAccess.getListSubSubPartAccess().getCommaKeyword_7());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleListSubSubPart"


    // $ANTLR start "entryRuleHashSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1700:1: entryRuleHashSubSubPart returns [EObject current=null] : iv_ruleHashSubSubPart= ruleHashSubSubPart EOF ;
    public final EObject entryRuleHashSubSubPart() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleHashSubSubPart = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1701:2: (iv_ruleHashSubSubPart= ruleHashSubSubPart EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1702:2: iv_ruleHashSubSubPart= ruleHashSubSubPart EOF
            {
             newCompositeNode(grammarAccess.getHashSubSubPartRule()); 
            pushFollow(FOLLOW_ruleHashSubSubPart_in_entryRuleHashSubSubPart3539);
            iv_ruleHashSubSubPart=ruleHashSubSubPart();

            state._fsp--;

             current =iv_ruleHashSubSubPart; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleHashSubSubPart3549); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleHashSubSubPart"


    // $ANTLR start "ruleHashSubSubPart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1709:1: ruleHashSubSubPart returns [EObject current=null] : (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? ) ;
    public final EObject ruleHashSubSubPart() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token lv_tablespace_3_0=null;
        Token otherlv_4=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1712:28: ( (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1713:1: (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1713:1: (otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1713:3: otherlv_0= 'subpartition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )?
            {
            otherlv_0=(Token)match(input,36,FOLLOW_36_in_ruleHashSubSubPart3586); 

                	newLeafNode(otherlv_0, grammarAccess.getHashSubSubPartAccess().getSubpartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1717:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1718:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1718:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1719:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleHashSubSubPart3603); 

            			newLeafNode(lv_name_1_0, grammarAccess.getHashSubSubPartAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getHashSubSubPartRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1735:2: (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==23) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1735:4: otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) )
                    {
                    otherlv_2=(Token)match(input,23,FOLLOW_23_in_ruleHashSubSubPart3621); 

                        	newLeafNode(otherlv_2, grammarAccess.getHashSubSubPartAccess().getTablespaceKeyword_2_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1739:1: ( (lv_tablespace_3_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1740:1: (lv_tablespace_3_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1740:1: (lv_tablespace_3_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1741:3: lv_tablespace_3_0= RULE_DBNAME
                    {
                    lv_tablespace_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleHashSubSubPart3638); 

                    			newLeafNode(lv_tablespace_3_0, grammarAccess.getHashSubSubPartAccess().getTablespaceDBNAMETerminalRuleCall_2_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getHashSubSubPartRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_3_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1757:4: (otherlv_4= ',' )?
            int alt54=2;
            int LA54_0 = input.LA(1);

            if ( (LA54_0==42) ) {
                alt54=1;
            }
            switch (alt54) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1757:6: otherlv_4= ','
                    {
                    otherlv_4=(Token)match(input,42,FOLLOW_42_in_ruleHashSubSubPart3658); 

                        	newLeafNode(otherlv_4, grammarAccess.getHashSubSubPartAccess().getCommaKeyword_3());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleHashSubSubPart"


    // $ANTLR start "entryRuleRangePartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1769:1: entryRuleRangePartition returns [EObject current=null] : iv_ruleRangePartition= ruleRangePartition EOF ;
    public final EObject entryRuleRangePartition() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangePartition = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1770:2: (iv_ruleRangePartition= ruleRangePartition EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1771:2: iv_ruleRangePartition= ruleRangePartition EOF
            {
             newCompositeNode(grammarAccess.getRangePartitionRule()); 
            pushFollow(FOLLOW_ruleRangePartition_in_entryRuleRangePartition3696);
            iv_ruleRangePartition=ruleRangePartition();

            state._fsp--;

             current =iv_ruleRangePartition; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangePartition3706); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangePartition"


    // $ANTLR start "ruleRangePartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1778:1: ruleRangePartition returns [EObject current=null] : (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? ) ;
    public final EObject ruleRangePartition() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token lv_tablespace_9_0=null;
        Token otherlv_10=null;
        EObject lv_value_6_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1781:28: ( (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1782:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1782:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1782:3: otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= 'less' otherlv_4= 'than' otherlv_5= '(' ( (lv_value_6_0= ruleRangePartitionValue ) )+ otherlv_7= ')' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? (otherlv_10= ',' )?
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleRangePartition3743); 

                	newLeafNode(otherlv_0, grammarAccess.getRangePartitionAccess().getPartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1786:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1787:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1787:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1788:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRangePartition3760); 

            			newLeafNode(lv_name_1_0, grammarAccess.getRangePartitionAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRangePartitionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,39,FOLLOW_39_in_ruleRangePartition3777); 

                	newLeafNode(otherlv_2, grammarAccess.getRangePartitionAccess().getValuesKeyword_2());
                
            otherlv_3=(Token)match(input,40,FOLLOW_40_in_ruleRangePartition3789); 

                	newLeafNode(otherlv_3, grammarAccess.getRangePartitionAccess().getLessKeyword_3());
                
            otherlv_4=(Token)match(input,41,FOLLOW_41_in_ruleRangePartition3801); 

                	newLeafNode(otherlv_4, grammarAccess.getRangePartitionAccess().getThanKeyword_4());
                
            otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleRangePartition3813); 

                	newLeafNode(otherlv_5, grammarAccess.getRangePartitionAccess().getLeftParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1820:1: ( (lv_value_6_0= ruleRangePartitionValue ) )+
            int cnt55=0;
            loop55:
            do {
                int alt55=2;
                int LA55_0 = input.LA(1);

                if ( (LA55_0==RULE_STRING||LA55_0==43) ) {
                    alt55=1;
                }


                switch (alt55) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1821:1: (lv_value_6_0= ruleRangePartitionValue )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1821:1: (lv_value_6_0= ruleRangePartitionValue )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1822:3: lv_value_6_0= ruleRangePartitionValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRangePartitionAccess().getValueRangePartitionValueParserRuleCall_6_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleRangePartitionValue_in_ruleRangePartition3834);
            	    lv_value_6_0=ruleRangePartitionValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRangePartitionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"value",
            	            		lv_value_6_0, 
            	            		"RangePartitionValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt55 >= 1 ) break loop55;
                        EarlyExitException eee =
                            new EarlyExitException(55, input);
                        throw eee;
                }
                cnt55++;
            } while (true);

            otherlv_7=(Token)match(input,19,FOLLOW_19_in_ruleRangePartition3847); 

                	newLeafNode(otherlv_7, grammarAccess.getRangePartitionAccess().getRightParenthesisKeyword_7());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1842:1: (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )?
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( (LA56_0==23) ) {
                alt56=1;
            }
            switch (alt56) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1842:3: otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) )
                    {
                    otherlv_8=(Token)match(input,23,FOLLOW_23_in_ruleRangePartition3860); 

                        	newLeafNode(otherlv_8, grammarAccess.getRangePartitionAccess().getTablespaceKeyword_8_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1846:1: ( (lv_tablespace_9_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1847:1: (lv_tablespace_9_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1847:1: (lv_tablespace_9_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1848:3: lv_tablespace_9_0= RULE_DBNAME
                    {
                    lv_tablespace_9_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRangePartition3877); 

                    			newLeafNode(lv_tablespace_9_0, grammarAccess.getRangePartitionAccess().getTablespaceDBNAMETerminalRuleCall_8_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getRangePartitionRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_9_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1864:4: (otherlv_10= ',' )?
            int alt57=2;
            int LA57_0 = input.LA(1);

            if ( (LA57_0==42) ) {
                alt57=1;
            }
            switch (alt57) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1864:6: otherlv_10= ','
                    {
                    otherlv_10=(Token)match(input,42,FOLLOW_42_in_ruleRangePartition3897); 

                        	newLeafNode(otherlv_10, grammarAccess.getRangePartitionAccess().getCommaKeyword_9());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangePartition"


    // $ANTLR start "entryRuleRangePartitionValue"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1876:1: entryRuleRangePartitionValue returns [EObject current=null] : iv_ruleRangePartitionValue= ruleRangePartitionValue EOF ;
    public final EObject entryRuleRangePartitionValue() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangePartitionValue = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1877:2: (iv_ruleRangePartitionValue= ruleRangePartitionValue EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1878:2: iv_ruleRangePartitionValue= ruleRangePartitionValue EOF
            {
             newCompositeNode(grammarAccess.getRangePartitionValueRule()); 
            pushFollow(FOLLOW_ruleRangePartitionValue_in_entryRuleRangePartitionValue3935);
            iv_ruleRangePartitionValue=ruleRangePartitionValue();

            state._fsp--;

             current =iv_ruleRangePartitionValue; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangePartitionValue3945); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangePartitionValue"


    // $ANTLR start "ruleRangePartitionValue"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1885:1: ruleRangePartitionValue returns [EObject current=null] : ( ( ( (lv_maxvalue_0_0= 'maxvalue' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? ) ;
    public final EObject ruleRangePartitionValue() throws RecognitionException {
        EObject current = null;

        Token lv_maxvalue_0_0=null;
        Token lv_value_1_0=null;
        Token otherlv_2=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1888:28: ( ( ( ( (lv_maxvalue_0_0= 'maxvalue' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1889:1: ( ( ( (lv_maxvalue_0_0= 'maxvalue' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1889:1: ( ( ( (lv_maxvalue_0_0= 'maxvalue' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1889:2: ( ( (lv_maxvalue_0_0= 'maxvalue' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1889:2: ( ( (lv_maxvalue_0_0= 'maxvalue' ) ) | ( (lv_value_1_0= RULE_STRING ) ) )
            int alt58=2;
            int LA58_0 = input.LA(1);

            if ( (LA58_0==43) ) {
                alt58=1;
            }
            else if ( (LA58_0==RULE_STRING) ) {
                alt58=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 58, 0, input);

                throw nvae;
            }
            switch (alt58) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1889:3: ( (lv_maxvalue_0_0= 'maxvalue' ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1889:3: ( (lv_maxvalue_0_0= 'maxvalue' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1890:1: (lv_maxvalue_0_0= 'maxvalue' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1890:1: (lv_maxvalue_0_0= 'maxvalue' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1891:3: lv_maxvalue_0_0= 'maxvalue'
                    {
                    lv_maxvalue_0_0=(Token)match(input,43,FOLLOW_43_in_ruleRangePartitionValue3989); 

                            newLeafNode(lv_maxvalue_0_0, grammarAccess.getRangePartitionValueAccess().getMaxvalueMaxvalueKeyword_0_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getRangePartitionValueRule());
                    	        }
                           		setWithLastConsumed(current, "maxvalue", lv_maxvalue_0_0, "maxvalue");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1905:6: ( (lv_value_1_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1905:6: ( (lv_value_1_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1906:1: (lv_value_1_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1906:1: (lv_value_1_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1907:3: lv_value_1_0= RULE_STRING
                    {
                    lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleRangePartitionValue4025); 

                    			newLeafNode(lv_value_1_0, grammarAccess.getRangePartitionValueAccess().getValueSTRINGTerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getRangePartitionValueRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value",
                            		lv_value_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1923:3: (otherlv_2= ',' )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==42) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1923:5: otherlv_2= ','
                    {
                    otherlv_2=(Token)match(input,42,FOLLOW_42_in_ruleRangePartitionValue4044); 

                        	newLeafNode(otherlv_2, grammarAccess.getRangePartitionValueAccess().getCommaKeyword_1());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangePartitionValue"


    // $ANTLR start "entryRuleHashPartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1935:1: entryRuleHashPartitions returns [EObject current=null] : iv_ruleHashPartitions= ruleHashPartitions EOF ;
    public final EObject entryRuleHashPartitions() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleHashPartitions = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1936:2: (iv_ruleHashPartitions= ruleHashPartitions EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1937:2: iv_ruleHashPartitions= ruleHashPartitions EOF
            {
             newCompositeNode(grammarAccess.getHashPartitionsRule()); 
            pushFollow(FOLLOW_ruleHashPartitions_in_entryRuleHashPartitions4082);
            iv_ruleHashPartitions=ruleHashPartitions();

            state._fsp--;

             current =iv_ruleHashPartitions; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleHashPartitions4092); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleHashPartitions"


    // $ANTLR start "ruleHashPartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1944:1: ruleHashPartitions returns [EObject current=null] : (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleHashPartition ) )+ otherlv_6= ')' ) ;
    public final EObject ruleHashPartitions() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        EObject lv_column_2_0 = null;

        EObject lv_partitionList_5_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1947:28: ( (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleHashPartition ) )+ otherlv_6= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1948:1: (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleHashPartition ) )+ otherlv_6= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1948:1: (otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleHashPartition ) )+ otherlv_6= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1948:3: otherlv_0= 'hash' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleHashPartition ) )+ otherlv_6= ')'
            {
            otherlv_0=(Token)match(input,38,FOLLOW_38_in_ruleHashPartitions4129); 

                	newLeafNode(otherlv_0, grammarAccess.getHashPartitionsAccess().getHashKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleHashPartitions4141); 

                	newLeafNode(otherlv_1, grammarAccess.getHashPartitionsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1956:1: ( (lv_column_2_0= ruleColumnRef ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1957:1: (lv_column_2_0= ruleColumnRef )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1957:1: (lv_column_2_0= ruleColumnRef )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1958:3: lv_column_2_0= ruleColumnRef
            {
             
            	        newCompositeNode(grammarAccess.getHashPartitionsAccess().getColumnColumnRefParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleColumnRef_in_ruleHashPartitions4162);
            lv_column_2_0=ruleColumnRef();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getHashPartitionsRule());
            	        }
                   		set(
                   			current, 
                   			"column",
                    		lv_column_2_0, 
                    		"ColumnRef");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleHashPartitions4174); 

                	newLeafNode(otherlv_3, grammarAccess.getHashPartitionsAccess().getRightParenthesisKeyword_3());
                
            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleHashPartitions4186); 

                	newLeafNode(otherlv_4, grammarAccess.getHashPartitionsAccess().getLeftParenthesisKeyword_4());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1982:1: ( (lv_partitionList_5_0= ruleHashPartition ) )+
            int cnt60=0;
            loop60:
            do {
                int alt60=2;
                int LA60_0 = input.LA(1);

                if ( (LA60_0==32) ) {
                    alt60=1;
                }


                switch (alt60) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1983:1: (lv_partitionList_5_0= ruleHashPartition )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1983:1: (lv_partitionList_5_0= ruleHashPartition )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:1984:3: lv_partitionList_5_0= ruleHashPartition
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getHashPartitionsAccess().getPartitionListHashPartitionParserRuleCall_5_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleHashPartition_in_ruleHashPartitions4207);
            	    lv_partitionList_5_0=ruleHashPartition();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getHashPartitionsRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"partitionList",
            	            		lv_partitionList_5_0, 
            	            		"HashPartition");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt60 >= 1 ) break loop60;
                        EarlyExitException eee =
                            new EarlyExitException(60, input);
                        throw eee;
                }
                cnt60++;
            } while (true);

            otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleHashPartitions4220); 

                	newLeafNode(otherlv_6, grammarAccess.getHashPartitionsAccess().getRightParenthesisKeyword_6());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleHashPartitions"


    // $ANTLR start "entryRuleHashPartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2012:1: entryRuleHashPartition returns [EObject current=null] : iv_ruleHashPartition= ruleHashPartition EOF ;
    public final EObject entryRuleHashPartition() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleHashPartition = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2013:2: (iv_ruleHashPartition= ruleHashPartition EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2014:2: iv_ruleHashPartition= ruleHashPartition EOF
            {
             newCompositeNode(grammarAccess.getHashPartitionRule()); 
            pushFollow(FOLLOW_ruleHashPartition_in_entryRuleHashPartition4256);
            iv_ruleHashPartition=ruleHashPartition();

            state._fsp--;

             current =iv_ruleHashPartition; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleHashPartition4266); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleHashPartition"


    // $ANTLR start "ruleHashPartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2021:1: ruleHashPartition returns [EObject current=null] : (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? ) ;
    public final EObject ruleHashPartition() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token lv_tablespace_3_0=null;
        Token otherlv_4=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2024:28: ( (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2025:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2025:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2025:3: otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )?
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleHashPartition4303); 

                	newLeafNode(otherlv_0, grammarAccess.getHashPartitionAccess().getPartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2029:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2030:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2030:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2031:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleHashPartition4320); 

            			newLeafNode(lv_name_1_0, grammarAccess.getHashPartitionAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getHashPartitionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2047:2: (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )?
            int alt61=2;
            int LA61_0 = input.LA(1);

            if ( (LA61_0==23) ) {
                alt61=1;
            }
            switch (alt61) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2047:4: otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) )
                    {
                    otherlv_2=(Token)match(input,23,FOLLOW_23_in_ruleHashPartition4338); 

                        	newLeafNode(otherlv_2, grammarAccess.getHashPartitionAccess().getTablespaceKeyword_2_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2051:1: ( (lv_tablespace_3_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2052:1: (lv_tablespace_3_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2052:1: (lv_tablespace_3_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2053:3: lv_tablespace_3_0= RULE_DBNAME
                    {
                    lv_tablespace_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleHashPartition4355); 

                    			newLeafNode(lv_tablespace_3_0, grammarAccess.getHashPartitionAccess().getTablespaceDBNAMETerminalRuleCall_2_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getHashPartitionRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_3_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2069:4: (otherlv_4= ',' )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( (LA62_0==42) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2069:6: otherlv_4= ','
                    {
                    otherlv_4=(Token)match(input,42,FOLLOW_42_in_ruleHashPartition4375); 

                        	newLeafNode(otherlv_4, grammarAccess.getHashPartitionAccess().getCommaKeyword_3());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleHashPartition"


    // $ANTLR start "entryRuleRefPartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2081:1: entryRuleRefPartitions returns [EObject current=null] : iv_ruleRefPartitions= ruleRefPartitions EOF ;
    public final EObject entryRuleRefPartitions() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRefPartitions = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2082:2: (iv_ruleRefPartitions= ruleRefPartitions EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2083:2: iv_ruleRefPartitions= ruleRefPartitions EOF
            {
             newCompositeNode(grammarAccess.getRefPartitionsRule()); 
            pushFollow(FOLLOW_ruleRefPartitions_in_entryRuleRefPartitions4413);
            iv_ruleRefPartitions=ruleRefPartitions();

            state._fsp--;

             current =iv_ruleRefPartitions; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRefPartitions4423); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRefPartitions"


    // $ANTLR start "ruleRefPartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2090:1: ruleRefPartitions returns [EObject current=null] : (otherlv_0= 'reference' otherlv_1= '(' ( (lv_fkName_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleRefPartition ) )+ otherlv_6= ')' ) ;
    public final EObject ruleRefPartitions() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_fkName_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        EObject lv_partitionList_5_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2093:28: ( (otherlv_0= 'reference' otherlv_1= '(' ( (lv_fkName_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleRefPartition ) )+ otherlv_6= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2094:1: (otherlv_0= 'reference' otherlv_1= '(' ( (lv_fkName_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleRefPartition ) )+ otherlv_6= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2094:1: (otherlv_0= 'reference' otherlv_1= '(' ( (lv_fkName_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleRefPartition ) )+ otherlv_6= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2094:3: otherlv_0= 'reference' otherlv_1= '(' ( (lv_fkName_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= '(' ( (lv_partitionList_5_0= ruleRefPartition ) )+ otherlv_6= ')'
            {
            otherlv_0=(Token)match(input,44,FOLLOW_44_in_ruleRefPartitions4460); 

                	newLeafNode(otherlv_0, grammarAccess.getRefPartitionsAccess().getReferenceKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleRefPartitions4472); 

                	newLeafNode(otherlv_1, grammarAccess.getRefPartitionsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2102:1: ( (lv_fkName_2_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2103:1: (lv_fkName_2_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2103:1: (lv_fkName_2_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2104:3: lv_fkName_2_0= RULE_DBNAME
            {
            lv_fkName_2_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRefPartitions4489); 

            			newLeafNode(lv_fkName_2_0, grammarAccess.getRefPartitionsAccess().getFkNameDBNAMETerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRefPartitionsRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"fkName",
                    		lv_fkName_2_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleRefPartitions4506); 

                	newLeafNode(otherlv_3, grammarAccess.getRefPartitionsAccess().getRightParenthesisKeyword_3());
                
            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleRefPartitions4518); 

                	newLeafNode(otherlv_4, grammarAccess.getRefPartitionsAccess().getLeftParenthesisKeyword_4());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2128:1: ( (lv_partitionList_5_0= ruleRefPartition ) )+
            int cnt63=0;
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==32) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2129:1: (lv_partitionList_5_0= ruleRefPartition )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2129:1: (lv_partitionList_5_0= ruleRefPartition )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2130:3: lv_partitionList_5_0= ruleRefPartition
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRefPartitionsAccess().getPartitionListRefPartitionParserRuleCall_5_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleRefPartition_in_ruleRefPartitions4539);
            	    lv_partitionList_5_0=ruleRefPartition();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRefPartitionsRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"partitionList",
            	            		lv_partitionList_5_0, 
            	            		"RefPartition");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt63 >= 1 ) break loop63;
                        EarlyExitException eee =
                            new EarlyExitException(63, input);
                        throw eee;
                }
                cnt63++;
            } while (true);

            otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleRefPartitions4552); 

                	newLeafNode(otherlv_6, grammarAccess.getRefPartitionsAccess().getRightParenthesisKeyword_6());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRefPartitions"


    // $ANTLR start "entryRuleRefPartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2158:1: entryRuleRefPartition returns [EObject current=null] : iv_ruleRefPartition= ruleRefPartition EOF ;
    public final EObject entryRuleRefPartition() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRefPartition = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2159:2: (iv_ruleRefPartition= ruleRefPartition EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2160:2: iv_ruleRefPartition= ruleRefPartition EOF
            {
             newCompositeNode(grammarAccess.getRefPartitionRule()); 
            pushFollow(FOLLOW_ruleRefPartition_in_entryRuleRefPartition4588);
            iv_ruleRefPartition=ruleRefPartition();

            state._fsp--;

             current =iv_ruleRefPartition; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRefPartition4598); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRefPartition"


    // $ANTLR start "ruleRefPartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2167:1: ruleRefPartition returns [EObject current=null] : (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? ) ;
    public final EObject ruleRefPartition() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token lv_tablespace_3_0=null;
        Token otherlv_4=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2170:28: ( (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2171:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2171:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2171:3: otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )? (otherlv_4= ',' )?
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleRefPartition4635); 

                	newLeafNode(otherlv_0, grammarAccess.getRefPartitionAccess().getPartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2175:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2176:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2176:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2177:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRefPartition4652); 

            			newLeafNode(lv_name_1_0, grammarAccess.getRefPartitionAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRefPartitionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2193:2: (otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) ) )?
            int alt64=2;
            int LA64_0 = input.LA(1);

            if ( (LA64_0==23) ) {
                alt64=1;
            }
            switch (alt64) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2193:4: otherlv_2= 'tablespace' ( (lv_tablespace_3_0= RULE_DBNAME ) )
                    {
                    otherlv_2=(Token)match(input,23,FOLLOW_23_in_ruleRefPartition4670); 

                        	newLeafNode(otherlv_2, grammarAccess.getRefPartitionAccess().getTablespaceKeyword_2_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2197:1: ( (lv_tablespace_3_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2198:1: (lv_tablespace_3_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2198:1: (lv_tablespace_3_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2199:3: lv_tablespace_3_0= RULE_DBNAME
                    {
                    lv_tablespace_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleRefPartition4687); 

                    			newLeafNode(lv_tablespace_3_0, grammarAccess.getRefPartitionAccess().getTablespaceDBNAMETerminalRuleCall_2_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getRefPartitionRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_3_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2215:4: (otherlv_4= ',' )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( (LA65_0==42) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2215:6: otherlv_4= ','
                    {
                    otherlv_4=(Token)match(input,42,FOLLOW_42_in_ruleRefPartition4707); 

                        	newLeafNode(otherlv_4, grammarAccess.getRefPartitionAccess().getCommaKeyword_3());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRefPartition"


    // $ANTLR start "entryRuleListPartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2227:1: entryRuleListPartitions returns [EObject current=null] : iv_ruleListPartitions= ruleListPartitions EOF ;
    public final EObject entryRuleListPartitions() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleListPartitions = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2228:2: (iv_ruleListPartitions= ruleListPartitions EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2229:2: iv_ruleListPartitions= ruleListPartitions EOF
            {
             newCompositeNode(grammarAccess.getListPartitionsRule()); 
            pushFollow(FOLLOW_ruleListPartitions_in_entryRuleListPartitions4745);
            iv_ruleListPartitions=ruleListPartitions();

            state._fsp--;

             current =iv_ruleListPartitions; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleListPartitions4755); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleListPartitions"


    // $ANTLR start "ruleListPartitions"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2236:1: ruleListPartitions returns [EObject current=null] : (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ( (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' ) | ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' ) ) ) ;
    public final EObject ruleListPartitions() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_8=null;
        Token otherlv_10=null;
        EObject lv_column_2_0 = null;

        EObject lv_partitionList_5_0 = null;

        EObject lv_tableSubPart_7_0 = null;

        EObject lv_subPartitionList_9_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2239:28: ( (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ( (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' ) | ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' ) ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2240:1: (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ( (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' ) | ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' ) ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2240:1: (otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ( (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' ) | ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2240:3: otherlv_0= 'list' otherlv_1= '(' ( (lv_column_2_0= ruleColumnRef ) ) otherlv_3= ')' ( (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' ) | ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' ) )
            {
            otherlv_0=(Token)match(input,37,FOLLOW_37_in_ruleListPartitions4792); 

                	newLeafNode(otherlv_0, grammarAccess.getListPartitionsAccess().getListKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleListPartitions4804); 

                	newLeafNode(otherlv_1, grammarAccess.getListPartitionsAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2248:1: ( (lv_column_2_0= ruleColumnRef ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2249:1: (lv_column_2_0= ruleColumnRef )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2249:1: (lv_column_2_0= ruleColumnRef )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2250:3: lv_column_2_0= ruleColumnRef
            {
             
            	        newCompositeNode(grammarAccess.getListPartitionsAccess().getColumnColumnRefParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleColumnRef_in_ruleListPartitions4825);
            lv_column_2_0=ruleColumnRef();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getListPartitionsRule());
            	        }
                   		set(
                   			current, 
                   			"column",
                    		lv_column_2_0, 
                    		"ColumnRef");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleListPartitions4837); 

                	newLeafNode(otherlv_3, grammarAccess.getListPartitionsAccess().getRightParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2270:1: ( (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' ) | ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' ) )
            int alt68=2;
            int LA68_0 = input.LA(1);

            if ( (LA68_0==18) ) {
                alt68=1;
            }
            else if ( (LA68_0==36) ) {
                alt68=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 68, 0, input);

                throw nvae;
            }
            switch (alt68) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2270:2: (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2270:2: (otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2270:4: otherlv_4= '(' ( (lv_partitionList_5_0= ruleListPartition ) )+ otherlv_6= ')'
                    {
                    otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleListPartitions4851); 

                        	newLeafNode(otherlv_4, grammarAccess.getListPartitionsAccess().getLeftParenthesisKeyword_4_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2274:1: ( (lv_partitionList_5_0= ruleListPartition ) )+
                    int cnt66=0;
                    loop66:
                    do {
                        int alt66=2;
                        int LA66_0 = input.LA(1);

                        if ( (LA66_0==32) ) {
                            alt66=1;
                        }


                        switch (alt66) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2275:1: (lv_partitionList_5_0= ruleListPartition )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2275:1: (lv_partitionList_5_0= ruleListPartition )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2276:3: lv_partitionList_5_0= ruleListPartition
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getListPartitionsAccess().getPartitionListListPartitionParserRuleCall_4_0_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleListPartition_in_ruleListPartitions4872);
                    	    lv_partitionList_5_0=ruleListPartition();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getListPartitionsRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"partitionList",
                    	            		lv_partitionList_5_0, 
                    	            		"ListPartition");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt66 >= 1 ) break loop66;
                                EarlyExitException eee =
                                    new EarlyExitException(66, input);
                                throw eee;
                        }
                        cnt66++;
                    } while (true);

                    otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleListPartitions4885); 

                        	newLeafNode(otherlv_6, grammarAccess.getListPartitionsAccess().getRightParenthesisKeyword_4_0_2());
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2297:6: ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2297:6: ( ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2297:7: ( (lv_tableSubPart_7_0= ruleTableSubPart ) ) otherlv_8= '(' ( (lv_subPartitionList_9_0= ruleListSubPart ) )+ otherlv_10= ')'
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2297:7: ( (lv_tableSubPart_7_0= ruleTableSubPart ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2298:1: (lv_tableSubPart_7_0= ruleTableSubPart )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2298:1: (lv_tableSubPart_7_0= ruleTableSubPart )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2299:3: lv_tableSubPart_7_0= ruleTableSubPart
                    {
                     
                    	        newCompositeNode(grammarAccess.getListPartitionsAccess().getTableSubPartTableSubPartParserRuleCall_4_1_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleTableSubPart_in_ruleListPartitions4914);
                    lv_tableSubPart_7_0=ruleTableSubPart();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getListPartitionsRule());
                    	        }
                           		set(
                           			current, 
                           			"tableSubPart",
                            		lv_tableSubPart_7_0, 
                            		"TableSubPart");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleListPartitions4926); 

                        	newLeafNode(otherlv_8, grammarAccess.getListPartitionsAccess().getLeftParenthesisKeyword_4_1_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2319:1: ( (lv_subPartitionList_9_0= ruleListSubPart ) )+
                    int cnt67=0;
                    loop67:
                    do {
                        int alt67=2;
                        int LA67_0 = input.LA(1);

                        if ( (LA67_0==32) ) {
                            alt67=1;
                        }


                        switch (alt67) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2320:1: (lv_subPartitionList_9_0= ruleListSubPart )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2320:1: (lv_subPartitionList_9_0= ruleListSubPart )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2321:3: lv_subPartitionList_9_0= ruleListSubPart
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getListPartitionsAccess().getSubPartitionListListSubPartParserRuleCall_4_1_2_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleListSubPart_in_ruleListPartitions4947);
                    	    lv_subPartitionList_9_0=ruleListSubPart();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getListPartitionsRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"subPartitionList",
                    	            		lv_subPartitionList_9_0, 
                    	            		"ListSubPart");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt67 >= 1 ) break loop67;
                                EarlyExitException eee =
                                    new EarlyExitException(67, input);
                                throw eee;
                        }
                        cnt67++;
                    } while (true);

                    otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleListPartitions4960); 

                        	newLeafNode(otherlv_10, grammarAccess.getListPartitionsAccess().getRightParenthesisKeyword_4_1_3());
                        

                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleListPartitions"


    // $ANTLR start "entryRuleListPartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2349:1: entryRuleListPartition returns [EObject current=null] : iv_ruleListPartition= ruleListPartition EOF ;
    public final EObject entryRuleListPartition() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleListPartition = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2350:2: (iv_ruleListPartition= ruleListPartition EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2351:2: iv_ruleListPartition= ruleListPartition EOF
            {
             newCompositeNode(grammarAccess.getListPartitionRule()); 
            pushFollow(FOLLOW_ruleListPartition_in_entryRuleListPartition4998);
            iv_ruleListPartition=ruleListPartition();

            state._fsp--;

             current =iv_ruleListPartition; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleListPartition5008); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleListPartition"


    // $ANTLR start "ruleListPartition"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2358:1: ruleListPartition returns [EObject current=null] : (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? ) ;
    public final EObject ruleListPartition() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token lv_tablespace_7_0=null;
        Token otherlv_8=null;
        EObject lv_value_4_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2361:28: ( (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2362:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2362:1: (otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2362:3: otherlv_0= 'partition' ( (lv_name_1_0= RULE_DBNAME ) ) otherlv_2= 'values' otherlv_3= '(' ( (lv_value_4_0= ruleListPartitionValue ) )+ otherlv_5= ')' (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )? (otherlv_8= ',' )?
            {
            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleListPartition5045); 

                	newLeafNode(otherlv_0, grammarAccess.getListPartitionAccess().getPartitionKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2366:1: ( (lv_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2367:1: (lv_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2367:1: (lv_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2368:3: lv_name_1_0= RULE_DBNAME
            {
            lv_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleListPartition5062); 

            			newLeafNode(lv_name_1_0, grammarAccess.getListPartitionAccess().getNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getListPartitionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,39,FOLLOW_39_in_ruleListPartition5079); 

                	newLeafNode(otherlv_2, grammarAccess.getListPartitionAccess().getValuesKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleListPartition5091); 

                	newLeafNode(otherlv_3, grammarAccess.getListPartitionAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2392:1: ( (lv_value_4_0= ruleListPartitionValue ) )+
            int cnt69=0;
            loop69:
            do {
                int alt69=2;
                int LA69_0 = input.LA(1);

                if ( (LA69_0==RULE_STRING||LA69_0==45) ) {
                    alt69=1;
                }


                switch (alt69) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2393:1: (lv_value_4_0= ruleListPartitionValue )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2393:1: (lv_value_4_0= ruleListPartitionValue )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2394:3: lv_value_4_0= ruleListPartitionValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getListPartitionAccess().getValueListPartitionValueParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleListPartitionValue_in_ruleListPartition5112);
            	    lv_value_4_0=ruleListPartitionValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getListPartitionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"value",
            	            		lv_value_4_0, 
            	            		"ListPartitionValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt69 >= 1 ) break loop69;
                        EarlyExitException eee =
                            new EarlyExitException(69, input);
                        throw eee;
                }
                cnt69++;
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleListPartition5125); 

                	newLeafNode(otherlv_5, grammarAccess.getListPartitionAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2414:1: (otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) ) )?
            int alt70=2;
            int LA70_0 = input.LA(1);

            if ( (LA70_0==23) ) {
                alt70=1;
            }
            switch (alt70) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2414:3: otherlv_6= 'tablespace' ( (lv_tablespace_7_0= RULE_DBNAME ) )
                    {
                    otherlv_6=(Token)match(input,23,FOLLOW_23_in_ruleListPartition5138); 

                        	newLeafNode(otherlv_6, grammarAccess.getListPartitionAccess().getTablespaceKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2418:1: ( (lv_tablespace_7_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2419:1: (lv_tablespace_7_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2419:1: (lv_tablespace_7_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2420:3: lv_tablespace_7_0= RULE_DBNAME
                    {
                    lv_tablespace_7_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleListPartition5155); 

                    			newLeafNode(lv_tablespace_7_0, grammarAccess.getListPartitionAccess().getTablespaceDBNAMETerminalRuleCall_6_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getListPartitionRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_7_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2436:4: (otherlv_8= ',' )?
            int alt71=2;
            int LA71_0 = input.LA(1);

            if ( (LA71_0==42) ) {
                alt71=1;
            }
            switch (alt71) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2436:6: otherlv_8= ','
                    {
                    otherlv_8=(Token)match(input,42,FOLLOW_42_in_ruleListPartition5175); 

                        	newLeafNode(otherlv_8, grammarAccess.getListPartitionAccess().getCommaKeyword_7());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleListPartition"


    // $ANTLR start "entryRuleListPartitionValue"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2448:1: entryRuleListPartitionValue returns [EObject current=null] : iv_ruleListPartitionValue= ruleListPartitionValue EOF ;
    public final EObject entryRuleListPartitionValue() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleListPartitionValue = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2449:2: (iv_ruleListPartitionValue= ruleListPartitionValue EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2450:2: iv_ruleListPartitionValue= ruleListPartitionValue EOF
            {
             newCompositeNode(grammarAccess.getListPartitionValueRule()); 
            pushFollow(FOLLOW_ruleListPartitionValue_in_entryRuleListPartitionValue5213);
            iv_ruleListPartitionValue=ruleListPartitionValue();

            state._fsp--;

             current =iv_ruleListPartitionValue; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleListPartitionValue5223); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleListPartitionValue"


    // $ANTLR start "ruleListPartitionValue"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2457:1: ruleListPartitionValue returns [EObject current=null] : ( ( ( (lv_default_0_0= 'default' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? ) ;
    public final EObject ruleListPartitionValue() throws RecognitionException {
        EObject current = null;

        Token lv_default_0_0=null;
        Token lv_value_1_0=null;
        Token otherlv_2=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2460:28: ( ( ( ( (lv_default_0_0= 'default' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2461:1: ( ( ( (lv_default_0_0= 'default' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2461:1: ( ( ( (lv_default_0_0= 'default' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2461:2: ( ( (lv_default_0_0= 'default' ) ) | ( (lv_value_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2461:2: ( ( (lv_default_0_0= 'default' ) ) | ( (lv_value_1_0= RULE_STRING ) ) )
            int alt72=2;
            int LA72_0 = input.LA(1);

            if ( (LA72_0==45) ) {
                alt72=1;
            }
            else if ( (LA72_0==RULE_STRING) ) {
                alt72=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 72, 0, input);

                throw nvae;
            }
            switch (alt72) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2461:3: ( (lv_default_0_0= 'default' ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2461:3: ( (lv_default_0_0= 'default' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2462:1: (lv_default_0_0= 'default' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2462:1: (lv_default_0_0= 'default' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2463:3: lv_default_0_0= 'default'
                    {
                    lv_default_0_0=(Token)match(input,45,FOLLOW_45_in_ruleListPartitionValue5267); 

                            newLeafNode(lv_default_0_0, grammarAccess.getListPartitionValueAccess().getDefaultDefaultKeyword_0_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getListPartitionValueRule());
                    	        }
                           		setWithLastConsumed(current, "default", lv_default_0_0, "default");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2477:6: ( (lv_value_1_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2477:6: ( (lv_value_1_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2478:1: (lv_value_1_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2478:1: (lv_value_1_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2479:3: lv_value_1_0= RULE_STRING
                    {
                    lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleListPartitionValue5303); 

                    			newLeafNode(lv_value_1_0, grammarAccess.getListPartitionValueAccess().getValueSTRINGTerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getListPartitionValueRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value",
                            		lv_value_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2495:3: (otherlv_2= ',' )?
            int alt73=2;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==42) ) {
                alt73=1;
            }
            switch (alt73) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2495:5: otherlv_2= ','
                    {
                    otherlv_2=(Token)match(input,42,FOLLOW_42_in_ruleListPartitionValue5322); 

                        	newLeafNode(otherlv_2, grammarAccess.getListPartitionValueAccess().getCommaKeyword_1());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleListPartitionValue"


    // $ANTLR start "entryRuleLobStorage"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2507:1: entryRuleLobStorage returns [EObject current=null] : iv_ruleLobStorage= ruleLobStorage EOF ;
    public final EObject entryRuleLobStorage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleLobStorage = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2508:2: (iv_ruleLobStorage= ruleLobStorage EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2509:2: iv_ruleLobStorage= ruleLobStorage EOF
            {
             newCompositeNode(grammarAccess.getLobStorageRule()); 
            pushFollow(FOLLOW_ruleLobStorage_in_entryRuleLobStorage5360);
            iv_ruleLobStorage=ruleLobStorage();

            state._fsp--;

             current =iv_ruleLobStorage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleLobStorage5370); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleLobStorage"


    // $ANTLR start "ruleLobStorage"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2516:1: ruleLobStorage returns [EObject current=null] : (otherlv_0= 'lob' otherlv_1= '(' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= 'store' otherlv_5= 'as' ( (lv_lobStorageType_6_0= ruleLobStorageType ) )? (otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')' )? ) ;
    public final EObject ruleLobStorage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_column_name_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Enumerator lv_lobStorageType_6_0 = null;

        EObject lv_lobStorageParameters_8_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2519:28: ( (otherlv_0= 'lob' otherlv_1= '(' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= 'store' otherlv_5= 'as' ( (lv_lobStorageType_6_0= ruleLobStorageType ) )? (otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2520:1: (otherlv_0= 'lob' otherlv_1= '(' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= 'store' otherlv_5= 'as' ( (lv_lobStorageType_6_0= ruleLobStorageType ) )? (otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2520:1: (otherlv_0= 'lob' otherlv_1= '(' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= 'store' otherlv_5= 'as' ( (lv_lobStorageType_6_0= ruleLobStorageType ) )? (otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2520:3: otherlv_0= 'lob' otherlv_1= '(' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= ')' otherlv_4= 'store' otherlv_5= 'as' ( (lv_lobStorageType_6_0= ruleLobStorageType ) )? (otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')' )?
            {
            otherlv_0=(Token)match(input,46,FOLLOW_46_in_ruleLobStorage5407); 

                	newLeafNode(otherlv_0, grammarAccess.getLobStorageAccess().getLobKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleLobStorage5419); 

                	newLeafNode(otherlv_1, grammarAccess.getLobStorageAccess().getLeftParenthesisKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2528:1: ( (lv_column_name_2_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2529:1: (lv_column_name_2_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2529:1: (lv_column_name_2_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2530:3: lv_column_name_2_0= RULE_DBNAME
            {
            lv_column_name_2_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleLobStorage5436); 

            			newLeafNode(lv_column_name_2_0, grammarAccess.getLobStorageAccess().getColumn_nameDBNAMETerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getLobStorageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"column_name",
                    		lv_column_name_2_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleLobStorage5453); 

                	newLeafNode(otherlv_3, grammarAccess.getLobStorageAccess().getRightParenthesisKeyword_3());
                
            otherlv_4=(Token)match(input,47,FOLLOW_47_in_ruleLobStorage5465); 

                	newLeafNode(otherlv_4, grammarAccess.getLobStorageAccess().getStoreKeyword_4());
                
            otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleLobStorage5477); 

                	newLeafNode(otherlv_5, grammarAccess.getLobStorageAccess().getAsKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2558:1: ( (lv_lobStorageType_6_0= ruleLobStorageType ) )?
            int alt74=2;
            int LA74_0 = input.LA(1);

            if ( ((LA74_0>=124 && LA74_0<=126)) ) {
                alt74=1;
            }
            switch (alt74) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2559:1: (lv_lobStorageType_6_0= ruleLobStorageType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2559:1: (lv_lobStorageType_6_0= ruleLobStorageType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2560:3: lv_lobStorageType_6_0= ruleLobStorageType
                    {
                     
                    	        newCompositeNode(grammarAccess.getLobStorageAccess().getLobStorageTypeLobStorageTypeEnumRuleCall_6_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLobStorageType_in_ruleLobStorage5498);
                    lv_lobStorageType_6_0=ruleLobStorageType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getLobStorageRule());
                    	        }
                           		set(
                           			current, 
                           			"lobStorageType",
                            		lv_lobStorageType_6_0, 
                            		"LobStorageType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2576:3: (otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')' )?
            int alt75=2;
            int LA75_0 = input.LA(1);

            if ( (LA75_0==18) ) {
                alt75=1;
            }
            switch (alt75) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2576:5: otherlv_7= '(' ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) ) otherlv_9= ')'
                    {
                    otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleLobStorage5512); 

                        	newLeafNode(otherlv_7, grammarAccess.getLobStorageAccess().getLeftParenthesisKeyword_7_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2580:1: ( (lv_lobStorageParameters_8_0= ruleLobStorageParameters ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2581:1: (lv_lobStorageParameters_8_0= ruleLobStorageParameters )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2581:1: (lv_lobStorageParameters_8_0= ruleLobStorageParameters )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2582:3: lv_lobStorageParameters_8_0= ruleLobStorageParameters
                    {
                     
                    	        newCompositeNode(grammarAccess.getLobStorageAccess().getLobStorageParametersLobStorageParametersParserRuleCall_7_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLobStorageParameters_in_ruleLobStorage5533);
                    lv_lobStorageParameters_8_0=ruleLobStorageParameters();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getLobStorageRule());
                    	        }
                           		set(
                           			current, 
                           			"lobStorageParameters",
                            		lv_lobStorageParameters_8_0, 
                            		"LobStorageParameters");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleLobStorage5545); 

                        	newLeafNode(otherlv_9, grammarAccess.getLobStorageAccess().getRightParenthesisKeyword_7_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleLobStorage"


    // $ANTLR start "entryRuleVarrayStorage"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2610:1: entryRuleVarrayStorage returns [EObject current=null] : iv_ruleVarrayStorage= ruleVarrayStorage EOF ;
    public final EObject entryRuleVarrayStorage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleVarrayStorage = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2611:2: (iv_ruleVarrayStorage= ruleVarrayStorage EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2612:2: iv_ruleVarrayStorage= ruleVarrayStorage EOF
            {
             newCompositeNode(grammarAccess.getVarrayStorageRule()); 
            pushFollow(FOLLOW_ruleVarrayStorage_in_entryRuleVarrayStorage5583);
            iv_ruleVarrayStorage=ruleVarrayStorage();

            state._fsp--;

             current =iv_ruleVarrayStorage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleVarrayStorage5593); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleVarrayStorage"


    // $ANTLR start "ruleVarrayStorage"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2619:1: ruleVarrayStorage returns [EObject current=null] : (otherlv_0= 'varray' ( (lv_column_name_1_0= RULE_DBNAME ) ) otherlv_2= 'store' otherlv_3= 'as' ( (lv_lobStorageType_4_0= ruleLobStorageType ) ) otherlv_5= 'lob' (otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')' )? ) ;
    public final EObject ruleVarrayStorage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_column_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_8=null;
        Enumerator lv_lobStorageType_4_0 = null;

        EObject lv_lobStorageParameters_7_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2622:28: ( (otherlv_0= 'varray' ( (lv_column_name_1_0= RULE_DBNAME ) ) otherlv_2= 'store' otherlv_3= 'as' ( (lv_lobStorageType_4_0= ruleLobStorageType ) ) otherlv_5= 'lob' (otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2623:1: (otherlv_0= 'varray' ( (lv_column_name_1_0= RULE_DBNAME ) ) otherlv_2= 'store' otherlv_3= 'as' ( (lv_lobStorageType_4_0= ruleLobStorageType ) ) otherlv_5= 'lob' (otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2623:1: (otherlv_0= 'varray' ( (lv_column_name_1_0= RULE_DBNAME ) ) otherlv_2= 'store' otherlv_3= 'as' ( (lv_lobStorageType_4_0= ruleLobStorageType ) ) otherlv_5= 'lob' (otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2623:3: otherlv_0= 'varray' ( (lv_column_name_1_0= RULE_DBNAME ) ) otherlv_2= 'store' otherlv_3= 'as' ( (lv_lobStorageType_4_0= ruleLobStorageType ) ) otherlv_5= 'lob' (otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')' )?
            {
            otherlv_0=(Token)match(input,49,FOLLOW_49_in_ruleVarrayStorage5630); 

                	newLeafNode(otherlv_0, grammarAccess.getVarrayStorageAccess().getVarrayKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2627:1: ( (lv_column_name_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2628:1: (lv_column_name_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2628:1: (lv_column_name_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2629:3: lv_column_name_1_0= RULE_DBNAME
            {
            lv_column_name_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleVarrayStorage5647); 

            			newLeafNode(lv_column_name_1_0, grammarAccess.getVarrayStorageAccess().getColumn_nameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getVarrayStorageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"column_name",
                    		lv_column_name_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,47,FOLLOW_47_in_ruleVarrayStorage5664); 

                	newLeafNode(otherlv_2, grammarAccess.getVarrayStorageAccess().getStoreKeyword_2());
                
            otherlv_3=(Token)match(input,48,FOLLOW_48_in_ruleVarrayStorage5676); 

                	newLeafNode(otherlv_3, grammarAccess.getVarrayStorageAccess().getAsKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2653:1: ( (lv_lobStorageType_4_0= ruleLobStorageType ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2654:1: (lv_lobStorageType_4_0= ruleLobStorageType )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2654:1: (lv_lobStorageType_4_0= ruleLobStorageType )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2655:3: lv_lobStorageType_4_0= ruleLobStorageType
            {
             
            	        newCompositeNode(grammarAccess.getVarrayStorageAccess().getLobStorageTypeLobStorageTypeEnumRuleCall_4_0()); 
            	    
            pushFollow(FOLLOW_ruleLobStorageType_in_ruleVarrayStorage5697);
            lv_lobStorageType_4_0=ruleLobStorageType();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getVarrayStorageRule());
            	        }
                   		set(
                   			current, 
                   			"lobStorageType",
                    		lv_lobStorageType_4_0, 
                    		"LobStorageType");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_5=(Token)match(input,46,FOLLOW_46_in_ruleVarrayStorage5709); 

                	newLeafNode(otherlv_5, grammarAccess.getVarrayStorageAccess().getLobKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2675:1: (otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')' )?
            int alt76=2;
            int LA76_0 = input.LA(1);

            if ( (LA76_0==18) ) {
                alt76=1;
            }
            switch (alt76) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2675:3: otherlv_6= '(' ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) ) otherlv_8= ')'
                    {
                    otherlv_6=(Token)match(input,18,FOLLOW_18_in_ruleVarrayStorage5722); 

                        	newLeafNode(otherlv_6, grammarAccess.getVarrayStorageAccess().getLeftParenthesisKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2679:1: ( (lv_lobStorageParameters_7_0= ruleLobStorageParameters ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2680:1: (lv_lobStorageParameters_7_0= ruleLobStorageParameters )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2680:1: (lv_lobStorageParameters_7_0= ruleLobStorageParameters )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2681:3: lv_lobStorageParameters_7_0= ruleLobStorageParameters
                    {
                     
                    	        newCompositeNode(grammarAccess.getVarrayStorageAccess().getLobStorageParametersLobStorageParametersParserRuleCall_6_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLobStorageParameters_in_ruleVarrayStorage5743);
                    lv_lobStorageParameters_7_0=ruleLobStorageParameters();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getVarrayStorageRule());
                    	        }
                           		set(
                           			current, 
                           			"lobStorageParameters",
                            		lv_lobStorageParameters_7_0, 
                            		"LobStorageParameters");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_8=(Token)match(input,19,FOLLOW_19_in_ruleVarrayStorage5755); 

                        	newLeafNode(otherlv_8, grammarAccess.getVarrayStorageAccess().getRightParenthesisKeyword_6_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleVarrayStorage"


    // $ANTLR start "entryRuleNestedTableStorage"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2709:1: entryRuleNestedTableStorage returns [EObject current=null] : iv_ruleNestedTableStorage= ruleNestedTableStorage EOF ;
    public final EObject entryRuleNestedTableStorage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNestedTableStorage = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2710:2: (iv_ruleNestedTableStorage= ruleNestedTableStorage EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2711:2: iv_ruleNestedTableStorage= ruleNestedTableStorage EOF
            {
             newCompositeNode(grammarAccess.getNestedTableStorageRule()); 
            pushFollow(FOLLOW_ruleNestedTableStorage_in_entryRuleNestedTableStorage5793);
            iv_ruleNestedTableStorage=ruleNestedTableStorage();

            state._fsp--;

             current =iv_ruleNestedTableStorage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNestedTableStorage5803); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNestedTableStorage"


    // $ANTLR start "ruleNestedTableStorage"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2718:1: ruleNestedTableStorage returns [EObject current=null] : (otherlv_0= 'nested' otherlv_1= 'table' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= 'store' otherlv_4= 'as' ( ( (lv_storage_clause_5_0= RULE_DBNAME ) ) | ( (lv_storage_clause_string_6_0= RULE_STRING ) ) ) ) ;
    public final EObject ruleNestedTableStorage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_column_name_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token lv_storage_clause_5_0=null;
        Token lv_storage_clause_string_6_0=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2721:28: ( (otherlv_0= 'nested' otherlv_1= 'table' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= 'store' otherlv_4= 'as' ( ( (lv_storage_clause_5_0= RULE_DBNAME ) ) | ( (lv_storage_clause_string_6_0= RULE_STRING ) ) ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2722:1: (otherlv_0= 'nested' otherlv_1= 'table' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= 'store' otherlv_4= 'as' ( ( (lv_storage_clause_5_0= RULE_DBNAME ) ) | ( (lv_storage_clause_string_6_0= RULE_STRING ) ) ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2722:1: (otherlv_0= 'nested' otherlv_1= 'table' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= 'store' otherlv_4= 'as' ( ( (lv_storage_clause_5_0= RULE_DBNAME ) ) | ( (lv_storage_clause_string_6_0= RULE_STRING ) ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2722:3: otherlv_0= 'nested' otherlv_1= 'table' ( (lv_column_name_2_0= RULE_DBNAME ) ) otherlv_3= 'store' otherlv_4= 'as' ( ( (lv_storage_clause_5_0= RULE_DBNAME ) ) | ( (lv_storage_clause_string_6_0= RULE_STRING ) ) )
            {
            otherlv_0=(Token)match(input,50,FOLLOW_50_in_ruleNestedTableStorage5840); 

                	newLeafNode(otherlv_0, grammarAccess.getNestedTableStorageAccess().getNestedKeyword_0());
                
            otherlv_1=(Token)match(input,14,FOLLOW_14_in_ruleNestedTableStorage5852); 

                	newLeafNode(otherlv_1, grammarAccess.getNestedTableStorageAccess().getTableKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2730:1: ( (lv_column_name_2_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2731:1: (lv_column_name_2_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2731:1: (lv_column_name_2_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2732:3: lv_column_name_2_0= RULE_DBNAME
            {
            lv_column_name_2_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleNestedTableStorage5869); 

            			newLeafNode(lv_column_name_2_0, grammarAccess.getNestedTableStorageAccess().getColumn_nameDBNAMETerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNestedTableStorageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"column_name",
                    		lv_column_name_2_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleNestedTableStorage5886); 

                	newLeafNode(otherlv_3, grammarAccess.getNestedTableStorageAccess().getStoreKeyword_3());
                
            otherlv_4=(Token)match(input,48,FOLLOW_48_in_ruleNestedTableStorage5898); 

                	newLeafNode(otherlv_4, grammarAccess.getNestedTableStorageAccess().getAsKeyword_4());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2756:1: ( ( (lv_storage_clause_5_0= RULE_DBNAME ) ) | ( (lv_storage_clause_string_6_0= RULE_STRING ) ) )
            int alt77=2;
            int LA77_0 = input.LA(1);

            if ( (LA77_0==RULE_DBNAME) ) {
                alt77=1;
            }
            else if ( (LA77_0==RULE_STRING) ) {
                alt77=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 77, 0, input);

                throw nvae;
            }
            switch (alt77) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2756:2: ( (lv_storage_clause_5_0= RULE_DBNAME ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2756:2: ( (lv_storage_clause_5_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2757:1: (lv_storage_clause_5_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2757:1: (lv_storage_clause_5_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2758:3: lv_storage_clause_5_0= RULE_DBNAME
                    {
                    lv_storage_clause_5_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleNestedTableStorage5916); 

                    			newLeafNode(lv_storage_clause_5_0, grammarAccess.getNestedTableStorageAccess().getStorage_clauseDBNAMETerminalRuleCall_5_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNestedTableStorageRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"storage_clause",
                            		lv_storage_clause_5_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2775:6: ( (lv_storage_clause_string_6_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2775:6: ( (lv_storage_clause_string_6_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2776:1: (lv_storage_clause_string_6_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2776:1: (lv_storage_clause_string_6_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2777:3: lv_storage_clause_string_6_0= RULE_STRING
                    {
                    lv_storage_clause_string_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNestedTableStorage5944); 

                    			newLeafNode(lv_storage_clause_string_6_0, grammarAccess.getNestedTableStorageAccess().getStorage_clause_stringSTRINGTerminalRuleCall_5_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNestedTableStorageRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"storage_clause_string",
                            		lv_storage_clause_string_6_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNestedTableStorage"


    // $ANTLR start "entryRuleLobStorageParameters"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2801:1: entryRuleLobStorageParameters returns [EObject current=null] : iv_ruleLobStorageParameters= ruleLobStorageParameters EOF ;
    public final EObject entryRuleLobStorageParameters() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleLobStorageParameters = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2802:2: (iv_ruleLobStorageParameters= ruleLobStorageParameters EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2803:2: iv_ruleLobStorageParameters= ruleLobStorageParameters EOF
            {
             newCompositeNode(grammarAccess.getLobStorageParametersRule()); 
            pushFollow(FOLLOW_ruleLobStorageParameters_in_entryRuleLobStorageParameters5986);
            iv_ruleLobStorageParameters=ruleLobStorageParameters();

            state._fsp--;

             current =iv_ruleLobStorageParameters; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleLobStorageParameters5996); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleLobStorageParameters"


    // $ANTLR start "ruleLobStorageParameters"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2810:1: ruleLobStorageParameters returns [EObject current=null] : ( (otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) ) )? ( (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType ) )? ( ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )? )? ) ;
    public final EObject ruleLobStorageParameters() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_tablespace_1_0=null;
        Enumerator lv_lobDeduplicateType_2_0 = null;

        Enumerator lv_compressType_3_0 = null;

        Enumerator lv_lobCompressForType_4_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2813:28: ( ( (otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) ) )? ( (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType ) )? ( ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )? )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2814:1: ( (otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) ) )? ( (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType ) )? ( ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )? )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2814:1: ( (otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) ) )? ( (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType ) )? ( ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )? )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2814:2: (otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) ) )? ( (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType ) )? ( ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )? )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2814:2: (otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) ) )?
            int alt78=2;
            int LA78_0 = input.LA(1);

            if ( (LA78_0==23) ) {
                alt78=1;
            }
            switch (alt78) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2814:4: otherlv_0= 'tablespace' ( (lv_tablespace_1_0= RULE_DBNAME ) )
                    {
                    otherlv_0=(Token)match(input,23,FOLLOW_23_in_ruleLobStorageParameters6034); 

                        	newLeafNode(otherlv_0, grammarAccess.getLobStorageParametersAccess().getTablespaceKeyword_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2818:1: ( (lv_tablespace_1_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2819:1: (lv_tablespace_1_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2819:1: (lv_tablespace_1_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2820:3: lv_tablespace_1_0= RULE_DBNAME
                    {
                    lv_tablespace_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleLobStorageParameters6051); 

                    			newLeafNode(lv_tablespace_1_0, grammarAccess.getLobStorageParametersAccess().getTablespaceDBNAMETerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getLobStorageParametersRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_1_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2836:4: ( (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType ) )?
            int alt79=2;
            int LA79_0 = input.LA(1);

            if ( ((LA79_0>=127 && LA79_0<=129)) ) {
                alt79=1;
            }
            switch (alt79) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2837:1: (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2837:1: (lv_lobDeduplicateType_2_0= ruleLobDeduplicateType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2838:3: lv_lobDeduplicateType_2_0= ruleLobDeduplicateType
                    {
                     
                    	        newCompositeNode(grammarAccess.getLobStorageParametersAccess().getLobDeduplicateTypeLobDeduplicateTypeEnumRuleCall_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLobDeduplicateType_in_ruleLobStorageParameters6079);
                    lv_lobDeduplicateType_2_0=ruleLobDeduplicateType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getLobStorageParametersRule());
                    	        }
                           		set(
                           			current, 
                           			"lobDeduplicateType",
                            		lv_lobDeduplicateType_2_0, 
                            		"LobDeduplicateType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2854:3: ( ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )? )?
            int alt81=2;
            int LA81_0 = input.LA(1);

            if ( ((LA81_0>=198 && LA81_0<=200)) ) {
                alt81=1;
            }
            switch (alt81) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2854:4: ( (lv_compressType_3_0= ruleCompressType ) ) ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2854:4: ( (lv_compressType_3_0= ruleCompressType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2855:1: (lv_compressType_3_0= ruleCompressType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2855:1: (lv_compressType_3_0= ruleCompressType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2856:3: lv_compressType_3_0= ruleCompressType
                    {
                     
                    	        newCompositeNode(grammarAccess.getLobStorageParametersAccess().getCompressTypeCompressTypeEnumRuleCall_2_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCompressType_in_ruleLobStorageParameters6102);
                    lv_compressType_3_0=ruleCompressType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getLobStorageParametersRule());
                    	        }
                           		set(
                           			current, 
                           			"compressType",
                            		lv_compressType_3_0, 
                            		"CompressType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2872:2: ( (lv_lobCompressForType_4_0= ruleLobCompressForType ) )?
                    int alt80=2;
                    int LA80_0 = input.LA(1);

                    if ( ((LA80_0>=194 && LA80_0<=197)) ) {
                        alt80=1;
                    }
                    switch (alt80) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2873:1: (lv_lobCompressForType_4_0= ruleLobCompressForType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2873:1: (lv_lobCompressForType_4_0= ruleLobCompressForType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2874:3: lv_lobCompressForType_4_0= ruleLobCompressForType
                            {
                             
                            	        newCompositeNode(grammarAccess.getLobStorageParametersAccess().getLobCompressForTypeLobCompressForTypeEnumRuleCall_2_1_0()); 
                            	    
                            pushFollow(FOLLOW_ruleLobCompressForType_in_ruleLobStorageParameters6123);
                            lv_lobCompressForType_4_0=ruleLobCompressForType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getLobStorageParametersRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"lobCompressForType",
                                    		lv_lobCompressForType_4_0, 
                                    		"LobCompressForType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleLobStorageParameters"


    // $ANTLR start "entryRuleColumn"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2898:1: entryRuleColumn returns [EObject current=null] : iv_ruleColumn= ruleColumn EOF ;
    public final EObject entryRuleColumn() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleColumn = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2899:2: (iv_ruleColumn= ruleColumn EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2900:2: iv_ruleColumn= ruleColumn EOF
            {
             newCompositeNode(grammarAccess.getColumnRule()); 
            pushFollow(FOLLOW_ruleColumn_in_entryRuleColumn6162);
            iv_ruleColumn=ruleColumn();

            state._fsp--;

             current =iv_ruleColumn; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleColumn6172); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleColumn"


    // $ANTLR start "ruleColumn"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2907:1: ruleColumn returns [EObject current=null] : ( ( ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? ) | ( (lv_name_string_3_0= RULE_STRING ) ) ) ( (lv_data_type_4_0= ruleDataType ) )? (otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')' )? ( (lv_unsigned_11_0= 'unsigned' ) )? ( (lv_with_time_zone_12_0= 'with_time_zone' ) )? (otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) ) )? ( (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) ) | (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) ) )? (otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) ) )? ( (lv_identity_24_0= ruleColumnIdentity ) )? ( (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null' )? (otherlv_29= ',' )? ) ;
    public final EObject ruleColumn() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token otherlv_1=null;
        Token lv_domain_2_0=null;
        Token lv_name_string_3_0=null;
        Token otherlv_5=null;
        Token lv_precision_6_0=null;
        Token otherlv_7=null;
        Token lv_scale_8_0=null;
        Token otherlv_10=null;
        Token lv_unsigned_11_0=null;
        Token lv_with_time_zone_12_0=null;
        Token otherlv_13=null;
        Token lv_object_type_14_0=null;
        Token otherlv_15=null;
        Token lv_default_value_16_0=null;
        Token otherlv_17=null;
        Token otherlv_18=null;
        Token lv_default_value_19_0=null;
        Token otherlv_20=null;
        Token lv_virtual_21_0=null;
        Token otherlv_22=null;
        Token lv_default_name_23_0=null;
        Token otherlv_25=null;
        Token lv_not_null_constraint_name_26_0=null;
        Token lv_notnull_27_0=null;
        Token otherlv_28=null;
        Token otherlv_29=null;
        Enumerator lv_data_type_4_0 = null;

        Enumerator lv_byteorchar_9_0 = null;

        EObject lv_identity_24_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2910:28: ( ( ( ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? ) | ( (lv_name_string_3_0= RULE_STRING ) ) ) ( (lv_data_type_4_0= ruleDataType ) )? (otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')' )? ( (lv_unsigned_11_0= 'unsigned' ) )? ( (lv_with_time_zone_12_0= 'with_time_zone' ) )? (otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) ) )? ( (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) ) | (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) ) )? (otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) ) )? ( (lv_identity_24_0= ruleColumnIdentity ) )? ( (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null' )? (otherlv_29= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:1: ( ( ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? ) | ( (lv_name_string_3_0= RULE_STRING ) ) ) ( (lv_data_type_4_0= ruleDataType ) )? (otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')' )? ( (lv_unsigned_11_0= 'unsigned' ) )? ( (lv_with_time_zone_12_0= 'with_time_zone' ) )? (otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) ) )? ( (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) ) | (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) ) )? (otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) ) )? ( (lv_identity_24_0= ruleColumnIdentity ) )? ( (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null' )? (otherlv_29= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:1: ( ( ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? ) | ( (lv_name_string_3_0= RULE_STRING ) ) ) ( (lv_data_type_4_0= ruleDataType ) )? (otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')' )? ( (lv_unsigned_11_0= 'unsigned' ) )? ( (lv_with_time_zone_12_0= 'with_time_zone' ) )? (otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) ) )? ( (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) ) | (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) ) )? (otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) ) )? ( (lv_identity_24_0= ruleColumnIdentity ) )? ( (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null' )? (otherlv_29= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:2: ( ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? ) | ( (lv_name_string_3_0= RULE_STRING ) ) ) ( (lv_data_type_4_0= ruleDataType ) )? (otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')' )? ( (lv_unsigned_11_0= 'unsigned' ) )? ( (lv_with_time_zone_12_0= 'with_time_zone' ) )? (otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) ) )? ( (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) ) | (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) ) )? (otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) ) )? ( (lv_identity_24_0= ruleColumnIdentity ) )? ( (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null' )? (otherlv_29= ',' )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:2: ( ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? ) | ( (lv_name_string_3_0= RULE_STRING ) ) )
            int alt83=2;
            int LA83_0 = input.LA(1);

            if ( (LA83_0==RULE_DBNAME) ) {
                alt83=1;
            }
            else if ( (LA83_0==RULE_STRING) ) {
                alt83=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 83, 0, input);

                throw nvae;
            }
            switch (alt83) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:3: ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:3: ( ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )? )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:4: ( (lv_name_0_0= RULE_DBNAME ) ) (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2911:4: ( (lv_name_0_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2912:1: (lv_name_0_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2912:1: (lv_name_0_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2913:3: lv_name_0_0= RULE_DBNAME
                    {
                    lv_name_0_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleColumn6216); 

                    			newLeafNode(lv_name_0_0, grammarAccess.getColumnAccess().getNameDBNAMETerminalRuleCall_0_0_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"name",
                            		lv_name_0_0, 
                            		"DBNAME");
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2929:2: (otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) ) )?
                    int alt82=2;
                    int LA82_0 = input.LA(1);

                    if ( (LA82_0==16) ) {
                        alt82=1;
                    }
                    switch (alt82) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2929:4: otherlv_1= 'domain' ( (lv_domain_2_0= RULE_DBNAME ) )
                            {
                            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleColumn6234); 

                                	newLeafNode(otherlv_1, grammarAccess.getColumnAccess().getDomainKeyword_0_0_1_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2933:1: ( (lv_domain_2_0= RULE_DBNAME ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2934:1: (lv_domain_2_0= RULE_DBNAME )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2934:1: (lv_domain_2_0= RULE_DBNAME )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2935:3: lv_domain_2_0= RULE_DBNAME
                            {
                            lv_domain_2_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleColumn6251); 

                            			newLeafNode(lv_domain_2_0, grammarAccess.getColumnAccess().getDomainDBNAMETerminalRuleCall_0_0_1_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"domain",
                                    		lv_domain_2_0, 
                                    		"DBNAME");
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2952:6: ( (lv_name_string_3_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2952:6: ( (lv_name_string_3_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2953:1: (lv_name_string_3_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2953:1: (lv_name_string_3_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2954:3: lv_name_string_3_0= RULE_STRING
                    {
                    lv_name_string_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColumn6282); 

                    			newLeafNode(lv_name_string_3_0, grammarAccess.getColumnAccess().getName_stringSTRINGTerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"name_string",
                            		lv_name_string_3_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2970:3: ( (lv_data_type_4_0= ruleDataType ) )?
            int alt84=2;
            int LA84_0 = input.LA(1);

            if ( (LA84_0==85||(LA84_0>=130 && LA84_0<=153)) ) {
                alt84=1;
            }
            switch (alt84) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2971:1: (lv_data_type_4_0= ruleDataType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2971:1: (lv_data_type_4_0= ruleDataType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2972:3: lv_data_type_4_0= ruleDataType
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnAccess().getData_typeDataTypeEnumRuleCall_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleDataType_in_ruleColumn6309);
                    lv_data_type_4_0=ruleDataType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnRule());
                    	        }
                           		set(
                           			current, 
                           			"data_type",
                            		lv_data_type_4_0, 
                            		"DataType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2988:3: (otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')' )?
            int alt87=2;
            int LA87_0 = input.LA(1);

            if ( (LA87_0==18) ) {
                alt87=1;
            }
            switch (alt87) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2988:5: otherlv_5= '(' ( (lv_precision_6_0= RULE_INT ) ) (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )? ( (lv_byteorchar_9_0= ruleCharType ) )? otherlv_10= ')'
                    {
                    otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleColumn6323); 

                        	newLeafNode(otherlv_5, grammarAccess.getColumnAccess().getLeftParenthesisKeyword_2_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2992:1: ( (lv_precision_6_0= RULE_INT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2993:1: (lv_precision_6_0= RULE_INT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2993:1: (lv_precision_6_0= RULE_INT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:2994:3: lv_precision_6_0= RULE_INT
                    {
                    lv_precision_6_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumn6340); 

                    			newLeafNode(lv_precision_6_0, grammarAccess.getColumnAccess().getPrecisionINTTerminalRuleCall_2_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"precision",
                            		lv_precision_6_0, 
                            		"INT");
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3010:2: (otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) ) )?
                    int alt85=2;
                    int LA85_0 = input.LA(1);

                    if ( (LA85_0==42) ) {
                        alt85=1;
                    }
                    switch (alt85) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3010:4: otherlv_7= ',' ( (lv_scale_8_0= RULE_INT ) )
                            {
                            otherlv_7=(Token)match(input,42,FOLLOW_42_in_ruleColumn6358); 

                                	newLeafNode(otherlv_7, grammarAccess.getColumnAccess().getCommaKeyword_2_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3014:1: ( (lv_scale_8_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3015:1: (lv_scale_8_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3015:1: (lv_scale_8_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3016:3: lv_scale_8_0= RULE_INT
                            {
                            lv_scale_8_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumn6375); 

                            			newLeafNode(lv_scale_8_0, grammarAccess.getColumnAccess().getScaleINTTerminalRuleCall_2_2_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"scale",
                                    		lv_scale_8_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3032:4: ( (lv_byteorchar_9_0= ruleCharType ) )?
                    int alt86=2;
                    int LA86_0 = input.LA(1);

                    if ( (LA86_0==137||(LA86_0>=160 && LA86_0<=163)) ) {
                        alt86=1;
                    }
                    switch (alt86) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3033:1: (lv_byteorchar_9_0= ruleCharType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3033:1: (lv_byteorchar_9_0= ruleCharType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3034:3: lv_byteorchar_9_0= ruleCharType
                            {
                             
                            	        newCompositeNode(grammarAccess.getColumnAccess().getByteorcharCharTypeEnumRuleCall_2_3_0()); 
                            	    
                            pushFollow(FOLLOW_ruleCharType_in_ruleColumn6403);
                            lv_byteorchar_9_0=ruleCharType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getColumnRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"byteorchar",
                                    		lv_byteorchar_9_0, 
                                    		"CharType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }

                    otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleColumn6416); 

                        	newLeafNode(otherlv_10, grammarAccess.getColumnAccess().getRightParenthesisKeyword_2_4());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3054:3: ( (lv_unsigned_11_0= 'unsigned' ) )?
            int alt88=2;
            int LA88_0 = input.LA(1);

            if ( (LA88_0==51) ) {
                alt88=1;
            }
            switch (alt88) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3055:1: (lv_unsigned_11_0= 'unsigned' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3055:1: (lv_unsigned_11_0= 'unsigned' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3056:3: lv_unsigned_11_0= 'unsigned'
                    {
                    lv_unsigned_11_0=(Token)match(input,51,FOLLOW_51_in_ruleColumn6436); 

                            newLeafNode(lv_unsigned_11_0, grammarAccess.getColumnAccess().getUnsignedUnsignedKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(current, "unsigned", true, "unsigned");
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3069:3: ( (lv_with_time_zone_12_0= 'with_time_zone' ) )?
            int alt89=2;
            int LA89_0 = input.LA(1);

            if ( (LA89_0==52) ) {
                alt89=1;
            }
            switch (alt89) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3070:1: (lv_with_time_zone_12_0= 'with_time_zone' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3070:1: (lv_with_time_zone_12_0= 'with_time_zone' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3071:3: lv_with_time_zone_12_0= 'with_time_zone'
                    {
                    lv_with_time_zone_12_0=(Token)match(input,52,FOLLOW_52_in_ruleColumn6468); 

                            newLeafNode(lv_with_time_zone_12_0, grammarAccess.getColumnAccess().getWith_time_zoneWith_time_zoneKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(current, "with_time_zone", lv_with_time_zone_12_0, "with_time_zone");
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3084:3: (otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) ) )?
            int alt90=2;
            int LA90_0 = input.LA(1);

            if ( (LA90_0==53) ) {
                alt90=1;
            }
            switch (alt90) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3084:5: otherlv_13= 'type' ( (lv_object_type_14_0= RULE_STRING ) )
                    {
                    otherlv_13=(Token)match(input,53,FOLLOW_53_in_ruleColumn6495); 

                        	newLeafNode(otherlv_13, grammarAccess.getColumnAccess().getTypeKeyword_5_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3088:1: ( (lv_object_type_14_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3089:1: (lv_object_type_14_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3089:1: (lv_object_type_14_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3090:3: lv_object_type_14_0= RULE_STRING
                    {
                    lv_object_type_14_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColumn6512); 

                    			newLeafNode(lv_object_type_14_0, grammarAccess.getColumnAccess().getObject_typeSTRINGTerminalRuleCall_5_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"object_type",
                            		lv_object_type_14_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3106:4: ( (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) ) | (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) ) )?
            int alt91=3;
            int LA91_0 = input.LA(1);

            if ( (LA91_0==45) ) {
                alt91=1;
            }
            else if ( (LA91_0==48) ) {
                alt91=2;
            }
            switch (alt91) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3106:5: (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3106:5: (otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3106:7: otherlv_15= 'default' ( (lv_default_value_16_0= RULE_STRING ) )
                    {
                    otherlv_15=(Token)match(input,45,FOLLOW_45_in_ruleColumn6533); 

                        	newLeafNode(otherlv_15, grammarAccess.getColumnAccess().getDefaultKeyword_6_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3110:1: ( (lv_default_value_16_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3111:1: (lv_default_value_16_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3111:1: (lv_default_value_16_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3112:3: lv_default_value_16_0= RULE_STRING
                    {
                    lv_default_value_16_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColumn6550); 

                    			newLeafNode(lv_default_value_16_0, grammarAccess.getColumnAccess().getDefault_valueSTRINGTerminalRuleCall_6_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"default_value",
                            		lv_default_value_16_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3129:6: (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3129:6: (otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3129:8: otherlv_17= 'as' otherlv_18= '(' ( (lv_default_value_19_0= RULE_STRING ) ) otherlv_20= ')' ( (lv_virtual_21_0= 'virtual' ) )
                    {
                    otherlv_17=(Token)match(input,48,FOLLOW_48_in_ruleColumn6575); 

                        	newLeafNode(otherlv_17, grammarAccess.getColumnAccess().getAsKeyword_6_1_0());
                        
                    otherlv_18=(Token)match(input,18,FOLLOW_18_in_ruleColumn6587); 

                        	newLeafNode(otherlv_18, grammarAccess.getColumnAccess().getLeftParenthesisKeyword_6_1_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3137:1: ( (lv_default_value_19_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3138:1: (lv_default_value_19_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3138:1: (lv_default_value_19_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3139:3: lv_default_value_19_0= RULE_STRING
                    {
                    lv_default_value_19_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColumn6604); 

                    			newLeafNode(lv_default_value_19_0, grammarAccess.getColumnAccess().getDefault_valueSTRINGTerminalRuleCall_6_1_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"default_value",
                            		lv_default_value_19_0, 
                            		"STRING");
                    	    

                    }


                    }

                    otherlv_20=(Token)match(input,19,FOLLOW_19_in_ruleColumn6621); 

                        	newLeafNode(otherlv_20, grammarAccess.getColumnAccess().getRightParenthesisKeyword_6_1_3());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3159:1: ( (lv_virtual_21_0= 'virtual' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3160:1: (lv_virtual_21_0= 'virtual' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3160:1: (lv_virtual_21_0= 'virtual' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3161:3: lv_virtual_21_0= 'virtual'
                    {
                    lv_virtual_21_0=(Token)match(input,54,FOLLOW_54_in_ruleColumn6639); 

                            newLeafNode(lv_virtual_21_0, grammarAccess.getColumnAccess().getVirtualVirtualKeyword_6_1_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(current, "virtual", lv_virtual_21_0, "virtual");
                    	    

                    }


                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3174:5: (otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) ) )?
            int alt92=2;
            int LA92_0 = input.LA(1);

            if ( (LA92_0==55) ) {
                alt92=1;
            }
            switch (alt92) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3174:7: otherlv_22= 'defaultname' ( (lv_default_name_23_0= RULE_DBNAME ) )
                    {
                    otherlv_22=(Token)match(input,55,FOLLOW_55_in_ruleColumn6668); 

                        	newLeafNode(otherlv_22, grammarAccess.getColumnAccess().getDefaultnameKeyword_7_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3178:1: ( (lv_default_name_23_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3179:1: (lv_default_name_23_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3179:1: (lv_default_name_23_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3180:3: lv_default_name_23_0= RULE_DBNAME
                    {
                    lv_default_name_23_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleColumn6685); 

                    			newLeafNode(lv_default_name_23_0, grammarAccess.getColumnAccess().getDefault_nameDBNAMETerminalRuleCall_7_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"default_name",
                            		lv_default_name_23_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3196:4: ( (lv_identity_24_0= ruleColumnIdentity ) )?
            int alt93=2;
            int LA93_0 = input.LA(1);

            if ( (LA93_0==80) ) {
                alt93=1;
            }
            switch (alt93) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3197:1: (lv_identity_24_0= ruleColumnIdentity )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3197:1: (lv_identity_24_0= ruleColumnIdentity )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3198:3: lv_identity_24_0= ruleColumnIdentity
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnAccess().getIdentityColumnIdentityParserRuleCall_8_0()); 
                    	    
                    pushFollow(FOLLOW_ruleColumnIdentity_in_ruleColumn6713);
                    lv_identity_24_0=ruleColumnIdentity();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnRule());
                    	        }
                           		set(
                           			current, 
                           			"identity",
                            		lv_identity_24_0, 
                            		"ColumnIdentity");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3214:3: ( (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null' )?
            int alt95=2;
            int LA95_0 = input.LA(1);

            if ( (LA95_0==56) ) {
                int LA95_1 = input.LA(2);

                if ( (LA95_1==RULE_DBNAME) ) {
                    int LA95_4 = input.LA(3);

                    if ( (LA95_4==57) ) {
                        alt95=1;
                    }
                }
            }
            else if ( (LA95_0==57) ) {
                alt95=1;
            }
            switch (alt95) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3214:4: (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )? ( (lv_notnull_27_0= 'not' ) ) otherlv_28= 'null'
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3214:4: (otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) ) )?
                    int alt94=2;
                    int LA94_0 = input.LA(1);

                    if ( (LA94_0==56) ) {
                        alt94=1;
                    }
                    switch (alt94) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3214:6: otherlv_25= 'constraint' ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) )
                            {
                            otherlv_25=(Token)match(input,56,FOLLOW_56_in_ruleColumn6728); 

                                	newLeafNode(otherlv_25, grammarAccess.getColumnAccess().getConstraintKeyword_9_0_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3218:1: ( (lv_not_null_constraint_name_26_0= RULE_DBNAME ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3219:1: (lv_not_null_constraint_name_26_0= RULE_DBNAME )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3219:1: (lv_not_null_constraint_name_26_0= RULE_DBNAME )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3220:3: lv_not_null_constraint_name_26_0= RULE_DBNAME
                            {
                            lv_not_null_constraint_name_26_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleColumn6745); 

                            			newLeafNode(lv_not_null_constraint_name_26_0, grammarAccess.getColumnAccess().getNot_null_constraint_nameDBNAMETerminalRuleCall_9_0_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"not_null_constraint_name",
                                    		lv_not_null_constraint_name_26_0, 
                                    		"DBNAME");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3236:4: ( (lv_notnull_27_0= 'not' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3237:1: (lv_notnull_27_0= 'not' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3237:1: (lv_notnull_27_0= 'not' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3238:3: lv_notnull_27_0= 'not'
                    {
                    lv_notnull_27_0=(Token)match(input,57,FOLLOW_57_in_ruleColumn6770); 

                            newLeafNode(lv_notnull_27_0, grammarAccess.getColumnAccess().getNotnullNotKeyword_9_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRule());
                    	        }
                           		setWithLastConsumed(current, "notnull", true, "not");
                    	    

                    }


                    }

                    otherlv_28=(Token)match(input,58,FOLLOW_58_in_ruleColumn6795); 

                        	newLeafNode(otherlv_28, grammarAccess.getColumnAccess().getNullKeyword_9_2());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3255:3: (otherlv_29= ',' )?
            int alt96=2;
            int LA96_0 = input.LA(1);

            if ( (LA96_0==42) ) {
                alt96=1;
            }
            switch (alt96) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3255:5: otherlv_29= ','
                    {
                    otherlv_29=(Token)match(input,42,FOLLOW_42_in_ruleColumn6810); 

                        	newLeafNode(otherlv_29, grammarAccess.getColumnAccess().getCommaKeyword_10());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleColumn"


    // $ANTLR start "entryRuleConstraint"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3267:1: entryRuleConstraint returns [EObject current=null] : iv_ruleConstraint= ruleConstraint EOF ;
    public final EObject entryRuleConstraint() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleConstraint = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3268:2: (iv_ruleConstraint= ruleConstraint EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3269:2: iv_ruleConstraint= ruleConstraint EOF
            {
             newCompositeNode(grammarAccess.getConstraintRule()); 
            pushFollow(FOLLOW_ruleConstraint_in_entryRuleConstraint6848);
            iv_ruleConstraint=ruleConstraint();

            state._fsp--;

             current =iv_ruleConstraint; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleConstraint6858); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleConstraint"


    // $ANTLR start "ruleConstraint"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3276:1: ruleConstraint returns [EObject current=null] : (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'check' otherlv_3= '(' ( (lv_rule_4_0= RULE_STRING ) ) otherlv_5= ')' (otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) ) )? ( (lv_status_9_0= ruleEnableType ) )? (otherlv_10= ',' )? ) ;
    public final EObject ruleConstraint() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_consName_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token lv_rule_4_0=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_10=null;
        Enumerator lv_deferrtype_8_0 = null;

        Enumerator lv_status_9_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3279:28: ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'check' otherlv_3= '(' ( (lv_rule_4_0= RULE_STRING ) ) otherlv_5= ')' (otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) ) )? ( (lv_status_9_0= ruleEnableType ) )? (otherlv_10= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3280:1: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'check' otherlv_3= '(' ( (lv_rule_4_0= RULE_STRING ) ) otherlv_5= ')' (otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) ) )? ( (lv_status_9_0= ruleEnableType ) )? (otherlv_10= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3280:1: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'check' otherlv_3= '(' ( (lv_rule_4_0= RULE_STRING ) ) otherlv_5= ')' (otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) ) )? ( (lv_status_9_0= ruleEnableType ) )? (otherlv_10= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3280:3: otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'check' otherlv_3= '(' ( (lv_rule_4_0= RULE_STRING ) ) otherlv_5= ')' (otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) ) )? ( (lv_status_9_0= ruleEnableType ) )? (otherlv_10= ',' )?
            {
            otherlv_0=(Token)match(input,56,FOLLOW_56_in_ruleConstraint6895); 

                	newLeafNode(otherlv_0, grammarAccess.getConstraintAccess().getConstraintKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3284:1: ( (lv_consName_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3285:1: (lv_consName_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3285:1: (lv_consName_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3286:3: lv_consName_1_0= RULE_DBNAME
            {
            lv_consName_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleConstraint6912); 

            			newLeafNode(lv_consName_1_0, grammarAccess.getConstraintAccess().getConsNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getConstraintRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"consName",
                    		lv_consName_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,59,FOLLOW_59_in_ruleConstraint6929); 

                	newLeafNode(otherlv_2, grammarAccess.getConstraintAccess().getCheckKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleConstraint6941); 

                	newLeafNode(otherlv_3, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3310:1: ( (lv_rule_4_0= RULE_STRING ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3311:1: (lv_rule_4_0= RULE_STRING )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3311:1: (lv_rule_4_0= RULE_STRING )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3312:3: lv_rule_4_0= RULE_STRING
            {
            lv_rule_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleConstraint6958); 

            			newLeafNode(lv_rule_4_0, grammarAccess.getConstraintAccess().getRuleSTRINGTerminalRuleCall_4_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getConstraintRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"rule",
                    		lv_rule_4_0, 
                    		"STRING");
            	    

            }


            }

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleConstraint6975); 

                	newLeafNode(otherlv_5, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3332:1: (otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) ) )?
            int alt97=2;
            int LA97_0 = input.LA(1);

            if ( (LA97_0==60) ) {
                alt97=1;
            }
            switch (alt97) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3332:3: otherlv_6= 'deferrable' otherlv_7= 'initially' ( (lv_deferrtype_8_0= ruleDeferrType ) )
                    {
                    otherlv_6=(Token)match(input,60,FOLLOW_60_in_ruleConstraint6988); 

                        	newLeafNode(otherlv_6, grammarAccess.getConstraintAccess().getDeferrableKeyword_6_0());
                        
                    otherlv_7=(Token)match(input,61,FOLLOW_61_in_ruleConstraint7000); 

                        	newLeafNode(otherlv_7, grammarAccess.getConstraintAccess().getInitiallyKeyword_6_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3340:1: ( (lv_deferrtype_8_0= ruleDeferrType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3341:1: (lv_deferrtype_8_0= ruleDeferrType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3341:1: (lv_deferrtype_8_0= ruleDeferrType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3342:3: lv_deferrtype_8_0= ruleDeferrType
                    {
                     
                    	        newCompositeNode(grammarAccess.getConstraintAccess().getDeferrtypeDeferrTypeEnumRuleCall_6_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleDeferrType_in_ruleConstraint7021);
                    lv_deferrtype_8_0=ruleDeferrType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getConstraintRule());
                    	        }
                           		set(
                           			current, 
                           			"deferrtype",
                            		lv_deferrtype_8_0, 
                            		"DeferrType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3358:4: ( (lv_status_9_0= ruleEnableType ) )?
            int alt98=2;
            int LA98_0 = input.LA(1);

            if ( ((LA98_0>=167 && LA98_0<=169)) ) {
                alt98=1;
            }
            switch (alt98) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3359:1: (lv_status_9_0= ruleEnableType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3359:1: (lv_status_9_0= ruleEnableType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3360:3: lv_status_9_0= ruleEnableType
                    {
                     
                    	        newCompositeNode(grammarAccess.getConstraintAccess().getStatusEnableTypeEnumRuleCall_7_0()); 
                    	    
                    pushFollow(FOLLOW_ruleEnableType_in_ruleConstraint7044);
                    lv_status_9_0=ruleEnableType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getConstraintRule());
                    	        }
                           		set(
                           			current, 
                           			"status",
                            		lv_status_9_0, 
                            		"EnableType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3376:3: (otherlv_10= ',' )?
            int alt99=2;
            int LA99_0 = input.LA(1);

            if ( (LA99_0==42) ) {
                alt99=1;
            }
            switch (alt99) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3376:5: otherlv_10= ','
                    {
                    otherlv_10=(Token)match(input,42,FOLLOW_42_in_ruleConstraint7058); 

                        	newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getCommaKeyword_8());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleConstraint"


    // $ANTLR start "entryRuleIndexOrUniqueKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3388:1: entryRuleIndexOrUniqueKey returns [EObject current=null] : iv_ruleIndexOrUniqueKey= ruleIndexOrUniqueKey EOF ;
    public final EObject entryRuleIndexOrUniqueKey() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIndexOrUniqueKey = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3389:2: (iv_ruleIndexOrUniqueKey= ruleIndexOrUniqueKey EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3390:2: iv_ruleIndexOrUniqueKey= ruleIndexOrUniqueKey EOF
            {
             newCompositeNode(grammarAccess.getIndexOrUniqueKeyRule()); 
            pushFollow(FOLLOW_ruleIndexOrUniqueKey_in_entryRuleIndexOrUniqueKey7096);
            iv_ruleIndexOrUniqueKey=ruleIndexOrUniqueKey();

            state._fsp--;

             current =iv_ruleIndexOrUniqueKey; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIndexOrUniqueKey7106); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIndexOrUniqueKey"


    // $ANTLR start "ruleIndexOrUniqueKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3397:1: ruleIndexOrUniqueKey returns [EObject current=null] : (this_Index_0= ruleIndex | this_UniqueKey_1= ruleUniqueKey ) ;
    public final EObject ruleIndexOrUniqueKey() throws RecognitionException {
        EObject current = null;

        EObject this_Index_0 = null;

        EObject this_UniqueKey_1 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3400:28: ( (this_Index_0= ruleIndex | this_UniqueKey_1= ruleUniqueKey ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3401:1: (this_Index_0= ruleIndex | this_UniqueKey_1= ruleUniqueKey )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3401:1: (this_Index_0= ruleIndex | this_UniqueKey_1= ruleUniqueKey )
            int alt100=2;
            int LA100_0 = input.LA(1);

            if ( (LA100_0==25) ) {
                alt100=1;
            }
            else if ( (LA100_0==56) ) {
                alt100=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 100, 0, input);

                throw nvae;
            }
            switch (alt100) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3402:5: this_Index_0= ruleIndex
                    {
                     
                            newCompositeNode(grammarAccess.getIndexOrUniqueKeyAccess().getIndexParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleIndex_in_ruleIndexOrUniqueKey7153);
                    this_Index_0=ruleIndex();

                    state._fsp--;

                     
                            current = this_Index_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3412:5: this_UniqueKey_1= ruleUniqueKey
                    {
                     
                            newCompositeNode(grammarAccess.getIndexOrUniqueKeyAccess().getUniqueKeyParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleUniqueKey_in_ruleIndexOrUniqueKey7180);
                    this_UniqueKey_1=ruleUniqueKey();

                    state._fsp--;

                     
                            current = this_UniqueKey_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIndexOrUniqueKey"


    // $ANTLR start "entryRuleForeignKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3428:1: entryRuleForeignKey returns [EObject current=null] : iv_ruleForeignKey= ruleForeignKey EOF ;
    public final EObject entryRuleForeignKey() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleForeignKey = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3429:2: (iv_ruleForeignKey= ruleForeignKey EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3430:2: iv_ruleForeignKey= ruleForeignKey EOF
            {
             newCompositeNode(grammarAccess.getForeignKeyRule()); 
            pushFollow(FOLLOW_ruleForeignKey_in_entryRuleForeignKey7215);
            iv_ruleForeignKey=ruleForeignKey();

            state._fsp--;

             current =iv_ruleForeignKey; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleForeignKey7225); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleForeignKey"


    // $ANTLR start "ruleForeignKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3437:1: ruleForeignKey returns [EObject current=null] : (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'foreign' otherlv_3= 'key' (otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')' )? otherlv_7= 'references' ( (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')' )? (otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) ) )? (otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) ) )? ( (lv_status_18_0= ruleEnableType ) )? (otherlv_19= ',' )? ) ;
    public final EObject ruleForeignKey() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_consName_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_11=null;
        Token otherlv_12=null;
        Token otherlv_13=null;
        Token otherlv_15=null;
        Token otherlv_16=null;
        Token otherlv_19=null;
        EObject lv_srcColumns_5_0 = null;

        AntlrDatatypeRuleToken lv_destTable_8_0 = null;

        EObject lv_destColumns_10_0 = null;

        Enumerator lv_delete_rule_14_0 = null;

        Enumerator lv_deferrtype_17_0 = null;

        Enumerator lv_status_18_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3440:28: ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'foreign' otherlv_3= 'key' (otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')' )? otherlv_7= 'references' ( (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')' )? (otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) ) )? (otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) ) )? ( (lv_status_18_0= ruleEnableType ) )? (otherlv_19= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3441:1: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'foreign' otherlv_3= 'key' (otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')' )? otherlv_7= 'references' ( (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')' )? (otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) ) )? (otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) ) )? ( (lv_status_18_0= ruleEnableType ) )? (otherlv_19= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3441:1: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'foreign' otherlv_3= 'key' (otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')' )? otherlv_7= 'references' ( (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')' )? (otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) ) )? (otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) ) )? ( (lv_status_18_0= ruleEnableType ) )? (otherlv_19= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3441:3: otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'foreign' otherlv_3= 'key' (otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')' )? otherlv_7= 'references' ( (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')' )? (otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) ) )? (otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) ) )? ( (lv_status_18_0= ruleEnableType ) )? (otherlv_19= ',' )?
            {
            otherlv_0=(Token)match(input,56,FOLLOW_56_in_ruleForeignKey7262); 

                	newLeafNode(otherlv_0, grammarAccess.getForeignKeyAccess().getConstraintKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3445:1: ( (lv_consName_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3446:1: (lv_consName_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3446:1: (lv_consName_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3447:3: lv_consName_1_0= RULE_DBNAME
            {
            lv_consName_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleForeignKey7279); 

            			newLeafNode(lv_consName_1_0, grammarAccess.getForeignKeyAccess().getConsNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getForeignKeyRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"consName",
                    		lv_consName_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,62,FOLLOW_62_in_ruleForeignKey7296); 

                	newLeafNode(otherlv_2, grammarAccess.getForeignKeyAccess().getForeignKeyword_2());
                
            otherlv_3=(Token)match(input,63,FOLLOW_63_in_ruleForeignKey7308); 

                	newLeafNode(otherlv_3, grammarAccess.getForeignKeyAccess().getKeyKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3471:1: (otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')' )?
            int alt102=2;
            int LA102_0 = input.LA(1);

            if ( (LA102_0==18) ) {
                alt102=1;
            }
            switch (alt102) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3471:3: otherlv_4= '(' ( (lv_srcColumns_5_0= ruleColumnRef ) )* otherlv_6= ')'
                    {
                    otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleForeignKey7321); 

                        	newLeafNode(otherlv_4, grammarAccess.getForeignKeyAccess().getLeftParenthesisKeyword_4_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3475:1: ( (lv_srcColumns_5_0= ruleColumnRef ) )*
                    loop101:
                    do {
                        int alt101=2;
                        int LA101_0 = input.LA(1);

                        if ( (LA101_0==RULE_DBNAME||LA101_0==RULE_STRING) ) {
                            alt101=1;
                        }


                        switch (alt101) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3476:1: (lv_srcColumns_5_0= ruleColumnRef )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3476:1: (lv_srcColumns_5_0= ruleColumnRef )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3477:3: lv_srcColumns_5_0= ruleColumnRef
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getForeignKeyAccess().getSrcColumnsColumnRefParserRuleCall_4_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleColumnRef_in_ruleForeignKey7342);
                    	    lv_srcColumns_5_0=ruleColumnRef();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getForeignKeyRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"srcColumns",
                    	            		lv_srcColumns_5_0, 
                    	            		"ColumnRef");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop101;
                        }
                    } while (true);

                    otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleForeignKey7355); 

                        	newLeafNode(otherlv_6, grammarAccess.getForeignKeyAccess().getRightParenthesisKeyword_4_2());
                        

                    }
                    break;

            }

            otherlv_7=(Token)match(input,64,FOLLOW_64_in_ruleForeignKey7369); 

                	newLeafNode(otherlv_7, grammarAccess.getForeignKeyAccess().getReferencesKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3501:1: ( (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3502:1: (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3502:1: (lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3503:3: lv_destTable_8_0= ruleDBNAME_WITH_SCHEMA
            {
             
            	        newCompositeNode(grammarAccess.getForeignKeyAccess().getDestTableDBNAME_WITH_SCHEMAParserRuleCall_6_0()); 
            	    
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleForeignKey7390);
            lv_destTable_8_0=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getForeignKeyRule());
            	        }
                   		set(
                   			current, 
                   			"destTable",
                    		lv_destTable_8_0, 
                    		"DBNAME_WITH_SCHEMA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3519:2: (otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')' )?
            int alt104=2;
            int LA104_0 = input.LA(1);

            if ( (LA104_0==18) ) {
                alt104=1;
            }
            switch (alt104) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3519:4: otherlv_9= '(' ( (lv_destColumns_10_0= ruleColumnRef ) )+ otherlv_11= ')'
                    {
                    otherlv_9=(Token)match(input,18,FOLLOW_18_in_ruleForeignKey7403); 

                        	newLeafNode(otherlv_9, grammarAccess.getForeignKeyAccess().getLeftParenthesisKeyword_7_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3523:1: ( (lv_destColumns_10_0= ruleColumnRef ) )+
                    int cnt103=0;
                    loop103:
                    do {
                        int alt103=2;
                        int LA103_0 = input.LA(1);

                        if ( (LA103_0==RULE_DBNAME||LA103_0==RULE_STRING) ) {
                            alt103=1;
                        }


                        switch (alt103) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3524:1: (lv_destColumns_10_0= ruleColumnRef )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3524:1: (lv_destColumns_10_0= ruleColumnRef )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3525:3: lv_destColumns_10_0= ruleColumnRef
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getForeignKeyAccess().getDestColumnsColumnRefParserRuleCall_7_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleColumnRef_in_ruleForeignKey7424);
                    	    lv_destColumns_10_0=ruleColumnRef();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getForeignKeyRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"destColumns",
                    	            		lv_destColumns_10_0, 
                    	            		"ColumnRef");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt103 >= 1 ) break loop103;
                                EarlyExitException eee =
                                    new EarlyExitException(103, input);
                                throw eee;
                        }
                        cnt103++;
                    } while (true);

                    otherlv_11=(Token)match(input,19,FOLLOW_19_in_ruleForeignKey7437); 

                        	newLeafNode(otherlv_11, grammarAccess.getForeignKeyAccess().getRightParenthesisKeyword_7_2());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3545:3: (otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) ) )?
            int alt105=2;
            int LA105_0 = input.LA(1);

            if ( (LA105_0==20) ) {
                alt105=1;
            }
            switch (alt105) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3545:5: otherlv_12= 'on' otherlv_13= 'delete' ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) )
                    {
                    otherlv_12=(Token)match(input,20,FOLLOW_20_in_ruleForeignKey7452); 

                        	newLeafNode(otherlv_12, grammarAccess.getForeignKeyAccess().getOnKeyword_8_0());
                        
                    otherlv_13=(Token)match(input,65,FOLLOW_65_in_ruleForeignKey7464); 

                        	newLeafNode(otherlv_13, grammarAccess.getForeignKeyAccess().getDeleteKeyword_8_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3553:1: ( (lv_delete_rule_14_0= ruleFkDeleteRuleType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3554:1: (lv_delete_rule_14_0= ruleFkDeleteRuleType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3554:1: (lv_delete_rule_14_0= ruleFkDeleteRuleType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3555:3: lv_delete_rule_14_0= ruleFkDeleteRuleType
                    {
                     
                    	        newCompositeNode(grammarAccess.getForeignKeyAccess().getDelete_ruleFkDeleteRuleTypeEnumRuleCall_8_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleFkDeleteRuleType_in_ruleForeignKey7485);
                    lv_delete_rule_14_0=ruleFkDeleteRuleType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getForeignKeyRule());
                    	        }
                           		set(
                           			current, 
                           			"delete_rule",
                            		lv_delete_rule_14_0, 
                            		"FkDeleteRuleType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3571:4: (otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) ) )?
            int alt106=2;
            int LA106_0 = input.LA(1);

            if ( (LA106_0==60) ) {
                alt106=1;
            }
            switch (alt106) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3571:6: otherlv_15= 'deferrable' otherlv_16= 'initially' ( (lv_deferrtype_17_0= ruleDeferrType ) )
                    {
                    otherlv_15=(Token)match(input,60,FOLLOW_60_in_ruleForeignKey7500); 

                        	newLeafNode(otherlv_15, grammarAccess.getForeignKeyAccess().getDeferrableKeyword_9_0());
                        
                    otherlv_16=(Token)match(input,61,FOLLOW_61_in_ruleForeignKey7512); 

                        	newLeafNode(otherlv_16, grammarAccess.getForeignKeyAccess().getInitiallyKeyword_9_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3579:1: ( (lv_deferrtype_17_0= ruleDeferrType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3580:1: (lv_deferrtype_17_0= ruleDeferrType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3580:1: (lv_deferrtype_17_0= ruleDeferrType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3581:3: lv_deferrtype_17_0= ruleDeferrType
                    {
                     
                    	        newCompositeNode(grammarAccess.getForeignKeyAccess().getDeferrtypeDeferrTypeEnumRuleCall_9_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleDeferrType_in_ruleForeignKey7533);
                    lv_deferrtype_17_0=ruleDeferrType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getForeignKeyRule());
                    	        }
                           		set(
                           			current, 
                           			"deferrtype",
                            		lv_deferrtype_17_0, 
                            		"DeferrType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3597:4: ( (lv_status_18_0= ruleEnableType ) )?
            int alt107=2;
            int LA107_0 = input.LA(1);

            if ( ((LA107_0>=167 && LA107_0<=169)) ) {
                alt107=1;
            }
            switch (alt107) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3598:1: (lv_status_18_0= ruleEnableType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3598:1: (lv_status_18_0= ruleEnableType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3599:3: lv_status_18_0= ruleEnableType
                    {
                     
                    	        newCompositeNode(grammarAccess.getForeignKeyAccess().getStatusEnableTypeEnumRuleCall_10_0()); 
                    	    
                    pushFollow(FOLLOW_ruleEnableType_in_ruleForeignKey7556);
                    lv_status_18_0=ruleEnableType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getForeignKeyRule());
                    	        }
                           		set(
                           			current, 
                           			"status",
                            		lv_status_18_0, 
                            		"EnableType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3615:3: (otherlv_19= ',' )?
            int alt108=2;
            int LA108_0 = input.LA(1);

            if ( (LA108_0==42) ) {
                alt108=1;
            }
            switch (alt108) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3615:5: otherlv_19= ','
                    {
                    otherlv_19=(Token)match(input,42,FOLLOW_42_in_ruleForeignKey7570); 

                        	newLeafNode(otherlv_19, grammarAccess.getForeignKeyAccess().getCommaKeyword_11());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleForeignKey"


    // $ANTLR start "entryRulePrimaryKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3627:1: entryRulePrimaryKey returns [EObject current=null] : iv_rulePrimaryKey= rulePrimaryKey EOF ;
    public final EObject entryRulePrimaryKey() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePrimaryKey = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3628:2: (iv_rulePrimaryKey= rulePrimaryKey EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3629:2: iv_rulePrimaryKey= rulePrimaryKey EOF
            {
             newCompositeNode(grammarAccess.getPrimaryKeyRule()); 
            pushFollow(FOLLOW_rulePrimaryKey_in_entryRulePrimaryKey7608);
            iv_rulePrimaryKey=rulePrimaryKey();

            state._fsp--;

             current =iv_rulePrimaryKey; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePrimaryKey7618); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePrimaryKey"


    // $ANTLR start "rulePrimaryKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3636:1: rulePrimaryKey returns [EObject current=null] : ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) )? otherlv_2= 'primary' otherlv_3= 'key' otherlv_4= '(' ( (lv_pk_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' ( (lv_status_7_0= ruleEnableType ) )? (otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )? )? (otherlv_14= ',' )? ) ;
    public final EObject rulePrimaryKey() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_consName_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        Token lv_reverse_10_0=null;
        Token otherlv_11=null;
        Token lv_tablespace_12_0=null;
        Token otherlv_14=null;
        EObject lv_pk_columns_5_0 = null;

        Enumerator lv_status_7_0 = null;

        AntlrDatatypeRuleToken lv_indexname_13_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3639:28: ( ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) )? otherlv_2= 'primary' otherlv_3= 'key' otherlv_4= '(' ( (lv_pk_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' ( (lv_status_7_0= ruleEnableType ) )? (otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )? )? (otherlv_14= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3640:1: ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) )? otherlv_2= 'primary' otherlv_3= 'key' otherlv_4= '(' ( (lv_pk_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' ( (lv_status_7_0= ruleEnableType ) )? (otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )? )? (otherlv_14= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3640:1: ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) )? otherlv_2= 'primary' otherlv_3= 'key' otherlv_4= '(' ( (lv_pk_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' ( (lv_status_7_0= ruleEnableType ) )? (otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )? )? (otherlv_14= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3640:2: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) )? otherlv_2= 'primary' otherlv_3= 'key' otherlv_4= '(' ( (lv_pk_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' ( (lv_status_7_0= ruleEnableType ) )? (otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )? )? (otherlv_14= ',' )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3640:2: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) )?
            int alt109=2;
            int LA109_0 = input.LA(1);

            if ( (LA109_0==56) ) {
                alt109=1;
            }
            switch (alt109) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3640:4: otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) )
                    {
                    otherlv_0=(Token)match(input,56,FOLLOW_56_in_rulePrimaryKey7656); 

                        	newLeafNode(otherlv_0, grammarAccess.getPrimaryKeyAccess().getConstraintKeyword_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3644:1: ( (lv_consName_1_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3645:1: (lv_consName_1_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3645:1: (lv_consName_1_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3646:3: lv_consName_1_0= RULE_DBNAME
                    {
                    lv_consName_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_rulePrimaryKey7673); 

                    			newLeafNode(lv_consName_1_0, grammarAccess.getPrimaryKeyAccess().getConsNameDBNAMETerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPrimaryKeyRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"consName",
                            		lv_consName_1_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_2=(Token)match(input,66,FOLLOW_66_in_rulePrimaryKey7692); 

                	newLeafNode(otherlv_2, grammarAccess.getPrimaryKeyAccess().getPrimaryKeyword_1());
                
            otherlv_3=(Token)match(input,63,FOLLOW_63_in_rulePrimaryKey7704); 

                	newLeafNode(otherlv_3, grammarAccess.getPrimaryKeyAccess().getKeyKeyword_2());
                
            otherlv_4=(Token)match(input,18,FOLLOW_18_in_rulePrimaryKey7716); 

                	newLeafNode(otherlv_4, grammarAccess.getPrimaryKeyAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3674:1: ( (lv_pk_columns_5_0= ruleColumnRef ) )+
            int cnt110=0;
            loop110:
            do {
                int alt110=2;
                int LA110_0 = input.LA(1);

                if ( (LA110_0==RULE_DBNAME||LA110_0==RULE_STRING) ) {
                    alt110=1;
                }


                switch (alt110) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3675:1: (lv_pk_columns_5_0= ruleColumnRef )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3675:1: (lv_pk_columns_5_0= ruleColumnRef )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3676:3: lv_pk_columns_5_0= ruleColumnRef
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPrimaryKeyAccess().getPk_columnsColumnRefParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleColumnRef_in_rulePrimaryKey7737);
            	    lv_pk_columns_5_0=ruleColumnRef();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPrimaryKeyRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"pk_columns",
            	            		lv_pk_columns_5_0, 
            	            		"ColumnRef");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt110 >= 1 ) break loop110;
                        EarlyExitException eee =
                            new EarlyExitException(110, input);
                        throw eee;
                }
                cnt110++;
            } while (true);

            otherlv_6=(Token)match(input,19,FOLLOW_19_in_rulePrimaryKey7750); 

                	newLeafNode(otherlv_6, grammarAccess.getPrimaryKeyAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3696:1: ( (lv_status_7_0= ruleEnableType ) )?
            int alt111=2;
            int LA111_0 = input.LA(1);

            if ( ((LA111_0>=167 && LA111_0<=169)) ) {
                alt111=1;
            }
            switch (alt111) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3697:1: (lv_status_7_0= ruleEnableType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3697:1: (lv_status_7_0= ruleEnableType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3698:3: lv_status_7_0= ruleEnableType
                    {
                     
                    	        newCompositeNode(grammarAccess.getPrimaryKeyAccess().getStatusEnableTypeEnumRuleCall_6_0()); 
                    	    
                    pushFollow(FOLLOW_ruleEnableType_in_rulePrimaryKey7771);
                    lv_status_7_0=ruleEnableType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getPrimaryKeyRule());
                    	        }
                           		set(
                           			current, 
                           			"status",
                            		lv_status_7_0, 
                            		"EnableType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3714:3: (otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )? )?
            int alt115=2;
            int LA115_0 = input.LA(1);

            if ( (LA115_0==67) ) {
                alt115=1;
            }
            switch (alt115) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3714:5: otherlv_8= 'using' otherlv_9= 'index' ( (lv_reverse_10_0= 'reverse' ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )?
                    {
                    otherlv_8=(Token)match(input,67,FOLLOW_67_in_rulePrimaryKey7785); 

                        	newLeafNode(otherlv_8, grammarAccess.getPrimaryKeyAccess().getUsingKeyword_7_0());
                        
                    otherlv_9=(Token)match(input,25,FOLLOW_25_in_rulePrimaryKey7797); 

                        	newLeafNode(otherlv_9, grammarAccess.getPrimaryKeyAccess().getIndexKeyword_7_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3722:1: ( (lv_reverse_10_0= 'reverse' ) )?
                    int alt112=2;
                    int LA112_0 = input.LA(1);

                    if ( (LA112_0==68) ) {
                        alt112=1;
                    }
                    switch (alt112) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3723:1: (lv_reverse_10_0= 'reverse' )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3723:1: (lv_reverse_10_0= 'reverse' )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3724:3: lv_reverse_10_0= 'reverse'
                            {
                            lv_reverse_10_0=(Token)match(input,68,FOLLOW_68_in_rulePrimaryKey7815); 

                                    newLeafNode(lv_reverse_10_0, grammarAccess.getPrimaryKeyAccess().getReverseReverseKeyword_7_2_0());
                                

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getPrimaryKeyRule());
                            	        }
                                   		setWithLastConsumed(current, "reverse", lv_reverse_10_0, "reverse");
                            	    

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3737:3: (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )?
                    int alt113=2;
                    int LA113_0 = input.LA(1);

                    if ( (LA113_0==23) ) {
                        alt113=1;
                    }
                    switch (alt113) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3737:5: otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) )
                            {
                            otherlv_11=(Token)match(input,23,FOLLOW_23_in_rulePrimaryKey7842); 

                                	newLeafNode(otherlv_11, grammarAccess.getPrimaryKeyAccess().getTablespaceKeyword_7_3_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3741:1: ( (lv_tablespace_12_0= RULE_DBNAME ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3742:1: (lv_tablespace_12_0= RULE_DBNAME )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3742:1: (lv_tablespace_12_0= RULE_DBNAME )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3743:3: lv_tablespace_12_0= RULE_DBNAME
                            {
                            lv_tablespace_12_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_rulePrimaryKey7859); 

                            			newLeafNode(lv_tablespace_12_0, grammarAccess.getPrimaryKeyAccess().getTablespaceDBNAMETerminalRuleCall_7_3_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getPrimaryKeyRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"tablespace",
                                    		lv_tablespace_12_0, 
                                    		"DBNAME");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3759:4: ( (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA ) )?
                    int alt114=2;
                    int LA114_0 = input.LA(1);

                    if ( (LA114_0==RULE_DBNAME) ) {
                        alt114=1;
                    }
                    switch (alt114) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3760:1: (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3760:1: (lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3761:3: lv_indexname_13_0= ruleDBNAME_WITH_SCHEMA
                            {
                             
                            	        newCompositeNode(grammarAccess.getPrimaryKeyAccess().getIndexnameDBNAME_WITH_SCHEMAParserRuleCall_7_4_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_rulePrimaryKey7887);
                            lv_indexname_13_0=ruleDBNAME_WITH_SCHEMA();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getPrimaryKeyRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"indexname",
                                    		lv_indexname_13_0, 
                                    		"DBNAME_WITH_SCHEMA");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3777:5: (otherlv_14= ',' )?
            int alt116=2;
            int LA116_0 = input.LA(1);

            if ( (LA116_0==42) ) {
                alt116=1;
            }
            switch (alt116) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3777:7: otherlv_14= ','
                    {
                    otherlv_14=(Token)match(input,42,FOLLOW_42_in_rulePrimaryKey7903); 

                        	newLeafNode(otherlv_14, grammarAccess.getPrimaryKeyAccess().getCommaKeyword_8());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePrimaryKey"


    // $ANTLR start "entryRuleUniqueKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3789:1: entryRuleUniqueKey returns [EObject current=null] : iv_ruleUniqueKey= ruleUniqueKey EOF ;
    public final EObject entryRuleUniqueKey() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleUniqueKey = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3790:2: (iv_ruleUniqueKey= ruleUniqueKey EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3791:2: iv_ruleUniqueKey= ruleUniqueKey EOF
            {
             newCompositeNode(grammarAccess.getUniqueKeyRule()); 
            pushFollow(FOLLOW_ruleUniqueKey_in_entryRuleUniqueKey7941);
            iv_ruleUniqueKey=ruleUniqueKey();

            state._fsp--;

             current =iv_ruleUniqueKey; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUniqueKey7951); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleUniqueKey"


    // $ANTLR start "ruleUniqueKey"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3798:1: ruleUniqueKey returns [EObject current=null] : (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'unique' otherlv_3= '(' ( (lv_uk_columns_4_0= ruleColumnRef ) )+ otherlv_5= ')' (otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )? )? ( (lv_status_11_0= ruleEnableType ) )? (otherlv_12= ',' )? ) ;
    public final EObject ruleUniqueKey() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_consName_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token lv_tablespace_9_0=null;
        Token otherlv_12=null;
        EObject lv_uk_columns_4_0 = null;

        AntlrDatatypeRuleToken lv_indexname_10_0 = null;

        Enumerator lv_status_11_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3801:28: ( (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'unique' otherlv_3= '(' ( (lv_uk_columns_4_0= ruleColumnRef ) )+ otherlv_5= ')' (otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )? )? ( (lv_status_11_0= ruleEnableType ) )? (otherlv_12= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3802:1: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'unique' otherlv_3= '(' ( (lv_uk_columns_4_0= ruleColumnRef ) )+ otherlv_5= ')' (otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )? )? ( (lv_status_11_0= ruleEnableType ) )? (otherlv_12= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3802:1: (otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'unique' otherlv_3= '(' ( (lv_uk_columns_4_0= ruleColumnRef ) )+ otherlv_5= ')' (otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )? )? ( (lv_status_11_0= ruleEnableType ) )? (otherlv_12= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3802:3: otherlv_0= 'constraint' ( (lv_consName_1_0= RULE_DBNAME ) ) otherlv_2= 'unique' otherlv_3= '(' ( (lv_uk_columns_4_0= ruleColumnRef ) )+ otherlv_5= ')' (otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )? )? ( (lv_status_11_0= ruleEnableType ) )? (otherlv_12= ',' )?
            {
            otherlv_0=(Token)match(input,56,FOLLOW_56_in_ruleUniqueKey7988); 

                	newLeafNode(otherlv_0, grammarAccess.getUniqueKeyAccess().getConstraintKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3806:1: ( (lv_consName_1_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3807:1: (lv_consName_1_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3807:1: (lv_consName_1_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3808:3: lv_consName_1_0= RULE_DBNAME
            {
            lv_consName_1_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleUniqueKey8005); 

            			newLeafNode(lv_consName_1_0, grammarAccess.getUniqueKeyAccess().getConsNameDBNAMETerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getUniqueKeyRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"consName",
                    		lv_consName_1_0, 
                    		"DBNAME");
            	    

            }


            }

            otherlv_2=(Token)match(input,69,FOLLOW_69_in_ruleUniqueKey8022); 

                	newLeafNode(otherlv_2, grammarAccess.getUniqueKeyAccess().getUniqueKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleUniqueKey8034); 

                	newLeafNode(otherlv_3, grammarAccess.getUniqueKeyAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3832:1: ( (lv_uk_columns_4_0= ruleColumnRef ) )+
            int cnt117=0;
            loop117:
            do {
                int alt117=2;
                int LA117_0 = input.LA(1);

                if ( (LA117_0==RULE_DBNAME||LA117_0==RULE_STRING) ) {
                    alt117=1;
                }


                switch (alt117) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3833:1: (lv_uk_columns_4_0= ruleColumnRef )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3833:1: (lv_uk_columns_4_0= ruleColumnRef )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3834:3: lv_uk_columns_4_0= ruleColumnRef
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getUniqueKeyAccess().getUk_columnsColumnRefParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleColumnRef_in_ruleUniqueKey8055);
            	    lv_uk_columns_4_0=ruleColumnRef();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getUniqueKeyRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"uk_columns",
            	            		lv_uk_columns_4_0, 
            	            		"ColumnRef");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt117 >= 1 ) break loop117;
                        EarlyExitException eee =
                            new EarlyExitException(117, input);
                        throw eee;
                }
                cnt117++;
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleUniqueKey8068); 

                	newLeafNode(otherlv_5, grammarAccess.getUniqueKeyAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3854:1: (otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )? )?
            int alt120=2;
            int LA120_0 = input.LA(1);

            if ( (LA120_0==67) ) {
                alt120=1;
            }
            switch (alt120) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3854:3: otherlv_6= 'using' otherlv_7= 'index' (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )? ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )?
                    {
                    otherlv_6=(Token)match(input,67,FOLLOW_67_in_ruleUniqueKey8081); 

                        	newLeafNode(otherlv_6, grammarAccess.getUniqueKeyAccess().getUsingKeyword_6_0());
                        
                    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleUniqueKey8093); 

                        	newLeafNode(otherlv_7, grammarAccess.getUniqueKeyAccess().getIndexKeyword_6_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3862:1: (otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) ) )?
                    int alt118=2;
                    int LA118_0 = input.LA(1);

                    if ( (LA118_0==23) ) {
                        alt118=1;
                    }
                    switch (alt118) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3862:3: otherlv_8= 'tablespace' ( (lv_tablespace_9_0= RULE_DBNAME ) )
                            {
                            otherlv_8=(Token)match(input,23,FOLLOW_23_in_ruleUniqueKey8106); 

                                	newLeafNode(otherlv_8, grammarAccess.getUniqueKeyAccess().getTablespaceKeyword_6_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3866:1: ( (lv_tablespace_9_0= RULE_DBNAME ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3867:1: (lv_tablespace_9_0= RULE_DBNAME )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3867:1: (lv_tablespace_9_0= RULE_DBNAME )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3868:3: lv_tablespace_9_0= RULE_DBNAME
                            {
                            lv_tablespace_9_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleUniqueKey8123); 

                            			newLeafNode(lv_tablespace_9_0, grammarAccess.getUniqueKeyAccess().getTablespaceDBNAMETerminalRuleCall_6_2_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getUniqueKeyRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"tablespace",
                                    		lv_tablespace_9_0, 
                                    		"DBNAME");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3884:4: ( (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA ) )?
                    int alt119=2;
                    int LA119_0 = input.LA(1);

                    if ( (LA119_0==RULE_DBNAME) ) {
                        alt119=1;
                    }
                    switch (alt119) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3885:1: (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3885:1: (lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3886:3: lv_indexname_10_0= ruleDBNAME_WITH_SCHEMA
                            {
                             
                            	        newCompositeNode(grammarAccess.getUniqueKeyAccess().getIndexnameDBNAME_WITH_SCHEMAParserRuleCall_6_3_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleUniqueKey8151);
                            lv_indexname_10_0=ruleDBNAME_WITH_SCHEMA();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getUniqueKeyRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"indexname",
                                    		lv_indexname_10_0, 
                                    		"DBNAME_WITH_SCHEMA");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3902:5: ( (lv_status_11_0= ruleEnableType ) )?
            int alt121=2;
            int LA121_0 = input.LA(1);

            if ( ((LA121_0>=167 && LA121_0<=169)) ) {
                alt121=1;
            }
            switch (alt121) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3903:1: (lv_status_11_0= ruleEnableType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3903:1: (lv_status_11_0= ruleEnableType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3904:3: lv_status_11_0= ruleEnableType
                    {
                     
                    	        newCompositeNode(grammarAccess.getUniqueKeyAccess().getStatusEnableTypeEnumRuleCall_7_0()); 
                    	    
                    pushFollow(FOLLOW_ruleEnableType_in_ruleUniqueKey8175);
                    lv_status_11_0=ruleEnableType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getUniqueKeyRule());
                    	        }
                           		set(
                           			current, 
                           			"status",
                            		lv_status_11_0, 
                            		"EnableType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3920:3: (otherlv_12= ',' )?
            int alt122=2;
            int LA122_0 = input.LA(1);

            if ( (LA122_0==42) ) {
                alt122=1;
            }
            switch (alt122) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3920:5: otherlv_12= ','
                    {
                    otherlv_12=(Token)match(input,42,FOLLOW_42_in_ruleUniqueKey8189); 

                        	newLeafNode(otherlv_12, grammarAccess.getUniqueKeyAccess().getCommaKeyword_8());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleUniqueKey"


    // $ANTLR start "entryRuleIndex"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3932:1: entryRuleIndex returns [EObject current=null] : iv_ruleIndex= ruleIndex EOF ;
    public final EObject entryRuleIndex() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIndex = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3933:2: (iv_ruleIndex= ruleIndex EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3934:2: iv_ruleIndex= ruleIndex EOF
            {
             newCompositeNode(grammarAccess.getIndexRule()); 
            pushFollow(FOLLOW_ruleIndex_in_entryRuleIndex8227);
            iv_ruleIndex=ruleIndex();

            state._fsp--;

             current =iv_ruleIndex; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIndex8237); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIndex"


    // $ANTLR start "ruleIndex"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3941:1: ruleIndex returns [EObject current=null] : (otherlv_0= 'index' ( (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA ) ) ( (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_7_0= RULE_STRING ) ) ) ( (lv_bitmap_8_0= 'bitmap' ) )? ( (lv_unique_9_0= 'unique' ) )? ( (lv_logging_10_0= ruleLoggingType ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_compression_13_0= ruleCompressType ) )? ( ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )? )? ( (lv_global_16_0= ruleIndexGlobalType ) )? (otherlv_17= ',' )? ) ;
    public final EObject ruleIndex() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token lv_domain_index_expression_6_0=null;
        Token lv_function_based_expression_7_0=null;
        Token lv_bitmap_8_0=null;
        Token lv_unique_9_0=null;
        Token otherlv_11=null;
        Token lv_tablespace_12_0=null;
        Token lv_parallel_degree_15_0=null;
        Token otherlv_17=null;
        AntlrDatatypeRuleToken lv_consName_1_0 = null;

        EObject lv_index_columns_3_0 = null;

        Enumerator lv_logging_10_0 = null;

        Enumerator lv_compression_13_0 = null;

        Enumerator lv_parallel_14_0 = null;

        Enumerator lv_global_16_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3944:28: ( (otherlv_0= 'index' ( (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA ) ) ( (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_7_0= RULE_STRING ) ) ) ( (lv_bitmap_8_0= 'bitmap' ) )? ( (lv_unique_9_0= 'unique' ) )? ( (lv_logging_10_0= ruleLoggingType ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_compression_13_0= ruleCompressType ) )? ( ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )? )? ( (lv_global_16_0= ruleIndexGlobalType ) )? (otherlv_17= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3945:1: (otherlv_0= 'index' ( (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA ) ) ( (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_7_0= RULE_STRING ) ) ) ( (lv_bitmap_8_0= 'bitmap' ) )? ( (lv_unique_9_0= 'unique' ) )? ( (lv_logging_10_0= ruleLoggingType ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_compression_13_0= ruleCompressType ) )? ( ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )? )? ( (lv_global_16_0= ruleIndexGlobalType ) )? (otherlv_17= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3945:1: (otherlv_0= 'index' ( (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA ) ) ( (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_7_0= RULE_STRING ) ) ) ( (lv_bitmap_8_0= 'bitmap' ) )? ( (lv_unique_9_0= 'unique' ) )? ( (lv_logging_10_0= ruleLoggingType ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_compression_13_0= ruleCompressType ) )? ( ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )? )? ( (lv_global_16_0= ruleIndexGlobalType ) )? (otherlv_17= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3945:3: otherlv_0= 'index' ( (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA ) ) ( (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_7_0= RULE_STRING ) ) ) ( (lv_bitmap_8_0= 'bitmap' ) )? ( (lv_unique_9_0= 'unique' ) )? ( (lv_logging_10_0= ruleLoggingType ) )? (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )? ( (lv_compression_13_0= ruleCompressType ) )? ( ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )? )? ( (lv_global_16_0= ruleIndexGlobalType ) )? (otherlv_17= ',' )?
            {
            otherlv_0=(Token)match(input,25,FOLLOW_25_in_ruleIndex8274); 

                	newLeafNode(otherlv_0, grammarAccess.getIndexAccess().getIndexKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3949:1: ( (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3950:1: (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3950:1: (lv_consName_1_0= ruleDBNAME_WITH_SCHEMA )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3951:3: lv_consName_1_0= ruleDBNAME_WITH_SCHEMA
            {
             
            	        newCompositeNode(grammarAccess.getIndexAccess().getConsNameDBNAME_WITH_SCHEMAParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleIndex8295);
            lv_consName_1_0=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getIndexRule());
            	        }
                   		set(
                   			current, 
                   			"consName",
                    		lv_consName_1_0, 
                    		"DBNAME_WITH_SCHEMA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3967:2: ( (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_7_0= RULE_STRING ) ) )
            int alt125=2;
            int LA125_0 = input.LA(1);

            if ( (LA125_0==18) ) {
                alt125=1;
            }
            else if ( (LA125_0==RULE_STRING) ) {
                alt125=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 125, 0, input);

                throw nvae;
            }
            switch (alt125) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3967:3: (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3967:3: (otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )? )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3967:5: otherlv_2= '(' ( (lv_index_columns_3_0= ruleColumnRef ) )+ otherlv_4= ')' (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )?
                    {
                    otherlv_2=(Token)match(input,18,FOLLOW_18_in_ruleIndex8309); 

                        	newLeafNode(otherlv_2, grammarAccess.getIndexAccess().getLeftParenthesisKeyword_2_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3971:1: ( (lv_index_columns_3_0= ruleColumnRef ) )+
                    int cnt123=0;
                    loop123:
                    do {
                        int alt123=2;
                        int LA123_0 = input.LA(1);

                        if ( (LA123_0==RULE_DBNAME||LA123_0==RULE_STRING) ) {
                            alt123=1;
                        }


                        switch (alt123) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3972:1: (lv_index_columns_3_0= ruleColumnRef )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3972:1: (lv_index_columns_3_0= ruleColumnRef )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3973:3: lv_index_columns_3_0= ruleColumnRef
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getIndexAccess().getIndex_columnsColumnRefParserRuleCall_2_0_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleColumnRef_in_ruleIndex8330);
                    	    lv_index_columns_3_0=ruleColumnRef();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getIndexRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"index_columns",
                    	            		lv_index_columns_3_0, 
                    	            		"ColumnRef");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt123 >= 1 ) break loop123;
                                EarlyExitException eee =
                                    new EarlyExitException(123, input);
                                throw eee;
                        }
                        cnt123++;
                    } while (true);

                    otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleIndex8343); 

                        	newLeafNode(otherlv_4, grammarAccess.getIndexAccess().getRightParenthesisKeyword_2_0_2());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3993:1: (otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) ) )?
                    int alt124=2;
                    int LA124_0 = input.LA(1);

                    if ( (LA124_0==70) ) {
                        alt124=1;
                    }
                    switch (alt124) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3993:3: otherlv_5= 'domain_index' ( (lv_domain_index_expression_6_0= RULE_STRING ) )
                            {
                            otherlv_5=(Token)match(input,70,FOLLOW_70_in_ruleIndex8356); 

                                	newLeafNode(otherlv_5, grammarAccess.getIndexAccess().getDomain_indexKeyword_2_0_3_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3997:1: ( (lv_domain_index_expression_6_0= RULE_STRING ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3998:1: (lv_domain_index_expression_6_0= RULE_STRING )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3998:1: (lv_domain_index_expression_6_0= RULE_STRING )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:3999:3: lv_domain_index_expression_6_0= RULE_STRING
                            {
                            lv_domain_index_expression_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleIndex8373); 

                            			newLeafNode(lv_domain_index_expression_6_0, grammarAccess.getIndexAccess().getDomain_index_expressionSTRINGTerminalRuleCall_2_0_3_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getIndexRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"domain_index_expression",
                                    		lv_domain_index_expression_6_0, 
                                    		"STRING");
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4016:6: ( (lv_function_based_expression_7_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4016:6: ( (lv_function_based_expression_7_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4017:1: (lv_function_based_expression_7_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4017:1: (lv_function_based_expression_7_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4018:3: lv_function_based_expression_7_0= RULE_STRING
                    {
                    lv_function_based_expression_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleIndex8404); 

                    			newLeafNode(lv_function_based_expression_7_0, grammarAccess.getIndexAccess().getFunction_based_expressionSTRINGTerminalRuleCall_2_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"function_based_expression",
                            		lv_function_based_expression_7_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4034:3: ( (lv_bitmap_8_0= 'bitmap' ) )?
            int alt126=2;
            int LA126_0 = input.LA(1);

            if ( (LA126_0==71) ) {
                alt126=1;
            }
            switch (alt126) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4035:1: (lv_bitmap_8_0= 'bitmap' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4035:1: (lv_bitmap_8_0= 'bitmap' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4036:3: lv_bitmap_8_0= 'bitmap'
                    {
                    lv_bitmap_8_0=(Token)match(input,71,FOLLOW_71_in_ruleIndex8428); 

                            newLeafNode(lv_bitmap_8_0, grammarAccess.getIndexAccess().getBitmapBitmapKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexRule());
                    	        }
                           		setWithLastConsumed(current, "bitmap", lv_bitmap_8_0, "bitmap");
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4049:3: ( (lv_unique_9_0= 'unique' ) )?
            int alt127=2;
            int LA127_0 = input.LA(1);

            if ( (LA127_0==69) ) {
                alt127=1;
            }
            switch (alt127) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4050:1: (lv_unique_9_0= 'unique' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4050:1: (lv_unique_9_0= 'unique' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4051:3: lv_unique_9_0= 'unique'
                    {
                    lv_unique_9_0=(Token)match(input,69,FOLLOW_69_in_ruleIndex8460); 

                            newLeafNode(lv_unique_9_0, grammarAccess.getIndexAccess().getUniqueUniqueKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexRule());
                    	        }
                           		setWithLastConsumed(current, "unique", lv_unique_9_0, "unique");
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4064:3: ( (lv_logging_10_0= ruleLoggingType ) )?
            int alt128=2;
            int LA128_0 = input.LA(1);

            if ( ((LA128_0>=164 && LA128_0<=166)) ) {
                alt128=1;
            }
            switch (alt128) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4065:1: (lv_logging_10_0= ruleLoggingType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4065:1: (lv_logging_10_0= ruleLoggingType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4066:3: lv_logging_10_0= ruleLoggingType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexAccess().getLoggingLoggingTypeEnumRuleCall_5_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLoggingType_in_ruleIndex8495);
                    lv_logging_10_0=ruleLoggingType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexRule());
                    	        }
                           		set(
                           			current, 
                           			"logging",
                            		lv_logging_10_0, 
                            		"LoggingType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4082:3: (otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) ) )?
            int alt129=2;
            int LA129_0 = input.LA(1);

            if ( (LA129_0==23) ) {
                alt129=1;
            }
            switch (alt129) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4082:5: otherlv_11= 'tablespace' ( (lv_tablespace_12_0= RULE_DBNAME ) )
                    {
                    otherlv_11=(Token)match(input,23,FOLLOW_23_in_ruleIndex8509); 

                        	newLeafNode(otherlv_11, grammarAccess.getIndexAccess().getTablespaceKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4086:1: ( (lv_tablespace_12_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4087:1: (lv_tablespace_12_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4087:1: (lv_tablespace_12_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4088:3: lv_tablespace_12_0= RULE_DBNAME
                    {
                    lv_tablespace_12_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleIndex8526); 

                    			newLeafNode(lv_tablespace_12_0, grammarAccess.getIndexAccess().getTablespaceDBNAMETerminalRuleCall_6_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_12_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4104:4: ( (lv_compression_13_0= ruleCompressType ) )?
            int alt130=2;
            int LA130_0 = input.LA(1);

            if ( ((LA130_0>=198 && LA130_0<=200)) ) {
                alt130=1;
            }
            switch (alt130) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4105:1: (lv_compression_13_0= ruleCompressType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4105:1: (lv_compression_13_0= ruleCompressType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4106:3: lv_compression_13_0= ruleCompressType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexAccess().getCompressionCompressTypeEnumRuleCall_7_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCompressType_in_ruleIndex8554);
                    lv_compression_13_0=ruleCompressType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexRule());
                    	        }
                           		set(
                           			current, 
                           			"compression",
                            		lv_compression_13_0, 
                            		"CompressType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4122:3: ( ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )? )?
            int alt132=2;
            int LA132_0 = input.LA(1);

            if ( ((LA132_0>=170 && LA132_0<=172)) ) {
                alt132=1;
            }
            switch (alt132) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4122:4: ( (lv_parallel_14_0= ruleParallelType ) ) ( (lv_parallel_degree_15_0= RULE_INT ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4122:4: ( (lv_parallel_14_0= ruleParallelType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4123:1: (lv_parallel_14_0= ruleParallelType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4123:1: (lv_parallel_14_0= ruleParallelType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4124:3: lv_parallel_14_0= ruleParallelType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexAccess().getParallelParallelTypeEnumRuleCall_8_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleParallelType_in_ruleIndex8577);
                    lv_parallel_14_0=ruleParallelType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexRule());
                    	        }
                           		set(
                           			current, 
                           			"parallel",
                            		lv_parallel_14_0, 
                            		"ParallelType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4140:2: ( (lv_parallel_degree_15_0= RULE_INT ) )?
                    int alt131=2;
                    int LA131_0 = input.LA(1);

                    if ( (LA131_0==RULE_INT) ) {
                        alt131=1;
                    }
                    switch (alt131) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4141:1: (lv_parallel_degree_15_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4141:1: (lv_parallel_degree_15_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4142:3: lv_parallel_degree_15_0= RULE_INT
                            {
                            lv_parallel_degree_15_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleIndex8594); 

                            			newLeafNode(lv_parallel_degree_15_0, grammarAccess.getIndexAccess().getParallel_degreeINTTerminalRuleCall_8_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getIndexRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"parallel_degree",
                                    		lv_parallel_degree_15_0, 
                                    		"INT");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4158:5: ( (lv_global_16_0= ruleIndexGlobalType ) )?
            int alt133=2;
            int LA133_0 = input.LA(1);

            if ( (LA133_0==13||(LA133_0>=173 && LA133_0<=174)) ) {
                alt133=1;
            }
            switch (alt133) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4159:1: (lv_global_16_0= ruleIndexGlobalType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4159:1: (lv_global_16_0= ruleIndexGlobalType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4160:3: lv_global_16_0= ruleIndexGlobalType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexAccess().getGlobalIndexGlobalTypeEnumRuleCall_9_0()); 
                    	    
                    pushFollow(FOLLOW_ruleIndexGlobalType_in_ruleIndex8623);
                    lv_global_16_0=ruleIndexGlobalType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexRule());
                    	        }
                           		set(
                           			current, 
                           			"global",
                            		lv_global_16_0, 
                            		"IndexGlobalType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4176:3: (otherlv_17= ',' )?
            int alt134=2;
            int LA134_0 = input.LA(1);

            if ( (LA134_0==42) ) {
                alt134=1;
            }
            switch (alt134) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4176:5: otherlv_17= ','
                    {
                    otherlv_17=(Token)match(input,42,FOLLOW_42_in_ruleIndex8637); 

                        	newLeafNode(otherlv_17, grammarAccess.getIndexAccess().getCommaKeyword_10());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIndex"


    // $ANTLR start "entryRuleIndexExTable"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4188:1: entryRuleIndexExTable returns [EObject current=null] : iv_ruleIndexExTable= ruleIndexExTable EOF ;
    public final EObject entryRuleIndexExTable() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIndexExTable = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4189:2: (iv_ruleIndexExTable= ruleIndexExTable EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4190:2: iv_ruleIndexExTable= ruleIndexExTable EOF
            {
             newCompositeNode(grammarAccess.getIndexExTableRule()); 
            pushFollow(FOLLOW_ruleIndexExTable_in_entryRuleIndexExTable8675);
            iv_ruleIndexExTable=ruleIndexExTable();

            state._fsp--;

             current =iv_ruleIndexExTable; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIndexExTable8685); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIndexExTable"


    // $ANTLR start "ruleIndexExTable"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4197:1: ruleIndexExTable returns [EObject current=null] : (otherlv_0= 'create' ( ( (lv_uniqueness_1_0= 'unique' ) ) | ( (lv_uniqueness_2_0= 'nonunique' ) ) )? ( (lv_bitmap_3_0= 'bitmap' ) )? otherlv_4= 'index' ( (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_6= 'on' )? ( (lv_table_name_7_0= RULE_DBNAME ) ) ( (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_13_0= RULE_STRING ) ) ) ( (lv_logging_14_0= ruleLoggingType ) )? (otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) ) )? ( (lv_compression_17_0= ruleCompressType ) )? ( ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )? )? ( (lv_global_20_0= ruleIndexGlobalType ) )? otherlv_21= ';' ) ;
    public final EObject ruleIndexExTable() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_uniqueness_1_0=null;
        Token lv_uniqueness_2_0=null;
        Token lv_bitmap_3_0=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token lv_table_name_7_0=null;
        Token otherlv_8=null;
        Token otherlv_10=null;
        Token otherlv_11=null;
        Token lv_domain_index_expression_12_0=null;
        Token lv_function_based_expression_13_0=null;
        Token otherlv_15=null;
        Token lv_tablespace_16_0=null;
        Token lv_parallel_degree_19_0=null;
        Token otherlv_21=null;
        AntlrDatatypeRuleToken lv_index_name_5_0 = null;

        EObject lv_index_columns_9_0 = null;

        Enumerator lv_logging_14_0 = null;

        Enumerator lv_compression_17_0 = null;

        Enumerator lv_parallel_18_0 = null;

        Enumerator lv_global_20_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4200:28: ( (otherlv_0= 'create' ( ( (lv_uniqueness_1_0= 'unique' ) ) | ( (lv_uniqueness_2_0= 'nonunique' ) ) )? ( (lv_bitmap_3_0= 'bitmap' ) )? otherlv_4= 'index' ( (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_6= 'on' )? ( (lv_table_name_7_0= RULE_DBNAME ) ) ( (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_13_0= RULE_STRING ) ) ) ( (lv_logging_14_0= ruleLoggingType ) )? (otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) ) )? ( (lv_compression_17_0= ruleCompressType ) )? ( ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )? )? ( (lv_global_20_0= ruleIndexGlobalType ) )? otherlv_21= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4201:1: (otherlv_0= 'create' ( ( (lv_uniqueness_1_0= 'unique' ) ) | ( (lv_uniqueness_2_0= 'nonunique' ) ) )? ( (lv_bitmap_3_0= 'bitmap' ) )? otherlv_4= 'index' ( (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_6= 'on' )? ( (lv_table_name_7_0= RULE_DBNAME ) ) ( (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_13_0= RULE_STRING ) ) ) ( (lv_logging_14_0= ruleLoggingType ) )? (otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) ) )? ( (lv_compression_17_0= ruleCompressType ) )? ( ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )? )? ( (lv_global_20_0= ruleIndexGlobalType ) )? otherlv_21= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4201:1: (otherlv_0= 'create' ( ( (lv_uniqueness_1_0= 'unique' ) ) | ( (lv_uniqueness_2_0= 'nonunique' ) ) )? ( (lv_bitmap_3_0= 'bitmap' ) )? otherlv_4= 'index' ( (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_6= 'on' )? ( (lv_table_name_7_0= RULE_DBNAME ) ) ( (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_13_0= RULE_STRING ) ) ) ( (lv_logging_14_0= ruleLoggingType ) )? (otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) ) )? ( (lv_compression_17_0= ruleCompressType ) )? ( ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )? )? ( (lv_global_20_0= ruleIndexGlobalType ) )? otherlv_21= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4201:3: otherlv_0= 'create' ( ( (lv_uniqueness_1_0= 'unique' ) ) | ( (lv_uniqueness_2_0= 'nonunique' ) ) )? ( (lv_bitmap_3_0= 'bitmap' ) )? otherlv_4= 'index' ( (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_6= 'on' )? ( (lv_table_name_7_0= RULE_DBNAME ) ) ( (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_13_0= RULE_STRING ) ) ) ( (lv_logging_14_0= ruleLoggingType ) )? (otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) ) )? ( (lv_compression_17_0= ruleCompressType ) )? ( ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )? )? ( (lv_global_20_0= ruleIndexGlobalType ) )? otherlv_21= ';'
            {
            otherlv_0=(Token)match(input,12,FOLLOW_12_in_ruleIndexExTable8722); 

                	newLeafNode(otherlv_0, grammarAccess.getIndexExTableAccess().getCreateKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4205:1: ( ( (lv_uniqueness_1_0= 'unique' ) ) | ( (lv_uniqueness_2_0= 'nonunique' ) ) )?
            int alt135=3;
            int LA135_0 = input.LA(1);

            if ( (LA135_0==69) ) {
                alt135=1;
            }
            else if ( (LA135_0==72) ) {
                alt135=2;
            }
            switch (alt135) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4205:2: ( (lv_uniqueness_1_0= 'unique' ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4205:2: ( (lv_uniqueness_1_0= 'unique' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4206:1: (lv_uniqueness_1_0= 'unique' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4206:1: (lv_uniqueness_1_0= 'unique' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4207:3: lv_uniqueness_1_0= 'unique'
                    {
                    lv_uniqueness_1_0=(Token)match(input,69,FOLLOW_69_in_ruleIndexExTable8741); 

                            newLeafNode(lv_uniqueness_1_0, grammarAccess.getIndexExTableAccess().getUniquenessUniqueKeyword_1_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexExTableRule());
                    	        }
                           		setWithLastConsumed(current, "uniqueness", lv_uniqueness_1_0, "unique");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4221:6: ( (lv_uniqueness_2_0= 'nonunique' ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4221:6: ( (lv_uniqueness_2_0= 'nonunique' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4222:1: (lv_uniqueness_2_0= 'nonunique' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4222:1: (lv_uniqueness_2_0= 'nonunique' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4223:3: lv_uniqueness_2_0= 'nonunique'
                    {
                    lv_uniqueness_2_0=(Token)match(input,72,FOLLOW_72_in_ruleIndexExTable8778); 

                            newLeafNode(lv_uniqueness_2_0, grammarAccess.getIndexExTableAccess().getUniquenessNonuniqueKeyword_1_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexExTableRule());
                    	        }
                           		setWithLastConsumed(current, "uniqueness", lv_uniqueness_2_0, "nonunique");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4236:4: ( (lv_bitmap_3_0= 'bitmap' ) )?
            int alt136=2;
            int LA136_0 = input.LA(1);

            if ( (LA136_0==71) ) {
                alt136=1;
            }
            switch (alt136) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4237:1: (lv_bitmap_3_0= 'bitmap' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4237:1: (lv_bitmap_3_0= 'bitmap' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4238:3: lv_bitmap_3_0= 'bitmap'
                    {
                    lv_bitmap_3_0=(Token)match(input,71,FOLLOW_71_in_ruleIndexExTable8811); 

                            newLeafNode(lv_bitmap_3_0, grammarAccess.getIndexExTableAccess().getBitmapBitmapKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexExTableRule());
                    	        }
                           		setWithLastConsumed(current, "bitmap", lv_bitmap_3_0, "bitmap");
                    	    

                    }


                    }
                    break;

            }

            otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleIndexExTable8837); 

                	newLeafNode(otherlv_4, grammarAccess.getIndexExTableAccess().getIndexKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4255:1: ( (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4256:1: (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4256:1: (lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4257:3: lv_index_name_5_0= ruleDBNAME_WITH_SCHEMA
            {
             
            	        newCompositeNode(grammarAccess.getIndexExTableAccess().getIndex_nameDBNAME_WITH_SCHEMAParserRuleCall_4_0()); 
            	    
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleIndexExTable8858);
            lv_index_name_5_0=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getIndexExTableRule());
            	        }
                   		set(
                   			current, 
                   			"index_name",
                    		lv_index_name_5_0, 
                    		"DBNAME_WITH_SCHEMA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4273:2: (otherlv_6= 'on' )?
            int alt137=2;
            int LA137_0 = input.LA(1);

            if ( (LA137_0==20) ) {
                alt137=1;
            }
            switch (alt137) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4273:4: otherlv_6= 'on'
                    {
                    otherlv_6=(Token)match(input,20,FOLLOW_20_in_ruleIndexExTable8871); 

                        	newLeafNode(otherlv_6, grammarAccess.getIndexExTableAccess().getOnKeyword_5());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4277:3: ( (lv_table_name_7_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4278:1: (lv_table_name_7_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4278:1: (lv_table_name_7_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4279:3: lv_table_name_7_0= RULE_DBNAME
            {
            lv_table_name_7_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleIndexExTable8890); 

            			newLeafNode(lv_table_name_7_0, grammarAccess.getIndexExTableAccess().getTable_nameDBNAMETerminalRuleCall_6_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getIndexExTableRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"table_name",
                    		lv_table_name_7_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4295:2: ( (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? ) | ( (lv_function_based_expression_13_0= RULE_STRING ) ) )
            int alt140=2;
            int LA140_0 = input.LA(1);

            if ( (LA140_0==18) ) {
                alt140=1;
            }
            else if ( (LA140_0==RULE_STRING) ) {
                alt140=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 140, 0, input);

                throw nvae;
            }
            switch (alt140) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4295:3: (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4295:3: (otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )? )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4295:5: otherlv_8= '(' ( (lv_index_columns_9_0= ruleColumnRef ) )+ otherlv_10= ')' (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )?
                    {
                    otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleIndexExTable8909); 

                        	newLeafNode(otherlv_8, grammarAccess.getIndexExTableAccess().getLeftParenthesisKeyword_7_0_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4299:1: ( (lv_index_columns_9_0= ruleColumnRef ) )+
                    int cnt138=0;
                    loop138:
                    do {
                        int alt138=2;
                        int LA138_0 = input.LA(1);

                        if ( (LA138_0==RULE_DBNAME||LA138_0==RULE_STRING) ) {
                            alt138=1;
                        }


                        switch (alt138) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4300:1: (lv_index_columns_9_0= ruleColumnRef )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4300:1: (lv_index_columns_9_0= ruleColumnRef )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4301:3: lv_index_columns_9_0= ruleColumnRef
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getIndexExTableAccess().getIndex_columnsColumnRefParserRuleCall_7_0_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleColumnRef_in_ruleIndexExTable8930);
                    	    lv_index_columns_9_0=ruleColumnRef();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getIndexExTableRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"index_columns",
                    	            		lv_index_columns_9_0, 
                    	            		"ColumnRef");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt138 >= 1 ) break loop138;
                                EarlyExitException eee =
                                    new EarlyExitException(138, input);
                                throw eee;
                        }
                        cnt138++;
                    } while (true);

                    otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleIndexExTable8943); 

                        	newLeafNode(otherlv_10, grammarAccess.getIndexExTableAccess().getRightParenthesisKeyword_7_0_2());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4321:1: (otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) ) )?
                    int alt139=2;
                    int LA139_0 = input.LA(1);

                    if ( (LA139_0==70) ) {
                        alt139=1;
                    }
                    switch (alt139) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4321:3: otherlv_11= 'domain_index' ( (lv_domain_index_expression_12_0= RULE_STRING ) )
                            {
                            otherlv_11=(Token)match(input,70,FOLLOW_70_in_ruleIndexExTable8956); 

                                	newLeafNode(otherlv_11, grammarAccess.getIndexExTableAccess().getDomain_indexKeyword_7_0_3_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4325:1: ( (lv_domain_index_expression_12_0= RULE_STRING ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4326:1: (lv_domain_index_expression_12_0= RULE_STRING )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4326:1: (lv_domain_index_expression_12_0= RULE_STRING )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4327:3: lv_domain_index_expression_12_0= RULE_STRING
                            {
                            lv_domain_index_expression_12_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleIndexExTable8973); 

                            			newLeafNode(lv_domain_index_expression_12_0, grammarAccess.getIndexExTableAccess().getDomain_index_expressionSTRINGTerminalRuleCall_7_0_3_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getIndexExTableRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"domain_index_expression",
                                    		lv_domain_index_expression_12_0, 
                                    		"STRING");
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4344:6: ( (lv_function_based_expression_13_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4344:6: ( (lv_function_based_expression_13_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4345:1: (lv_function_based_expression_13_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4345:1: (lv_function_based_expression_13_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4346:3: lv_function_based_expression_13_0= RULE_STRING
                    {
                    lv_function_based_expression_13_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleIndexExTable9004); 

                    			newLeafNode(lv_function_based_expression_13_0, grammarAccess.getIndexExTableAccess().getFunction_based_expressionSTRINGTerminalRuleCall_7_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexExTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"function_based_expression",
                            		lv_function_based_expression_13_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4362:3: ( (lv_logging_14_0= ruleLoggingType ) )?
            int alt141=2;
            int LA141_0 = input.LA(1);

            if ( ((LA141_0>=164 && LA141_0<=166)) ) {
                alt141=1;
            }
            switch (alt141) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4363:1: (lv_logging_14_0= ruleLoggingType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4363:1: (lv_logging_14_0= ruleLoggingType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4364:3: lv_logging_14_0= ruleLoggingType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexExTableAccess().getLoggingLoggingTypeEnumRuleCall_8_0()); 
                    	    
                    pushFollow(FOLLOW_ruleLoggingType_in_ruleIndexExTable9031);
                    lv_logging_14_0=ruleLoggingType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexExTableRule());
                    	        }
                           		set(
                           			current, 
                           			"logging",
                            		lv_logging_14_0, 
                            		"LoggingType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4380:3: (otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) ) )?
            int alt142=2;
            int LA142_0 = input.LA(1);

            if ( (LA142_0==23) ) {
                alt142=1;
            }
            switch (alt142) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4380:5: otherlv_15= 'tablespace' ( (lv_tablespace_16_0= RULE_DBNAME ) )
                    {
                    otherlv_15=(Token)match(input,23,FOLLOW_23_in_ruleIndexExTable9045); 

                        	newLeafNode(otherlv_15, grammarAccess.getIndexExTableAccess().getTablespaceKeyword_9_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4384:1: ( (lv_tablespace_16_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4385:1: (lv_tablespace_16_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4385:1: (lv_tablespace_16_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4386:3: lv_tablespace_16_0= RULE_DBNAME
                    {
                    lv_tablespace_16_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleIndexExTable9062); 

                    			newLeafNode(lv_tablespace_16_0, grammarAccess.getIndexExTableAccess().getTablespaceDBNAMETerminalRuleCall_9_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getIndexExTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_16_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4402:4: ( (lv_compression_17_0= ruleCompressType ) )?
            int alt143=2;
            int LA143_0 = input.LA(1);

            if ( ((LA143_0>=198 && LA143_0<=200)) ) {
                alt143=1;
            }
            switch (alt143) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4403:1: (lv_compression_17_0= ruleCompressType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4403:1: (lv_compression_17_0= ruleCompressType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4404:3: lv_compression_17_0= ruleCompressType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexExTableAccess().getCompressionCompressTypeEnumRuleCall_10_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCompressType_in_ruleIndexExTable9090);
                    lv_compression_17_0=ruleCompressType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexExTableRule());
                    	        }
                           		set(
                           			current, 
                           			"compression",
                            		lv_compression_17_0, 
                            		"CompressType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4420:3: ( ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )? )?
            int alt145=2;
            int LA145_0 = input.LA(1);

            if ( ((LA145_0>=170 && LA145_0<=172)) ) {
                alt145=1;
            }
            switch (alt145) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4420:4: ( (lv_parallel_18_0= ruleParallelType ) ) ( (lv_parallel_degree_19_0= RULE_INT ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4420:4: ( (lv_parallel_18_0= ruleParallelType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4421:1: (lv_parallel_18_0= ruleParallelType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4421:1: (lv_parallel_18_0= ruleParallelType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4422:3: lv_parallel_18_0= ruleParallelType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexExTableAccess().getParallelParallelTypeEnumRuleCall_11_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleParallelType_in_ruleIndexExTable9113);
                    lv_parallel_18_0=ruleParallelType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexExTableRule());
                    	        }
                           		set(
                           			current, 
                           			"parallel",
                            		lv_parallel_18_0, 
                            		"ParallelType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4438:2: ( (lv_parallel_degree_19_0= RULE_INT ) )?
                    int alt144=2;
                    int LA144_0 = input.LA(1);

                    if ( (LA144_0==RULE_INT) ) {
                        alt144=1;
                    }
                    switch (alt144) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4439:1: (lv_parallel_degree_19_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4439:1: (lv_parallel_degree_19_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4440:3: lv_parallel_degree_19_0= RULE_INT
                            {
                            lv_parallel_degree_19_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleIndexExTable9130); 

                            			newLeafNode(lv_parallel_degree_19_0, grammarAccess.getIndexExTableAccess().getParallel_degreeINTTerminalRuleCall_11_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getIndexExTableRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"parallel_degree",
                                    		lv_parallel_degree_19_0, 
                                    		"INT");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4456:5: ( (lv_global_20_0= ruleIndexGlobalType ) )?
            int alt146=2;
            int LA146_0 = input.LA(1);

            if ( (LA146_0==13||(LA146_0>=173 && LA146_0<=174)) ) {
                alt146=1;
            }
            switch (alt146) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4457:1: (lv_global_20_0= ruleIndexGlobalType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4457:1: (lv_global_20_0= ruleIndexGlobalType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4458:3: lv_global_20_0= ruleIndexGlobalType
                    {
                     
                    	        newCompositeNode(grammarAccess.getIndexExTableAccess().getGlobalIndexGlobalTypeEnumRuleCall_12_0()); 
                    	    
                    pushFollow(FOLLOW_ruleIndexGlobalType_in_ruleIndexExTable9159);
                    lv_global_20_0=ruleIndexGlobalType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getIndexExTableRule());
                    	        }
                           		set(
                           			current, 
                           			"global",
                            		lv_global_20_0, 
                            		"IndexGlobalType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            otherlv_21=(Token)match(input,31,FOLLOW_31_in_ruleIndexExTable9172); 

                	newLeafNode(otherlv_21, grammarAccess.getIndexExTableAccess().getSemicolonKeyword_13());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIndexExTable"


    // $ANTLR start "entryRuleColumnRef"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4486:1: entryRuleColumnRef returns [EObject current=null] : iv_ruleColumnRef= ruleColumnRef EOF ;
    public final EObject entryRuleColumnRef() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleColumnRef = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4487:2: (iv_ruleColumnRef= ruleColumnRef EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4488:2: iv_ruleColumnRef= ruleColumnRef EOF
            {
             newCompositeNode(grammarAccess.getColumnRefRule()); 
            pushFollow(FOLLOW_ruleColumnRef_in_entryRuleColumnRef9208);
            iv_ruleColumnRef=ruleColumnRef();

            state._fsp--;

             current =iv_ruleColumnRef; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleColumnRef9218); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleColumnRef"


    // $ANTLR start "ruleColumnRef"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4495:1: ruleColumnRef returns [EObject current=null] : ( ( ( (lv_column_name_0_0= RULE_DBNAME ) ) | ( (lv_column_name_string_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? ) ;
    public final EObject ruleColumnRef() throws RecognitionException {
        EObject current = null;

        Token lv_column_name_0_0=null;
        Token lv_column_name_string_1_0=null;
        Token otherlv_2=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4498:28: ( ( ( ( (lv_column_name_0_0= RULE_DBNAME ) ) | ( (lv_column_name_string_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4499:1: ( ( ( (lv_column_name_0_0= RULE_DBNAME ) ) | ( (lv_column_name_string_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4499:1: ( ( ( (lv_column_name_0_0= RULE_DBNAME ) ) | ( (lv_column_name_string_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4499:2: ( ( (lv_column_name_0_0= RULE_DBNAME ) ) | ( (lv_column_name_string_1_0= RULE_STRING ) ) ) (otherlv_2= ',' )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4499:2: ( ( (lv_column_name_0_0= RULE_DBNAME ) ) | ( (lv_column_name_string_1_0= RULE_STRING ) ) )
            int alt147=2;
            int LA147_0 = input.LA(1);

            if ( (LA147_0==RULE_DBNAME) ) {
                alt147=1;
            }
            else if ( (LA147_0==RULE_STRING) ) {
                alt147=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 147, 0, input);

                throw nvae;
            }
            switch (alt147) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4499:3: ( (lv_column_name_0_0= RULE_DBNAME ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4499:3: ( (lv_column_name_0_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4500:1: (lv_column_name_0_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4500:1: (lv_column_name_0_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4501:3: lv_column_name_0_0= RULE_DBNAME
                    {
                    lv_column_name_0_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleColumnRef9261); 

                    			newLeafNode(lv_column_name_0_0, grammarAccess.getColumnRefAccess().getColumn_nameDBNAMETerminalRuleCall_0_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRefRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"column_name",
                            		lv_column_name_0_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4518:6: ( (lv_column_name_string_1_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4518:6: ( (lv_column_name_string_1_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4519:1: (lv_column_name_string_1_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4519:1: (lv_column_name_string_1_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4520:3: lv_column_name_string_1_0= RULE_STRING
                    {
                    lv_column_name_string_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColumnRef9289); 

                    			newLeafNode(lv_column_name_string_1_0, grammarAccess.getColumnRefAccess().getColumn_name_stringSTRINGTerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnRefRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"column_name_string",
                            		lv_column_name_string_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4536:3: (otherlv_2= ',' )?
            int alt148=2;
            int LA148_0 = input.LA(1);

            if ( (LA148_0==42) ) {
                alt148=1;
            }
            switch (alt148) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4536:5: otherlv_2= ','
                    {
                    otherlv_2=(Token)match(input,42,FOLLOW_42_in_ruleColumnRef9308); 

                        	newLeafNode(otherlv_2, grammarAccess.getColumnRefAccess().getCommaKeyword_1());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleColumnRef"


    // $ANTLR start "entryRuleSequence"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4548:1: entryRuleSequence returns [EObject current=null] : iv_ruleSequence= ruleSequence EOF ;
    public final EObject entryRuleSequence() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSequence = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4549:2: (iv_ruleSequence= ruleSequence EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4550:2: iv_ruleSequence= ruleSequence EOF
            {
             newCompositeNode(grammarAccess.getSequenceRule()); 
            pushFollow(FOLLOW_ruleSequence_in_entryRuleSequence9346);
            iv_ruleSequence=ruleSequence();

            state._fsp--;

             current =iv_ruleSequence; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSequence9356); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSequence"


    // $ANTLR start "ruleSequence"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4557:1: ruleSequence returns [EObject current=null] : (otherlv_0= 'create' otherlv_1= 'sequence' ( (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) ) )? (otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) ) )? (otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) ) )? (otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) ) )? ( (lv_cycle_13_0= ruleCycleType ) )? (otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) ) )? ( (lv_order_16_0= ruleOrderType ) )? (otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) ) )? otherlv_19= ';' ) ;
    public final EObject ruleSequence() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_11=null;
        Token otherlv_14=null;
        Token otherlv_17=null;
        Token lv_max_value_select_18_0=null;
        Token otherlv_19=null;
        AntlrDatatypeRuleToken lv_sequence_name_2_0 = null;

        AntlrDatatypeRuleToken lv_startwith_5_0 = null;

        AntlrDatatypeRuleToken lv_increment_by_8_0 = null;

        AntlrDatatypeRuleToken lv_maxvalue_10_0 = null;

        AntlrDatatypeRuleToken lv_minvalue_12_0 = null;

        Enumerator lv_cycle_13_0 = null;

        AntlrDatatypeRuleToken lv_cache_15_0 = null;

        Enumerator lv_order_16_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4560:28: ( (otherlv_0= 'create' otherlv_1= 'sequence' ( (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) ) )? (otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) ) )? (otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) ) )? (otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) ) )? ( (lv_cycle_13_0= ruleCycleType ) )? (otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) ) )? ( (lv_order_16_0= ruleOrderType ) )? (otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) ) )? otherlv_19= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4561:1: (otherlv_0= 'create' otherlv_1= 'sequence' ( (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) ) )? (otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) ) )? (otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) ) )? (otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) ) )? ( (lv_cycle_13_0= ruleCycleType ) )? (otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) ) )? ( (lv_order_16_0= ruleOrderType ) )? (otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) ) )? otherlv_19= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4561:1: (otherlv_0= 'create' otherlv_1= 'sequence' ( (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) ) )? (otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) ) )? (otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) ) )? (otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) ) )? ( (lv_cycle_13_0= ruleCycleType ) )? (otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) ) )? ( (lv_order_16_0= ruleOrderType ) )? (otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) ) )? otherlv_19= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4561:3: otherlv_0= 'create' otherlv_1= 'sequence' ( (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) ) )? (otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) ) )? (otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) ) )? (otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) ) )? ( (lv_cycle_13_0= ruleCycleType ) )? (otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) ) )? ( (lv_order_16_0= ruleOrderType ) )? (otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) ) )? otherlv_19= ';'
            {
            otherlv_0=(Token)match(input,12,FOLLOW_12_in_ruleSequence9393); 

                	newLeafNode(otherlv_0, grammarAccess.getSequenceAccess().getCreateKeyword_0());
                
            otherlv_1=(Token)match(input,73,FOLLOW_73_in_ruleSequence9405); 

                	newLeafNode(otherlv_1, grammarAccess.getSequenceAccess().getSequenceKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4569:1: ( (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4570:1: (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4570:1: (lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4571:3: lv_sequence_name_2_0= ruleDBNAME_WITH_SCHEMA
            {
             
            	        newCompositeNode(grammarAccess.getSequenceAccess().getSequence_nameDBNAME_WITH_SCHEMAParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleSequence9426);
            lv_sequence_name_2_0=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getSequenceRule());
            	        }
                   		set(
                   			current, 
                   			"sequence_name",
                    		lv_sequence_name_2_0, 
                    		"DBNAME_WITH_SCHEMA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4587:2: (otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) ) )?
            int alt149=2;
            int LA149_0 = input.LA(1);

            if ( (LA149_0==74) ) {
                alt149=1;
            }
            switch (alt149) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4587:4: otherlv_3= 'start' otherlv_4= 'with' ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) )
                    {
                    otherlv_3=(Token)match(input,74,FOLLOW_74_in_ruleSequence9439); 

                        	newLeafNode(otherlv_3, grammarAccess.getSequenceAccess().getStartKeyword_3_0());
                        
                    otherlv_4=(Token)match(input,75,FOLLOW_75_in_ruleSequence9451); 

                        	newLeafNode(otherlv_4, grammarAccess.getSequenceAccess().getWithKeyword_3_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4595:1: ( (lv_startwith_5_0= ruleSIGNED_BIGINT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4596:1: (lv_startwith_5_0= ruleSIGNED_BIGINT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4596:1: (lv_startwith_5_0= ruleSIGNED_BIGINT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4597:3: lv_startwith_5_0= ruleSIGNED_BIGINT
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getStartwithSIGNED_BIGINTParserRuleCall_3_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleSIGNED_BIGINT_in_ruleSequence9472);
                    lv_startwith_5_0=ruleSIGNED_BIGINT();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"startwith",
                            		lv_startwith_5_0, 
                            		"SIGNED_BIGINT");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4613:4: (otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) ) )?
            int alt150=2;
            int LA150_0 = input.LA(1);

            if ( (LA150_0==76) ) {
                alt150=1;
            }
            switch (alt150) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4613:6: otherlv_6= 'increment' otherlv_7= 'by' ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) )
                    {
                    otherlv_6=(Token)match(input,76,FOLLOW_76_in_ruleSequence9487); 

                        	newLeafNode(otherlv_6, grammarAccess.getSequenceAccess().getIncrementKeyword_4_0());
                        
                    otherlv_7=(Token)match(input,33,FOLLOW_33_in_ruleSequence9499); 

                        	newLeafNode(otherlv_7, grammarAccess.getSequenceAccess().getByKeyword_4_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4621:1: ( (lv_increment_by_8_0= ruleSIGNED_BIGINT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4622:1: (lv_increment_by_8_0= ruleSIGNED_BIGINT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4622:1: (lv_increment_by_8_0= ruleSIGNED_BIGINT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4623:3: lv_increment_by_8_0= ruleSIGNED_BIGINT
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getIncrement_bySIGNED_BIGINTParserRuleCall_4_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleSIGNED_BIGINT_in_ruleSequence9520);
                    lv_increment_by_8_0=ruleSIGNED_BIGINT();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"increment_by",
                            		lv_increment_by_8_0, 
                            		"SIGNED_BIGINT");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4639:4: (otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) ) )?
            int alt151=2;
            int LA151_0 = input.LA(1);

            if ( (LA151_0==43) ) {
                alt151=1;
            }
            switch (alt151) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4639:6: otherlv_9= 'maxvalue' ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) )
                    {
                    otherlv_9=(Token)match(input,43,FOLLOW_43_in_ruleSequence9535); 

                        	newLeafNode(otherlv_9, grammarAccess.getSequenceAccess().getMaxvalueKeyword_5_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4643:1: ( (lv_maxvalue_10_0= ruleSIGNED_BIGINT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4644:1: (lv_maxvalue_10_0= ruleSIGNED_BIGINT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4644:1: (lv_maxvalue_10_0= ruleSIGNED_BIGINT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4645:3: lv_maxvalue_10_0= ruleSIGNED_BIGINT
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getMaxvalueSIGNED_BIGINTParserRuleCall_5_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleSIGNED_BIGINT_in_ruleSequence9556);
                    lv_maxvalue_10_0=ruleSIGNED_BIGINT();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"maxvalue",
                            		lv_maxvalue_10_0, 
                            		"SIGNED_BIGINT");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4661:4: (otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) ) )?
            int alt152=2;
            int LA152_0 = input.LA(1);

            if ( (LA152_0==77) ) {
                alt152=1;
            }
            switch (alt152) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4661:6: otherlv_11= 'minvalue' ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) )
                    {
                    otherlv_11=(Token)match(input,77,FOLLOW_77_in_ruleSequence9571); 

                        	newLeafNode(otherlv_11, grammarAccess.getSequenceAccess().getMinvalueKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4665:1: ( (lv_minvalue_12_0= ruleSIGNED_BIGINT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4666:1: (lv_minvalue_12_0= ruleSIGNED_BIGINT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4666:1: (lv_minvalue_12_0= ruleSIGNED_BIGINT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4667:3: lv_minvalue_12_0= ruleSIGNED_BIGINT
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getMinvalueSIGNED_BIGINTParserRuleCall_6_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleSIGNED_BIGINT_in_ruleSequence9592);
                    lv_minvalue_12_0=ruleSIGNED_BIGINT();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"minvalue",
                            		lv_minvalue_12_0, 
                            		"SIGNED_BIGINT");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4683:4: ( (lv_cycle_13_0= ruleCycleType ) )?
            int alt153=2;
            int LA153_0 = input.LA(1);

            if ( ((LA153_0>=181 && LA153_0<=183)) ) {
                alt153=1;
            }
            switch (alt153) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4684:1: (lv_cycle_13_0= ruleCycleType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4684:1: (lv_cycle_13_0= ruleCycleType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4685:3: lv_cycle_13_0= ruleCycleType
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getCycleCycleTypeEnumRuleCall_7_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCycleType_in_ruleSequence9615);
                    lv_cycle_13_0=ruleCycleType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"cycle",
                            		lv_cycle_13_0, 
                            		"CycleType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4701:3: (otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) ) )?
            int alt154=2;
            int LA154_0 = input.LA(1);

            if ( (LA154_0==78) ) {
                alt154=1;
            }
            switch (alt154) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4701:5: otherlv_14= 'cache' ( (lv_cache_15_0= ruleBIGINT ) )
                    {
                    otherlv_14=(Token)match(input,78,FOLLOW_78_in_ruleSequence9629); 

                        	newLeafNode(otherlv_14, grammarAccess.getSequenceAccess().getCacheKeyword_8_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4705:1: ( (lv_cache_15_0= ruleBIGINT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4706:1: (lv_cache_15_0= ruleBIGINT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4706:1: (lv_cache_15_0= ruleBIGINT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4707:3: lv_cache_15_0= ruleBIGINT
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getCacheBIGINTParserRuleCall_8_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleBIGINT_in_ruleSequence9650);
                    lv_cache_15_0=ruleBIGINT();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"cache",
                            		lv_cache_15_0, 
                            		"BIGINT");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4723:4: ( (lv_order_16_0= ruleOrderType ) )?
            int alt155=2;
            int LA155_0 = input.LA(1);

            if ( ((LA155_0>=184 && LA155_0<=186)) ) {
                alt155=1;
            }
            switch (alt155) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4724:1: (lv_order_16_0= ruleOrderType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4724:1: (lv_order_16_0= ruleOrderType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4725:3: lv_order_16_0= ruleOrderType
                    {
                     
                    	        newCompositeNode(grammarAccess.getSequenceAccess().getOrderOrderTypeEnumRuleCall_9_0()); 
                    	    
                    pushFollow(FOLLOW_ruleOrderType_in_ruleSequence9673);
                    lv_order_16_0=ruleOrderType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSequenceRule());
                    	        }
                           		set(
                           			current, 
                           			"order",
                            		lv_order_16_0, 
                            		"OrderType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4741:3: (otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) ) )?
            int alt156=2;
            int LA156_0 = input.LA(1);

            if ( (LA156_0==79) ) {
                alt156=1;
            }
            switch (alt156) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4741:5: otherlv_17= 'orcas_ext_max_value_select' ( (lv_max_value_select_18_0= RULE_STRING ) )
                    {
                    otherlv_17=(Token)match(input,79,FOLLOW_79_in_ruleSequence9687); 

                        	newLeafNode(otherlv_17, grammarAccess.getSequenceAccess().getOrcas_ext_max_value_selectKeyword_10_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4745:1: ( (lv_max_value_select_18_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4746:1: (lv_max_value_select_18_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4746:1: (lv_max_value_select_18_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4747:3: lv_max_value_select_18_0= RULE_STRING
                    {
                    lv_max_value_select_18_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSequence9704); 

                    			newLeafNode(lv_max_value_select_18_0, grammarAccess.getSequenceAccess().getMax_value_selectSTRINGTerminalRuleCall_10_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSequenceRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"max_value_select",
                            		lv_max_value_select_18_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_19=(Token)match(input,31,FOLLOW_31_in_ruleSequence9723); 

                	newLeafNode(otherlv_19, grammarAccess.getSequenceAccess().getSemicolonKeyword_11());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSequence"


    // $ANTLR start "entryRuleColumnIdentity"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4775:1: entryRuleColumnIdentity returns [EObject current=null] : iv_ruleColumnIdentity= ruleColumnIdentity EOF ;
    public final EObject entryRuleColumnIdentity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleColumnIdentity = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4776:2: (iv_ruleColumnIdentity= ruleColumnIdentity EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4777:2: iv_ruleColumnIdentity= ruleColumnIdentity EOF
            {
             newCompositeNode(grammarAccess.getColumnIdentityRule()); 
            pushFollow(FOLLOW_ruleColumnIdentity_in_entryRuleColumnIdentity9759);
            iv_ruleColumnIdentity=ruleColumnIdentity();

            state._fsp--;

             current =iv_ruleColumnIdentity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleColumnIdentity9769); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleColumnIdentity"


    // $ANTLR start "ruleColumnIdentity"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4784:1: ruleColumnIdentity returns [EObject current=null] : (otherlv_0= 'generated' ( ( (lv_always_1_0= 'always' ) ) | (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? ) ) otherlv_6= 'as' otherlv_7= 'identity' (otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')' )? ) ;
    public final EObject ruleColumnIdentity() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_always_1_0=null;
        Token otherlv_2=null;
        Token lv_by_default_3_0=null;
        Token otherlv_4=null;
        Token lv_on_null_5_0=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        Token lv_increment_by_11_0=null;
        Token otherlv_12=null;
        Token lv_maxvalue_13_0=null;
        Token otherlv_14=null;
        Token lv_minvalue_15_0=null;
        Token otherlv_17=null;
        Token lv_cache_18_0=null;
        Token otherlv_20=null;
        Enumerator lv_cycle_16_0 = null;

        Enumerator lv_order_19_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4787:28: ( (otherlv_0= 'generated' ( ( (lv_always_1_0= 'always' ) ) | (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? ) ) otherlv_6= 'as' otherlv_7= 'identity' (otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4788:1: (otherlv_0= 'generated' ( ( (lv_always_1_0= 'always' ) ) | (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? ) ) otherlv_6= 'as' otherlv_7= 'identity' (otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4788:1: (otherlv_0= 'generated' ( ( (lv_always_1_0= 'always' ) ) | (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? ) ) otherlv_6= 'as' otherlv_7= 'identity' (otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4788:3: otherlv_0= 'generated' ( ( (lv_always_1_0= 'always' ) ) | (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? ) ) otherlv_6= 'as' otherlv_7= 'identity' (otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')' )?
            {
            otherlv_0=(Token)match(input,80,FOLLOW_80_in_ruleColumnIdentity9806); 

                	newLeafNode(otherlv_0, grammarAccess.getColumnIdentityAccess().getGeneratedKeyword_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4792:1: ( ( (lv_always_1_0= 'always' ) ) | (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? ) )
            int alt158=2;
            int LA158_0 = input.LA(1);

            if ( (LA158_0==81) ) {
                alt158=1;
            }
            else if ( (LA158_0==33) ) {
                alt158=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 158, 0, input);

                throw nvae;
            }
            switch (alt158) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4792:2: ( (lv_always_1_0= 'always' ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4792:2: ( (lv_always_1_0= 'always' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4793:1: (lv_always_1_0= 'always' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4793:1: (lv_always_1_0= 'always' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4794:3: lv_always_1_0= 'always'
                    {
                    lv_always_1_0=(Token)match(input,81,FOLLOW_81_in_ruleColumnIdentity9825); 

                            newLeafNode(lv_always_1_0, grammarAccess.getColumnIdentityAccess().getAlwaysAlwaysKeyword_1_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                    	        }
                           		setWithLastConsumed(current, "always", lv_always_1_0, "always");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4808:6: (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4808:6: (otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )? )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4808:8: otherlv_2= 'by' ( (lv_by_default_3_0= 'default' ) ) (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )?
                    {
                    otherlv_2=(Token)match(input,33,FOLLOW_33_in_ruleColumnIdentity9857); 

                        	newLeafNode(otherlv_2, grammarAccess.getColumnIdentityAccess().getByKeyword_1_1_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4812:1: ( (lv_by_default_3_0= 'default' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4813:1: (lv_by_default_3_0= 'default' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4813:1: (lv_by_default_3_0= 'default' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4814:3: lv_by_default_3_0= 'default'
                    {
                    lv_by_default_3_0=(Token)match(input,45,FOLLOW_45_in_ruleColumnIdentity9875); 

                            newLeafNode(lv_by_default_3_0, grammarAccess.getColumnIdentityAccess().getBy_defaultDefaultKeyword_1_1_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                    	        }
                           		setWithLastConsumed(current, "by_default", lv_by_default_3_0, "default");
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4827:2: (otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) ) )?
                    int alt157=2;
                    int LA157_0 = input.LA(1);

                    if ( (LA157_0==20) ) {
                        alt157=1;
                    }
                    switch (alt157) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4827:4: otherlv_4= 'on' ( (lv_on_null_5_0= 'null' ) )
                            {
                            otherlv_4=(Token)match(input,20,FOLLOW_20_in_ruleColumnIdentity9901); 

                                	newLeafNode(otherlv_4, grammarAccess.getColumnIdentityAccess().getOnKeyword_1_1_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4831:1: ( (lv_on_null_5_0= 'null' ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4832:1: (lv_on_null_5_0= 'null' )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4832:1: (lv_on_null_5_0= 'null' )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4833:3: lv_on_null_5_0= 'null'
                            {
                            lv_on_null_5_0=(Token)match(input,58,FOLLOW_58_in_ruleColumnIdentity9919); 

                                    newLeafNode(lv_on_null_5_0, grammarAccess.getColumnIdentityAccess().getOn_nullNullKeyword_1_1_2_1_0());
                                

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		setWithLastConsumed(current, "on_null", lv_on_null_5_0, "null");
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }


                    }
                    break;

            }

            otherlv_6=(Token)match(input,48,FOLLOW_48_in_ruleColumnIdentity9948); 

                	newLeafNode(otherlv_6, grammarAccess.getColumnIdentityAccess().getAsKeyword_2());
                
            otherlv_7=(Token)match(input,82,FOLLOW_82_in_ruleColumnIdentity9960); 

                	newLeafNode(otherlv_7, grammarAccess.getColumnIdentityAccess().getIdentityKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4854:1: (otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')' )?
            int alt165=2;
            int LA165_0 = input.LA(1);

            if ( (LA165_0==18) ) {
                alt165=1;
            }
            switch (alt165) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4854:3: otherlv_8= '(' (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )? (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )? (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )? ( (lv_cycle_16_0= ruleCycleType ) )? (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )? ( (lv_order_19_0= ruleOrderType ) )? otherlv_20= ')'
                    {
                    otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleColumnIdentity9973); 

                        	newLeafNode(otherlv_8, grammarAccess.getColumnIdentityAccess().getLeftParenthesisKeyword_4_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4858:1: (otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) ) )?
                    int alt159=2;
                    int LA159_0 = input.LA(1);

                    if ( (LA159_0==76) ) {
                        alt159=1;
                    }
                    switch (alt159) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4858:3: otherlv_9= 'increment' otherlv_10= 'by' ( (lv_increment_by_11_0= RULE_INT ) )
                            {
                            otherlv_9=(Token)match(input,76,FOLLOW_76_in_ruleColumnIdentity9986); 

                                	newLeafNode(otherlv_9, grammarAccess.getColumnIdentityAccess().getIncrementKeyword_4_1_0());
                                
                            otherlv_10=(Token)match(input,33,FOLLOW_33_in_ruleColumnIdentity9998); 

                                	newLeafNode(otherlv_10, grammarAccess.getColumnIdentityAccess().getByKeyword_4_1_1());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4866:1: ( (lv_increment_by_11_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4867:1: (lv_increment_by_11_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4867:1: (lv_increment_by_11_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4868:3: lv_increment_by_11_0= RULE_INT
                            {
                            lv_increment_by_11_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumnIdentity10015); 

                            			newLeafNode(lv_increment_by_11_0, grammarAccess.getColumnIdentityAccess().getIncrement_byINTTerminalRuleCall_4_1_2_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"increment_by",
                                    		lv_increment_by_11_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4884:4: (otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) ) )?
                    int alt160=2;
                    int LA160_0 = input.LA(1);

                    if ( (LA160_0==43) ) {
                        alt160=1;
                    }
                    switch (alt160) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4884:6: otherlv_12= 'maxvalue' ( (lv_maxvalue_13_0= RULE_INT ) )
                            {
                            otherlv_12=(Token)match(input,43,FOLLOW_43_in_ruleColumnIdentity10035); 

                                	newLeafNode(otherlv_12, grammarAccess.getColumnIdentityAccess().getMaxvalueKeyword_4_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4888:1: ( (lv_maxvalue_13_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4889:1: (lv_maxvalue_13_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4889:1: (lv_maxvalue_13_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4890:3: lv_maxvalue_13_0= RULE_INT
                            {
                            lv_maxvalue_13_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumnIdentity10052); 

                            			newLeafNode(lv_maxvalue_13_0, grammarAccess.getColumnIdentityAccess().getMaxvalueINTTerminalRuleCall_4_2_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"maxvalue",
                                    		lv_maxvalue_13_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4906:4: (otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) ) )?
                    int alt161=2;
                    int LA161_0 = input.LA(1);

                    if ( (LA161_0==77) ) {
                        alt161=1;
                    }
                    switch (alt161) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4906:6: otherlv_14= 'minvalue' ( (lv_minvalue_15_0= RULE_INT ) )
                            {
                            otherlv_14=(Token)match(input,77,FOLLOW_77_in_ruleColumnIdentity10072); 

                                	newLeafNode(otherlv_14, grammarAccess.getColumnIdentityAccess().getMinvalueKeyword_4_3_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4910:1: ( (lv_minvalue_15_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4911:1: (lv_minvalue_15_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4911:1: (lv_minvalue_15_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4912:3: lv_minvalue_15_0= RULE_INT
                            {
                            lv_minvalue_15_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumnIdentity10089); 

                            			newLeafNode(lv_minvalue_15_0, grammarAccess.getColumnIdentityAccess().getMinvalueINTTerminalRuleCall_4_3_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"minvalue",
                                    		lv_minvalue_15_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4928:4: ( (lv_cycle_16_0= ruleCycleType ) )?
                    int alt162=2;
                    int LA162_0 = input.LA(1);

                    if ( ((LA162_0>=181 && LA162_0<=183)) ) {
                        alt162=1;
                    }
                    switch (alt162) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4929:1: (lv_cycle_16_0= ruleCycleType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4929:1: (lv_cycle_16_0= ruleCycleType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4930:3: lv_cycle_16_0= ruleCycleType
                            {
                             
                            	        newCompositeNode(grammarAccess.getColumnIdentityAccess().getCycleCycleTypeEnumRuleCall_4_4_0()); 
                            	    
                            pushFollow(FOLLOW_ruleCycleType_in_ruleColumnIdentity10117);
                            lv_cycle_16_0=ruleCycleType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"cycle",
                                    		lv_cycle_16_0, 
                                    		"CycleType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4946:3: (otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) ) )?
                    int alt163=2;
                    int LA163_0 = input.LA(1);

                    if ( (LA163_0==78) ) {
                        alt163=1;
                    }
                    switch (alt163) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4946:5: otherlv_17= 'cache' ( (lv_cache_18_0= RULE_INT ) )
                            {
                            otherlv_17=(Token)match(input,78,FOLLOW_78_in_ruleColumnIdentity10131); 

                                	newLeafNode(otherlv_17, grammarAccess.getColumnIdentityAccess().getCacheKeyword_4_5_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4950:1: ( (lv_cache_18_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4951:1: (lv_cache_18_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4951:1: (lv_cache_18_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4952:3: lv_cache_18_0= RULE_INT
                            {
                            lv_cache_18_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumnIdentity10148); 

                            			newLeafNode(lv_cache_18_0, grammarAccess.getColumnIdentityAccess().getCacheINTTerminalRuleCall_4_5_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"cache",
                                    		lv_cache_18_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4968:4: ( (lv_order_19_0= ruleOrderType ) )?
                    int alt164=2;
                    int LA164_0 = input.LA(1);

                    if ( ((LA164_0>=184 && LA164_0<=186)) ) {
                        alt164=1;
                    }
                    switch (alt164) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4969:1: (lv_order_19_0= ruleOrderType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4969:1: (lv_order_19_0= ruleOrderType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4970:3: lv_order_19_0= ruleOrderType
                            {
                             
                            	        newCompositeNode(grammarAccess.getColumnIdentityAccess().getOrderOrderTypeEnumRuleCall_4_6_0()); 
                            	    
                            pushFollow(FOLLOW_ruleOrderType_in_ruleColumnIdentity10176);
                            lv_order_19_0=ruleOrderType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getColumnIdentityRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"order",
                                    		lv_order_19_0, 
                                    		"OrderType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }

                    otherlv_20=(Token)match(input,19,FOLLOW_19_in_ruleColumnIdentity10189); 

                        	newLeafNode(otherlv_20, grammarAccess.getColumnIdentityAccess().getRightParenthesisKeyword_4_7());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleColumnIdentity"


    // $ANTLR start "entryRuleMview"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4998:1: entryRuleMview returns [EObject current=null] : iv_ruleMview= ruleMview EOF ;
    public final EObject entryRuleMview() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMview = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:4999:2: (iv_ruleMview= ruleMview EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5000:2: iv_ruleMview= ruleMview EOF
            {
             newCompositeNode(grammarAccess.getMviewRule()); 
            pushFollow(FOLLOW_ruleMview_in_entryRuleMview10227);
            iv_ruleMview=ruleMview();

            state._fsp--;

             current =iv_ruleMview; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMview10237); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMview"


    // $ANTLR start "ruleMview"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5007:1: ruleMview returns [EObject current=null] : (otherlv_0= 'create' otherlv_1= 'materialized' otherlv_2= 'view' ( (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' )? (otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) ) )? ( ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )? )? ( ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )? )? ( (lv_buildMode_14_0= ruleBuildModeType ) )? ( ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )? )? ( ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite' )? (otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) ) ) otherlv_27= ';' ) ;
    public final EObject ruleMview() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token lv_tablespace_8_0=null;
        Token otherlv_10=null;
        Token lv_parallel_degree_13_0=null;
        Token otherlv_16=null;
        Token otherlv_18=null;
        Token lv_refreshWithPrimaryKey_19_0=null;
        Token otherlv_20=null;
        Token lv_refreshWithPrimaryKey_21_0=null;
        Token otherlv_23=null;
        Token otherlv_24=null;
        Token otherlv_25=null;
        Token lv_viewSelectCLOB_26_0=null;
        Token otherlv_27=null;
        AntlrDatatypeRuleToken lv_mview_name_3_0 = null;

        EObject lv_mview_columns_5_0 = null;

        Enumerator lv_compression_9_0 = null;

        Enumerator lv_compressionFor_11_0 = null;

        Enumerator lv_parallel_12_0 = null;

        Enumerator lv_buildMode_14_0 = null;

        Enumerator lv_refreshMethod_15_0 = null;

        Enumerator lv_refreshMode_17_0 = null;

        Enumerator lv_queryRewrite_22_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5010:28: ( (otherlv_0= 'create' otherlv_1= 'materialized' otherlv_2= 'view' ( (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' )? (otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) ) )? ( ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )? )? ( ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )? )? ( (lv_buildMode_14_0= ruleBuildModeType ) )? ( ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )? )? ( ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite' )? (otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) ) ) otherlv_27= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5011:1: (otherlv_0= 'create' otherlv_1= 'materialized' otherlv_2= 'view' ( (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' )? (otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) ) )? ( ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )? )? ( ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )? )? ( (lv_buildMode_14_0= ruleBuildModeType ) )? ( ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )? )? ( ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite' )? (otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) ) ) otherlv_27= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5011:1: (otherlv_0= 'create' otherlv_1= 'materialized' otherlv_2= 'view' ( (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' )? (otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) ) )? ( ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )? )? ( ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )? )? ( (lv_buildMode_14_0= ruleBuildModeType ) )? ( ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )? )? ( ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite' )? (otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) ) ) otherlv_27= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5011:3: otherlv_0= 'create' otherlv_1= 'materialized' otherlv_2= 'view' ( (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA ) ) (otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' )? (otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) ) )? ( ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )? )? ( ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )? )? ( (lv_buildMode_14_0= ruleBuildModeType ) )? ( ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )? )? ( ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite' )? (otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) ) ) otherlv_27= ';'
            {
            otherlv_0=(Token)match(input,12,FOLLOW_12_in_ruleMview10274); 

                	newLeafNode(otherlv_0, grammarAccess.getMviewAccess().getCreateKeyword_0());
                
            otherlv_1=(Token)match(input,83,FOLLOW_83_in_ruleMview10286); 

                	newLeafNode(otherlv_1, grammarAccess.getMviewAccess().getMaterializedKeyword_1());
                
            otherlv_2=(Token)match(input,84,FOLLOW_84_in_ruleMview10298); 

                	newLeafNode(otherlv_2, grammarAccess.getMviewAccess().getViewKeyword_2());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5023:1: ( (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5024:1: (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5024:1: (lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5025:3: lv_mview_name_3_0= ruleDBNAME_WITH_SCHEMA
            {
             
            	        newCompositeNode(grammarAccess.getMviewAccess().getMview_nameDBNAME_WITH_SCHEMAParserRuleCall_3_0()); 
            	    
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_ruleMview10319);
            lv_mview_name_3_0=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getMviewRule());
            	        }
                   		set(
                   			current, 
                   			"mview_name",
                    		lv_mview_name_3_0, 
                    		"DBNAME_WITH_SCHEMA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5041:2: (otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')' )?
            int alt167=2;
            int LA167_0 = input.LA(1);

            if ( (LA167_0==18) ) {
                alt167=1;
            }
            switch (alt167) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5041:4: otherlv_4= '(' ( (lv_mview_columns_5_0= ruleColumnRef ) )+ otherlv_6= ')'
                    {
                    otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleMview10332); 

                        	newLeafNode(otherlv_4, grammarAccess.getMviewAccess().getLeftParenthesisKeyword_4_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5045:1: ( (lv_mview_columns_5_0= ruleColumnRef ) )+
                    int cnt166=0;
                    loop166:
                    do {
                        int alt166=2;
                        int LA166_0 = input.LA(1);

                        if ( (LA166_0==RULE_DBNAME||LA166_0==RULE_STRING) ) {
                            alt166=1;
                        }


                        switch (alt166) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5046:1: (lv_mview_columns_5_0= ruleColumnRef )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5046:1: (lv_mview_columns_5_0= ruleColumnRef )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5047:3: lv_mview_columns_5_0= ruleColumnRef
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getMviewAccess().getMview_columnsColumnRefParserRuleCall_4_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleColumnRef_in_ruleMview10353);
                    	    lv_mview_columns_5_0=ruleColumnRef();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getMviewRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"mview_columns",
                    	            		lv_mview_columns_5_0, 
                    	            		"ColumnRef");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt166 >= 1 ) break loop166;
                                EarlyExitException eee =
                                    new EarlyExitException(166, input);
                                throw eee;
                        }
                        cnt166++;
                    } while (true);

                    otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleMview10366); 

                        	newLeafNode(otherlv_6, grammarAccess.getMviewAccess().getRightParenthesisKeyword_4_2());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5067:3: (otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) ) )?
            int alt168=2;
            int LA168_0 = input.LA(1);

            if ( (LA168_0==23) ) {
                alt168=1;
            }
            switch (alt168) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5067:5: otherlv_7= 'tablespace' ( (lv_tablespace_8_0= RULE_DBNAME ) )
                    {
                    otherlv_7=(Token)match(input,23,FOLLOW_23_in_ruleMview10381); 

                        	newLeafNode(otherlv_7, grammarAccess.getMviewAccess().getTablespaceKeyword_5_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5071:1: ( (lv_tablespace_8_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5072:1: (lv_tablespace_8_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5072:1: (lv_tablespace_8_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5073:3: lv_tablespace_8_0= RULE_DBNAME
                    {
                    lv_tablespace_8_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleMview10398); 

                    			newLeafNode(lv_tablespace_8_0, grammarAccess.getMviewAccess().getTablespaceDBNAMETerminalRuleCall_5_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMviewRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_8_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5089:4: ( ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )? )?
            int alt170=2;
            int LA170_0 = input.LA(1);

            if ( ((LA170_0>=198 && LA170_0<=200)) ) {
                alt170=1;
            }
            switch (alt170) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5089:5: ( (lv_compression_9_0= ruleCompressType ) ) (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5089:5: ( (lv_compression_9_0= ruleCompressType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5090:1: (lv_compression_9_0= ruleCompressType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5090:1: (lv_compression_9_0= ruleCompressType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5091:3: lv_compression_9_0= ruleCompressType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewAccess().getCompressionCompressTypeEnumRuleCall_6_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCompressType_in_ruleMview10427);
                    lv_compression_9_0=ruleCompressType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewRule());
                    	        }
                           		set(
                           			current, 
                           			"compression",
                            		lv_compression_9_0, 
                            		"CompressType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5107:2: (otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) ) )?
                    int alt169=2;
                    int LA169_0 = input.LA(1);

                    if ( (LA169_0==30) ) {
                        alt169=1;
                    }
                    switch (alt169) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5107:4: otherlv_10= 'for' ( (lv_compressionFor_11_0= ruleCompressForType ) )
                            {
                            otherlv_10=(Token)match(input,30,FOLLOW_30_in_ruleMview10440); 

                                	newLeafNode(otherlv_10, grammarAccess.getMviewAccess().getForKeyword_6_1_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5111:1: ( (lv_compressionFor_11_0= ruleCompressForType ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5112:1: (lv_compressionFor_11_0= ruleCompressForType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5112:1: (lv_compressionFor_11_0= ruleCompressForType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5113:3: lv_compressionFor_11_0= ruleCompressForType
                            {
                             
                            	        newCompositeNode(grammarAccess.getMviewAccess().getCompressionForCompressForTypeEnumRuleCall_6_1_1_0()); 
                            	    
                            pushFollow(FOLLOW_ruleCompressForType_in_ruleMview10461);
                            lv_compressionFor_11_0=ruleCompressForType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getMviewRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"compressionFor",
                                    		lv_compressionFor_11_0, 
                                    		"CompressForType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5129:6: ( ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )? )?
            int alt172=2;
            int LA172_0 = input.LA(1);

            if ( ((LA172_0>=170 && LA172_0<=172)) ) {
                alt172=1;
            }
            switch (alt172) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5129:7: ( (lv_parallel_12_0= ruleParallelType ) ) ( (lv_parallel_degree_13_0= RULE_INT ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5129:7: ( (lv_parallel_12_0= ruleParallelType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5130:1: (lv_parallel_12_0= ruleParallelType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5130:1: (lv_parallel_12_0= ruleParallelType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5131:3: lv_parallel_12_0= ruleParallelType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewAccess().getParallelParallelTypeEnumRuleCall_7_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleParallelType_in_ruleMview10487);
                    lv_parallel_12_0=ruleParallelType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewRule());
                    	        }
                           		set(
                           			current, 
                           			"parallel",
                            		lv_parallel_12_0, 
                            		"ParallelType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5147:2: ( (lv_parallel_degree_13_0= RULE_INT ) )?
                    int alt171=2;
                    int LA171_0 = input.LA(1);

                    if ( (LA171_0==RULE_INT) ) {
                        alt171=1;
                    }
                    switch (alt171) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5148:1: (lv_parallel_degree_13_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5148:1: (lv_parallel_degree_13_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5149:3: lv_parallel_degree_13_0= RULE_INT
                            {
                            lv_parallel_degree_13_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMview10504); 

                            			newLeafNode(lv_parallel_degree_13_0, grammarAccess.getMviewAccess().getParallel_degreeINTTerminalRuleCall_7_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"parallel_degree",
                                    		lv_parallel_degree_13_0, 
                                    		"INT");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5165:5: ( (lv_buildMode_14_0= ruleBuildModeType ) )?
            int alt173=2;
            int LA173_0 = input.LA(1);

            if ( (LA173_0==92||LA173_0==159||(LA173_0>=201 && LA173_0<=202)) ) {
                alt173=1;
            }
            switch (alt173) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5166:1: (lv_buildMode_14_0= ruleBuildModeType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5166:1: (lv_buildMode_14_0= ruleBuildModeType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5167:3: lv_buildMode_14_0= ruleBuildModeType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewAccess().getBuildModeBuildModeTypeEnumRuleCall_8_0()); 
                    	    
                    pushFollow(FOLLOW_ruleBuildModeType_in_ruleMview10533);
                    lv_buildMode_14_0=ruleBuildModeType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewRule());
                    	        }
                           		set(
                           			current, 
                           			"buildMode",
                            		lv_buildMode_14_0, 
                            		"BuildModeType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5183:3: ( ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )? )?
            int alt177=2;
            int LA177_0 = input.LA(1);

            if ( ((LA177_0>=205 && LA177_0<=209)) ) {
                alt177=1;
            }
            switch (alt177) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5183:4: ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) ) (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )? (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5183:4: ( (lv_refreshMethod_15_0= ruleRefreshMethodType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5184:1: (lv_refreshMethod_15_0= ruleRefreshMethodType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5184:1: (lv_refreshMethod_15_0= ruleRefreshMethodType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5185:3: lv_refreshMethod_15_0= ruleRefreshMethodType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewAccess().getRefreshMethodRefreshMethodTypeEnumRuleCall_9_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleRefreshMethodType_in_ruleMview10556);
                    lv_refreshMethod_15_0=ruleRefreshMethodType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewRule());
                    	        }
                           		set(
                           			current, 
                           			"refreshMethod",
                            		lv_refreshMethod_15_0, 
                            		"RefreshMethodType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5201:2: (otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) ) )?
                    int alt174=2;
                    int LA174_0 = input.LA(1);

                    if ( (LA174_0==20) ) {
                        alt174=1;
                    }
                    switch (alt174) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5201:4: otherlv_16= 'on' ( (lv_refreshMode_17_0= ruleRefreshModeType ) )
                            {
                            otherlv_16=(Token)match(input,20,FOLLOW_20_in_ruleMview10569); 

                                	newLeafNode(otherlv_16, grammarAccess.getMviewAccess().getOnKeyword_9_1_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5205:1: ( (lv_refreshMode_17_0= ruleRefreshModeType ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5206:1: (lv_refreshMode_17_0= ruleRefreshModeType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5206:1: (lv_refreshMode_17_0= ruleRefreshModeType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5207:3: lv_refreshMode_17_0= ruleRefreshModeType
                            {
                             
                            	        newCompositeNode(grammarAccess.getMviewAccess().getRefreshModeRefreshModeTypeEnumRuleCall_9_1_1_0()); 
                            	    
                            pushFollow(FOLLOW_ruleRefreshModeType_in_ruleMview10590);
                            lv_refreshMode_17_0=ruleRefreshModeType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getMviewRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"refreshMode",
                                    		lv_refreshMode_17_0, 
                                    		"RefreshModeType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5223:4: (otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) ) )?
                    int alt176=2;
                    int LA176_0 = input.LA(1);

                    if ( (LA176_0==75) ) {
                        alt176=1;
                    }
                    switch (alt176) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5223:6: otherlv_18= 'with' ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) )
                            {
                            otherlv_18=(Token)match(input,75,FOLLOW_75_in_ruleMview10605); 

                                	newLeafNode(otherlv_18, grammarAccess.getMviewAccess().getWithKeyword_9_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5227:1: ( ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' ) | ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) ) )
                            int alt175=2;
                            int LA175_0 = input.LA(1);

                            if ( (LA175_0==66) ) {
                                alt175=1;
                            }
                            else if ( (LA175_0==85) ) {
                                alt175=2;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 175, 0, input);

                                throw nvae;
                            }
                            switch (alt175) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5227:2: ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' )
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5227:2: ( ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key' )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5227:3: ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) ) otherlv_20= 'key'
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5227:3: ( (lv_refreshWithPrimaryKey_19_0= 'primary' ) )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5228:1: (lv_refreshWithPrimaryKey_19_0= 'primary' )
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5228:1: (lv_refreshWithPrimaryKey_19_0= 'primary' )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5229:3: lv_refreshWithPrimaryKey_19_0= 'primary'
                                    {
                                    lv_refreshWithPrimaryKey_19_0=(Token)match(input,66,FOLLOW_66_in_ruleMview10625); 

                                            newLeafNode(lv_refreshWithPrimaryKey_19_0, grammarAccess.getMviewAccess().getRefreshWithPrimaryKeyPrimaryKeyword_9_2_1_0_0_0());
                                        

                                    	        if (current==null) {
                                    	            current = createModelElement(grammarAccess.getMviewRule());
                                    	        }
                                           		setWithLastConsumed(current, "refreshWithPrimaryKey", lv_refreshWithPrimaryKey_19_0, "primary");
                                    	    

                                    }


                                    }

                                    otherlv_20=(Token)match(input,63,FOLLOW_63_in_ruleMview10650); 

                                        	newLeafNode(otherlv_20, grammarAccess.getMviewAccess().getKeyKeyword_9_2_1_0_1());
                                        

                                    }


                                    }
                                    break;
                                case 2 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5247:6: ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) )
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5247:6: ( (lv_refreshWithPrimaryKey_21_0= 'rowid' ) )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5248:1: (lv_refreshWithPrimaryKey_21_0= 'rowid' )
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5248:1: (lv_refreshWithPrimaryKey_21_0= 'rowid' )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5249:3: lv_refreshWithPrimaryKey_21_0= 'rowid'
                                    {
                                    lv_refreshWithPrimaryKey_21_0=(Token)match(input,85,FOLLOW_85_in_ruleMview10675); 

                                            newLeafNode(lv_refreshWithPrimaryKey_21_0, grammarAccess.getMviewAccess().getRefreshWithPrimaryKeyRowidKeyword_9_2_1_1_0());
                                        

                                    	        if (current==null) {
                                    	            current = createModelElement(grammarAccess.getMviewRule());
                                    	        }
                                           		setWithLastConsumed(current, "refreshWithPrimaryKey", lv_refreshWithPrimaryKey_21_0, "rowid");
                                    	    

                                    }


                                    }


                                    }
                                    break;

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5262:7: ( ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite' )?
            int alt178=2;
            int LA178_0 = input.LA(1);

            if ( ((LA178_0>=167 && LA178_0<=169)) ) {
                alt178=1;
            }
            switch (alt178) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5262:8: ( (lv_queryRewrite_22_0= ruleEnableType ) ) otherlv_23= 'query' otherlv_24= 'rewrite'
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5262:8: ( (lv_queryRewrite_22_0= ruleEnableType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5263:1: (lv_queryRewrite_22_0= ruleEnableType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5263:1: (lv_queryRewrite_22_0= ruleEnableType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5264:3: lv_queryRewrite_22_0= ruleEnableType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewAccess().getQueryRewriteEnableTypeEnumRuleCall_10_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleEnableType_in_ruleMview10715);
                    lv_queryRewrite_22_0=ruleEnableType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewRule());
                    	        }
                           		set(
                           			current, 
                           			"queryRewrite",
                            		lv_queryRewrite_22_0, 
                            		"EnableType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_23=(Token)match(input,86,FOLLOW_86_in_ruleMview10727); 

                        	newLeafNode(otherlv_23, grammarAccess.getMviewAccess().getQueryKeyword_10_1());
                        
                    otherlv_24=(Token)match(input,87,FOLLOW_87_in_ruleMview10739); 

                        	newLeafNode(otherlv_24, grammarAccess.getMviewAccess().getRewriteKeyword_10_2());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5288:3: (otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5288:5: otherlv_25= 'as' ( (lv_viewSelectCLOB_26_0= RULE_STRING ) )
            {
            otherlv_25=(Token)match(input,48,FOLLOW_48_in_ruleMview10754); 

                	newLeafNode(otherlv_25, grammarAccess.getMviewAccess().getAsKeyword_11_0());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5292:1: ( (lv_viewSelectCLOB_26_0= RULE_STRING ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5293:1: (lv_viewSelectCLOB_26_0= RULE_STRING )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5293:1: (lv_viewSelectCLOB_26_0= RULE_STRING )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5294:3: lv_viewSelectCLOB_26_0= RULE_STRING
            {
            lv_viewSelectCLOB_26_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMview10771); 

            			newLeafNode(lv_viewSelectCLOB_26_0, grammarAccess.getMviewAccess().getViewSelectCLOBSTRINGTerminalRuleCall_11_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMviewRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"viewSelectCLOB",
                    		lv_viewSelectCLOB_26_0, 
                    		"STRING");
            	    

            }


            }


            }

            otherlv_27=(Token)match(input,31,FOLLOW_31_in_ruleMview10789); 

                	newLeafNode(otherlv_27, grammarAccess.getMviewAccess().getSemicolonKeyword_12());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMview"


    // $ANTLR start "entryRuleMviewLog"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5322:1: entryRuleMviewLog returns [EObject current=null] : iv_ruleMviewLog= ruleMviewLog EOF ;
    public final EObject entryRuleMviewLog() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMviewLog = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5323:2: (iv_ruleMviewLog= ruleMviewLog EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5324:2: iv_ruleMviewLog= ruleMviewLog EOF
            {
             newCompositeNode(grammarAccess.getMviewLogRule()); 
            pushFollow(FOLLOW_ruleMviewLog_in_entryRuleMviewLog10825);
            iv_ruleMviewLog=ruleMviewLog();

            state._fsp--;

             current =iv_ruleMviewLog; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMviewLog10835); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMviewLog"


    // $ANTLR start "ruleMviewLog"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5331:1: ruleMviewLog returns [EObject current=null] : (otherlv_0= 'materialized' otherlv_1= 'view' otherlv_2= 'log' (otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) ) )? ( ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )? )? ( ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values' )? (otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )? )? ( ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )? )? ) ;
    public final EObject ruleMviewLog() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token lv_tablespace_4_0=null;
        Token lv_parallel_degree_6_0=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        Token lv_primaryKey_11_0=null;
        Token otherlv_12=null;
        Token otherlv_13=null;
        Token lv_rowid_14_0=null;
        Token otherlv_15=null;
        Token lv_withSequence_16_0=null;
        Token otherlv_17=null;
        Token otherlv_18=null;
        Token otherlv_20=null;
        Token otherlv_21=null;
        Token lv_commitScn_22_0=null;
        Token lv_purge_23_0=null;
        Token otherlv_24=null;
        Token otherlv_26=null;
        Token otherlv_27=null;
        Token lv_startWith_28_0=null;
        Token otherlv_29=null;
        Token lv_next_30_0=null;
        Token otherlv_31=null;
        Token otherlv_32=null;
        Token lv_repeatInterval_33_0=null;
        Enumerator lv_parallel_5_0 = null;

        Enumerator lv_newValues_7_0 = null;

        EObject lv_columns_19_0 = null;

        Enumerator lv_synchronous_25_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5334:28: ( (otherlv_0= 'materialized' otherlv_1= 'view' otherlv_2= 'log' (otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) ) )? ( ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )? )? ( ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values' )? (otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )? )? ( ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )? )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5335:1: (otherlv_0= 'materialized' otherlv_1= 'view' otherlv_2= 'log' (otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) ) )? ( ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )? )? ( ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values' )? (otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )? )? ( ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )? )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5335:1: (otherlv_0= 'materialized' otherlv_1= 'view' otherlv_2= 'log' (otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) ) )? ( ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )? )? ( ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values' )? (otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )? )? ( ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )? )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5335:3: otherlv_0= 'materialized' otherlv_1= 'view' otherlv_2= 'log' (otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) ) )? ( ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )? )? ( ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values' )? (otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )? )? ( ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )? )?
            {
            otherlv_0=(Token)match(input,83,FOLLOW_83_in_ruleMviewLog10872); 

                	newLeafNode(otherlv_0, grammarAccess.getMviewLogAccess().getMaterializedKeyword_0());
                
            otherlv_1=(Token)match(input,84,FOLLOW_84_in_ruleMviewLog10884); 

                	newLeafNode(otherlv_1, grammarAccess.getMviewLogAccess().getViewKeyword_1());
                
            otherlv_2=(Token)match(input,88,FOLLOW_88_in_ruleMviewLog10896); 

                	newLeafNode(otherlv_2, grammarAccess.getMviewLogAccess().getLogKeyword_2());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5347:1: (otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) ) )?
            int alt179=2;
            int LA179_0 = input.LA(1);

            if ( (LA179_0==23) ) {
                alt179=1;
            }
            switch (alt179) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5347:3: otherlv_3= 'tablespace' ( (lv_tablespace_4_0= RULE_DBNAME ) )
                    {
                    otherlv_3=(Token)match(input,23,FOLLOW_23_in_ruleMviewLog10909); 

                        	newLeafNode(otherlv_3, grammarAccess.getMviewLogAccess().getTablespaceKeyword_3_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5351:1: ( (lv_tablespace_4_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5352:1: (lv_tablespace_4_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5352:1: (lv_tablespace_4_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5353:3: lv_tablespace_4_0= RULE_DBNAME
                    {
                    lv_tablespace_4_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleMviewLog10926); 

                    			newLeafNode(lv_tablespace_4_0, grammarAccess.getMviewLogAccess().getTablespaceDBNAMETerminalRuleCall_3_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMviewLogRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"tablespace",
                            		lv_tablespace_4_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5369:4: ( ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )? )?
            int alt181=2;
            int LA181_0 = input.LA(1);

            if ( ((LA181_0>=170 && LA181_0<=172)) ) {
                alt181=1;
            }
            switch (alt181) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5369:5: ( (lv_parallel_5_0= ruleParallelType ) ) ( (lv_parallel_degree_6_0= RULE_INT ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5369:5: ( (lv_parallel_5_0= ruleParallelType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5370:1: (lv_parallel_5_0= ruleParallelType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5370:1: (lv_parallel_5_0= ruleParallelType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5371:3: lv_parallel_5_0= ruleParallelType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewLogAccess().getParallelParallelTypeEnumRuleCall_4_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleParallelType_in_ruleMviewLog10955);
                    lv_parallel_5_0=ruleParallelType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewLogRule());
                    	        }
                           		set(
                           			current, 
                           			"parallel",
                            		lv_parallel_5_0, 
                            		"ParallelType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5387:2: ( (lv_parallel_degree_6_0= RULE_INT ) )?
                    int alt180=2;
                    int LA180_0 = input.LA(1);

                    if ( (LA180_0==RULE_INT) ) {
                        alt180=1;
                    }
                    switch (alt180) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5388:1: (lv_parallel_degree_6_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5388:1: (lv_parallel_degree_6_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5389:3: lv_parallel_degree_6_0= RULE_INT
                            {
                            lv_parallel_degree_6_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMviewLog10972); 

                            			newLeafNode(lv_parallel_degree_6_0, grammarAccess.getMviewLogAccess().getParallel_degreeINTTerminalRuleCall_4_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"parallel_degree",
                                    		lv_parallel_degree_6_0, 
                                    		"INT");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5405:5: ( ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values' )?
            int alt182=2;
            int LA182_0 = input.LA(1);

            if ( (LA182_0==27||(LA182_0>=210 && LA182_0<=211)) ) {
                alt182=1;
            }
            switch (alt182) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5405:6: ( (lv_newValues_7_0= ruleNewValuesType ) ) otherlv_8= 'new' otherlv_9= 'values'
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5405:6: ( (lv_newValues_7_0= ruleNewValuesType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5406:1: (lv_newValues_7_0= ruleNewValuesType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5406:1: (lv_newValues_7_0= ruleNewValuesType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5407:3: lv_newValues_7_0= ruleNewValuesType
                    {
                     
                    	        newCompositeNode(grammarAccess.getMviewLogAccess().getNewValuesNewValuesTypeEnumRuleCall_5_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleNewValuesType_in_ruleMviewLog11002);
                    lv_newValues_7_0=ruleNewValuesType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMviewLogRule());
                    	        }
                           		set(
                           			current, 
                           			"newValues",
                            		lv_newValues_7_0, 
                            		"NewValuesType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_8=(Token)match(input,89,FOLLOW_89_in_ruleMviewLog11014); 

                        	newLeafNode(otherlv_8, grammarAccess.getMviewLogAccess().getNewKeyword_5_1());
                        
                    otherlv_9=(Token)match(input,39,FOLLOW_39_in_ruleMviewLog11026); 

                        	newLeafNode(otherlv_9, grammarAccess.getMviewLogAccess().getValuesKeyword_5_2());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5431:3: (otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )? )?
            int alt193=2;
            int LA193_0 = input.LA(1);

            if ( (LA193_0==75) ) {
                alt193=1;
            }
            switch (alt193) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5431:5: otherlv_10= 'with' ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )? ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )? ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )? (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )? ( (lv_commitScn_22_0= 'commit_scn' ) )?
                    {
                    otherlv_10=(Token)match(input,75,FOLLOW_75_in_ruleMviewLog11041); 

                        	newLeafNode(otherlv_10, grammarAccess.getMviewLogAccess().getWithKeyword_6_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5435:1: ( ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )? )?
                    int alt184=2;
                    int LA184_0 = input.LA(1);

                    if ( (LA184_0==66) ) {
                        alt184=1;
                    }
                    switch (alt184) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5435:2: ( (lv_primaryKey_11_0= 'primary' ) ) otherlv_12= 'key' (otherlv_13= ',' )?
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5435:2: ( (lv_primaryKey_11_0= 'primary' ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5436:1: (lv_primaryKey_11_0= 'primary' )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5436:1: (lv_primaryKey_11_0= 'primary' )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5437:3: lv_primaryKey_11_0= 'primary'
                            {
                            lv_primaryKey_11_0=(Token)match(input,66,FOLLOW_66_in_ruleMviewLog11060); 

                                    newLeafNode(lv_primaryKey_11_0, grammarAccess.getMviewLogAccess().getPrimaryKeyPrimaryKeyword_6_1_0_0());
                                

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(current, "primaryKey", lv_primaryKey_11_0, "primary");
                            	    

                            }


                            }

                            otherlv_12=(Token)match(input,63,FOLLOW_63_in_ruleMviewLog11085); 

                                	newLeafNode(otherlv_12, grammarAccess.getMviewLogAccess().getKeyKeyword_6_1_1());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5454:1: (otherlv_13= ',' )?
                            int alt183=2;
                            int LA183_0 = input.LA(1);

                            if ( (LA183_0==42) ) {
                                alt183=1;
                            }
                            switch (alt183) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5454:3: otherlv_13= ','
                                    {
                                    otherlv_13=(Token)match(input,42,FOLLOW_42_in_ruleMviewLog11098); 

                                        	newLeafNode(otherlv_13, grammarAccess.getMviewLogAccess().getCommaKeyword_6_1_2());
                                        

                                    }
                                    break;

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5458:5: ( ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )? )?
                    int alt186=2;
                    int LA186_0 = input.LA(1);

                    if ( (LA186_0==85) ) {
                        alt186=1;
                    }
                    switch (alt186) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5458:6: ( (lv_rowid_14_0= 'rowid' ) ) (otherlv_15= ',' )?
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5458:6: ( (lv_rowid_14_0= 'rowid' ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5459:1: (lv_rowid_14_0= 'rowid' )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5459:1: (lv_rowid_14_0= 'rowid' )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5460:3: lv_rowid_14_0= 'rowid'
                            {
                            lv_rowid_14_0=(Token)match(input,85,FOLLOW_85_in_ruleMviewLog11121); 

                                    newLeafNode(lv_rowid_14_0, grammarAccess.getMviewLogAccess().getRowidRowidKeyword_6_2_0_0());
                                

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(current, "rowid", lv_rowid_14_0, "rowid");
                            	    

                            }


                            }

                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5473:2: (otherlv_15= ',' )?
                            int alt185=2;
                            int LA185_0 = input.LA(1);

                            if ( (LA185_0==42) ) {
                                alt185=1;
                            }
                            switch (alt185) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5473:4: otherlv_15= ','
                                    {
                                    otherlv_15=(Token)match(input,42,FOLLOW_42_in_ruleMviewLog11147); 

                                        	newLeafNode(otherlv_15, grammarAccess.getMviewLogAccess().getCommaKeyword_6_2_1());
                                        

                                    }
                                    break;

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5477:5: ( ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )? )?
                    int alt188=2;
                    int LA188_0 = input.LA(1);

                    if ( (LA188_0==73) ) {
                        alt188=1;
                    }
                    switch (alt188) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5477:6: ( (lv_withSequence_16_0= 'sequence' ) ) (otherlv_17= ',' )?
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5477:6: ( (lv_withSequence_16_0= 'sequence' ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5478:1: (lv_withSequence_16_0= 'sequence' )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5478:1: (lv_withSequence_16_0= 'sequence' )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5479:3: lv_withSequence_16_0= 'sequence'
                            {
                            lv_withSequence_16_0=(Token)match(input,73,FOLLOW_73_in_ruleMviewLog11170); 

                                    newLeafNode(lv_withSequence_16_0, grammarAccess.getMviewLogAccess().getWithSequenceSequenceKeyword_6_3_0_0());
                                

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(current, "withSequence", lv_withSequence_16_0, "sequence");
                            	    

                            }


                            }

                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5492:2: (otherlv_17= ',' )?
                            int alt187=2;
                            int LA187_0 = input.LA(1);

                            if ( (LA187_0==42) ) {
                                alt187=1;
                            }
                            switch (alt187) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5492:4: otherlv_17= ','
                                    {
                                    otherlv_17=(Token)match(input,42,FOLLOW_42_in_ruleMviewLog11196); 

                                        	newLeafNode(otherlv_17, grammarAccess.getMviewLogAccess().getCommaKeyword_6_3_1());
                                        

                                    }
                                    break;

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5496:5: (otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )? )?
                    int alt191=2;
                    int LA191_0 = input.LA(1);

                    if ( (LA191_0==18) ) {
                        alt191=1;
                    }
                    switch (alt191) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5496:7: otherlv_18= '(' ( (lv_columns_19_0= ruleColumnRef ) )+ otherlv_20= ')' (otherlv_21= ',' )?
                            {
                            otherlv_18=(Token)match(input,18,FOLLOW_18_in_ruleMviewLog11213); 

                                	newLeafNode(otherlv_18, grammarAccess.getMviewLogAccess().getLeftParenthesisKeyword_6_4_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5500:1: ( (lv_columns_19_0= ruleColumnRef ) )+
                            int cnt189=0;
                            loop189:
                            do {
                                int alt189=2;
                                int LA189_0 = input.LA(1);

                                if ( (LA189_0==RULE_DBNAME||LA189_0==RULE_STRING) ) {
                                    alt189=1;
                                }


                                switch (alt189) {
                            	case 1 :
                            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5501:1: (lv_columns_19_0= ruleColumnRef )
                            	    {
                            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5501:1: (lv_columns_19_0= ruleColumnRef )
                            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5502:3: lv_columns_19_0= ruleColumnRef
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getMviewLogAccess().getColumnsColumnRefParserRuleCall_6_4_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleColumnRef_in_ruleMviewLog11234);
                            	    lv_columns_19_0=ruleColumnRef();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getMviewLogRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"columns",
                            	            		lv_columns_19_0, 
                            	            		"ColumnRef");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }
                            	    break;

                            	default :
                            	    if ( cnt189 >= 1 ) break loop189;
                                        EarlyExitException eee =
                                            new EarlyExitException(189, input);
                                        throw eee;
                                }
                                cnt189++;
                            } while (true);

                            otherlv_20=(Token)match(input,19,FOLLOW_19_in_ruleMviewLog11247); 

                                	newLeafNode(otherlv_20, grammarAccess.getMviewLogAccess().getRightParenthesisKeyword_6_4_2());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5522:1: (otherlv_21= ',' )?
                            int alt190=2;
                            int LA190_0 = input.LA(1);

                            if ( (LA190_0==42) ) {
                                alt190=1;
                            }
                            switch (alt190) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5522:3: otherlv_21= ','
                                    {
                                    otherlv_21=(Token)match(input,42,FOLLOW_42_in_ruleMviewLog11260); 

                                        	newLeafNode(otherlv_21, grammarAccess.getMviewLogAccess().getCommaKeyword_6_4_3());
                                        

                                    }
                                    break;

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5526:5: ( (lv_commitScn_22_0= 'commit_scn' ) )?
                    int alt192=2;
                    int LA192_0 = input.LA(1);

                    if ( (LA192_0==90) ) {
                        alt192=1;
                    }
                    switch (alt192) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5527:1: (lv_commitScn_22_0= 'commit_scn' )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5527:1: (lv_commitScn_22_0= 'commit_scn' )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5528:3: lv_commitScn_22_0= 'commit_scn'
                            {
                            lv_commitScn_22_0=(Token)match(input,90,FOLLOW_90_in_ruleMviewLog11282); 

                                    newLeafNode(lv_commitScn_22_0, grammarAccess.getMviewLogAccess().getCommitScnCommit_scnKeyword_6_5_0());
                                

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(current, "commitScn", lv_commitScn_22_0, "commit_scn");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5541:5: ( ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )? )?
            int alt199=2;
            int LA199_0 = input.LA(1);

            if ( (LA199_0==91) ) {
                alt199=1;
            }
            switch (alt199) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5541:6: ( (lv_purge_23_0= 'purge' ) ) (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )? (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )? (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )? (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5541:6: ( (lv_purge_23_0= 'purge' ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5542:1: (lv_purge_23_0= 'purge' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5542:1: (lv_purge_23_0= 'purge' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5543:3: lv_purge_23_0= 'purge'
                    {
                    lv_purge_23_0=(Token)match(input,91,FOLLOW_91_in_ruleMviewLog11317); 

                            newLeafNode(lv_purge_23_0, grammarAccess.getMviewLogAccess().getPurgePurgeKeyword_7_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMviewLogRule());
                    	        }
                           		setWithLastConsumed(current, "purge", lv_purge_23_0, "purge");
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5556:2: (otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )? )?
                    int alt195=2;
                    int LA195_0 = input.LA(1);

                    if ( (LA195_0==92) ) {
                        alt195=1;
                    }
                    switch (alt195) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5556:4: otherlv_24= 'immediate' ( (lv_synchronous_25_0= ruleSynchronousType ) )?
                            {
                            otherlv_24=(Token)match(input,92,FOLLOW_92_in_ruleMviewLog11343); 

                                	newLeafNode(otherlv_24, grammarAccess.getMviewLogAccess().getImmediateKeyword_7_1_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5560:1: ( (lv_synchronous_25_0= ruleSynchronousType ) )?
                            int alt194=2;
                            int LA194_0 = input.LA(1);

                            if ( ((LA194_0>=212 && LA194_0<=214)) ) {
                                alt194=1;
                            }
                            switch (alt194) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5561:1: (lv_synchronous_25_0= ruleSynchronousType )
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5561:1: (lv_synchronous_25_0= ruleSynchronousType )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5562:3: lv_synchronous_25_0= ruleSynchronousType
                                    {
                                     
                                    	        newCompositeNode(grammarAccess.getMviewLogAccess().getSynchronousSynchronousTypeEnumRuleCall_7_1_1_0()); 
                                    	    
                                    pushFollow(FOLLOW_ruleSynchronousType_in_ruleMviewLog11364);
                                    lv_synchronous_25_0=ruleSynchronousType();

                                    state._fsp--;


                                    	        if (current==null) {
                                    	            current = createModelElementForParent(grammarAccess.getMviewLogRule());
                                    	        }
                                           		set(
                                           			current, 
                                           			"synchronous",
                                            		lv_synchronous_25_0, 
                                            		"SynchronousType");
                                    	        afterParserOrEnumRuleCall();
                                    	    

                                    }


                                    }
                                    break;

                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5578:5: (otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) ) )?
                    int alt196=2;
                    int LA196_0 = input.LA(1);

                    if ( (LA196_0==74) ) {
                        alt196=1;
                    }
                    switch (alt196) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5578:7: otherlv_26= 'start' otherlv_27= 'with' ( (lv_startWith_28_0= RULE_STRING ) )
                            {
                            otherlv_26=(Token)match(input,74,FOLLOW_74_in_ruleMviewLog11380); 

                                	newLeafNode(otherlv_26, grammarAccess.getMviewLogAccess().getStartKeyword_7_2_0());
                                
                            otherlv_27=(Token)match(input,75,FOLLOW_75_in_ruleMviewLog11392); 

                                	newLeafNode(otherlv_27, grammarAccess.getMviewLogAccess().getWithKeyword_7_2_1());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5586:1: ( (lv_startWith_28_0= RULE_STRING ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5587:1: (lv_startWith_28_0= RULE_STRING )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5587:1: (lv_startWith_28_0= RULE_STRING )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5588:3: lv_startWith_28_0= RULE_STRING
                            {
                            lv_startWith_28_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMviewLog11409); 

                            			newLeafNode(lv_startWith_28_0, grammarAccess.getMviewLogAccess().getStartWithSTRINGTerminalRuleCall_7_2_2_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"startWith",
                                    		lv_startWith_28_0, 
                                    		"STRING");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5604:4: (otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) ) )?
                    int alt197=2;
                    int LA197_0 = input.LA(1);

                    if ( (LA197_0==93) ) {
                        alt197=1;
                    }
                    switch (alt197) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5604:6: otherlv_29= 'next' ( (lv_next_30_0= RULE_STRING ) )
                            {
                            otherlv_29=(Token)match(input,93,FOLLOW_93_in_ruleMviewLog11429); 

                                	newLeafNode(otherlv_29, grammarAccess.getMviewLogAccess().getNextKeyword_7_3_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5608:1: ( (lv_next_30_0= RULE_STRING ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5609:1: (lv_next_30_0= RULE_STRING )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5609:1: (lv_next_30_0= RULE_STRING )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5610:3: lv_next_30_0= RULE_STRING
                            {
                            lv_next_30_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMviewLog11446); 

                            			newLeafNode(lv_next_30_0, grammarAccess.getMviewLogAccess().getNextSTRINGTerminalRuleCall_7_3_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"next",
                                    		lv_next_30_0, 
                                    		"STRING");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5626:4: (otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) ) )?
                    int alt198=2;
                    int LA198_0 = input.LA(1);

                    if ( (LA198_0==94) ) {
                        alt198=1;
                    }
                    switch (alt198) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5626:6: otherlv_31= 'repeat' otherlv_32= 'interval' ( (lv_repeatInterval_33_0= RULE_INT ) )
                            {
                            otherlv_31=(Token)match(input,94,FOLLOW_94_in_ruleMviewLog11466); 

                                	newLeafNode(otherlv_31, grammarAccess.getMviewLogAccess().getRepeatKeyword_7_4_0());
                                
                            otherlv_32=(Token)match(input,35,FOLLOW_35_in_ruleMviewLog11478); 

                                	newLeafNode(otherlv_32, grammarAccess.getMviewLogAccess().getIntervalKeyword_7_4_1());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5634:1: ( (lv_repeatInterval_33_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5635:1: (lv_repeatInterval_33_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5635:1: (lv_repeatInterval_33_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5636:3: lv_repeatInterval_33_0= RULE_INT
                            {
                            lv_repeatInterval_33_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMviewLog11495); 

                            			newLeafNode(lv_repeatInterval_33_0, grammarAccess.getMviewLogAccess().getRepeatIntervalINTTerminalRuleCall_7_4_2_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getMviewLogRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"repeatInterval",
                                    		lv_repeatInterval_33_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMviewLog"


    // $ANTLR start "entryRuleComment"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5660:1: entryRuleComment returns [EObject current=null] : iv_ruleComment= ruleComment EOF ;
    public final EObject entryRuleComment() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleComment = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5661:2: (iv_ruleComment= ruleComment EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5662:2: iv_ruleComment= ruleComment EOF
            {
             newCompositeNode(grammarAccess.getCommentRule()); 
            pushFollow(FOLLOW_ruleComment_in_entryRuleComment11540);
            iv_ruleComment=ruleComment();

            state._fsp--;

             current =iv_ruleComment; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComment11550); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleComment"


    // $ANTLR start "ruleComment"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5669:1: ruleComment returns [EObject current=null] : (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( (lv_table_name_3_0= RULE_DBNAME ) ) (otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) ) )? otherlv_6= 'is' ( (lv_comment_7_0= RULE_STRING ) ) otherlv_8= ';' ) ;
    public final EObject ruleComment() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_table_name_3_0=null;
        Token otherlv_4=null;
        Token lv_column_name_5_0=null;
        Token otherlv_6=null;
        Token lv_comment_7_0=null;
        Token otherlv_8=null;
        Enumerator lv_comment_object_2_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5672:28: ( (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( (lv_table_name_3_0= RULE_DBNAME ) ) (otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) ) )? otherlv_6= 'is' ( (lv_comment_7_0= RULE_STRING ) ) otherlv_8= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5673:1: (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( (lv_table_name_3_0= RULE_DBNAME ) ) (otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) ) )? otherlv_6= 'is' ( (lv_comment_7_0= RULE_STRING ) ) otherlv_8= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5673:1: (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( (lv_table_name_3_0= RULE_DBNAME ) ) (otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) ) )? otherlv_6= 'is' ( (lv_comment_7_0= RULE_STRING ) ) otherlv_8= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5673:3: otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( (lv_table_name_3_0= RULE_DBNAME ) ) (otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) ) )? otherlv_6= 'is' ( (lv_comment_7_0= RULE_STRING ) ) otherlv_8= ';'
            {
            otherlv_0=(Token)match(input,95,FOLLOW_95_in_ruleComment11587); 

                	newLeafNode(otherlv_0, grammarAccess.getCommentAccess().getCommentKeyword_0());
                
            otherlv_1=(Token)match(input,20,FOLLOW_20_in_ruleComment11599); 

                	newLeafNode(otherlv_1, grammarAccess.getCommentAccess().getOnKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5681:1: ( (lv_comment_object_2_0= ruleCommentObjectType ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5682:1: (lv_comment_object_2_0= ruleCommentObjectType )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5682:1: (lv_comment_object_2_0= ruleCommentObjectType )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5683:3: lv_comment_object_2_0= ruleCommentObjectType
            {
             
            	        newCompositeNode(grammarAccess.getCommentAccess().getComment_objectCommentObjectTypeEnumRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleCommentObjectType_in_ruleComment11620);
            lv_comment_object_2_0=ruleCommentObjectType();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getCommentRule());
            	        }
                   		set(
                   			current, 
                   			"comment_object",
                    		lv_comment_object_2_0, 
                    		"CommentObjectType");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5699:2: ( (lv_table_name_3_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5700:1: (lv_table_name_3_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5700:1: (lv_table_name_3_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5701:3: lv_table_name_3_0= RULE_DBNAME
            {
            lv_table_name_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleComment11637); 

            			newLeafNode(lv_table_name_3_0, grammarAccess.getCommentAccess().getTable_nameDBNAMETerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getCommentRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"table_name",
                    		lv_table_name_3_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5717:2: (otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) ) )?
            int alt200=2;
            int LA200_0 = input.LA(1);

            if ( (LA200_0==96) ) {
                alt200=1;
            }
            switch (alt200) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5717:4: otherlv_4= '.' ( (lv_column_name_5_0= RULE_DBNAME ) )
                    {
                    otherlv_4=(Token)match(input,96,FOLLOW_96_in_ruleComment11655); 

                        	newLeafNode(otherlv_4, grammarAccess.getCommentAccess().getFullStopKeyword_4_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5721:1: ( (lv_column_name_5_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5722:1: (lv_column_name_5_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5722:1: (lv_column_name_5_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5723:3: lv_column_name_5_0= RULE_DBNAME
                    {
                    lv_column_name_5_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleComment11672); 

                    			newLeafNode(lv_column_name_5_0, grammarAccess.getCommentAccess().getColumn_nameDBNAMETerminalRuleCall_4_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCommentRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"column_name",
                            		lv_column_name_5_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_6=(Token)match(input,97,FOLLOW_97_in_ruleComment11691); 

                	newLeafNode(otherlv_6, grammarAccess.getCommentAccess().getIsKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5743:1: ( (lv_comment_7_0= RULE_STRING ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5744:1: (lv_comment_7_0= RULE_STRING )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5744:1: (lv_comment_7_0= RULE_STRING )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5745:3: lv_comment_7_0= RULE_STRING
            {
            lv_comment_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleComment11708); 

            			newLeafNode(lv_comment_7_0, grammarAccess.getCommentAccess().getCommentSTRINGTerminalRuleCall_6_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getCommentRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"comment",
                    		lv_comment_7_0, 
                    		"STRING");
            	    

            }


            }

            otherlv_8=(Token)match(input,31,FOLLOW_31_in_ruleComment11725); 

                	newLeafNode(otherlv_8, grammarAccess.getCommentAccess().getSemicolonKeyword_7());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleComment"


    // $ANTLR start "entryRuleInlineComment"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5773:1: entryRuleInlineComment returns [EObject current=null] : iv_ruleInlineComment= ruleInlineComment EOF ;
    public final EObject entryRuleInlineComment() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleInlineComment = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5774:2: (iv_ruleInlineComment= ruleInlineComment EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5775:2: iv_ruleInlineComment= ruleInlineComment EOF
            {
             newCompositeNode(grammarAccess.getInlineCommentRule()); 
            pushFollow(FOLLOW_ruleInlineComment_in_entryRuleInlineComment11761);
            iv_ruleInlineComment=ruleInlineComment();

            state._fsp--;

             current =iv_ruleInlineComment; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleInlineComment11771); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleInlineComment"


    // $ANTLR start "ruleInlineComment"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5782:1: ruleInlineComment returns [EObject current=null] : (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( ( (lv_column_name_3_0= RULE_DBNAME ) ) | ( (lv_column_name_string_4_0= RULE_STRING ) ) )? otherlv_5= 'is' ( (lv_comment_6_0= RULE_STRING ) ) otherlv_7= ';' ) ;
    public final EObject ruleInlineComment() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_column_name_3_0=null;
        Token lv_column_name_string_4_0=null;
        Token otherlv_5=null;
        Token lv_comment_6_0=null;
        Token otherlv_7=null;
        Enumerator lv_comment_object_2_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5785:28: ( (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( ( (lv_column_name_3_0= RULE_DBNAME ) ) | ( (lv_column_name_string_4_0= RULE_STRING ) ) )? otherlv_5= 'is' ( (lv_comment_6_0= RULE_STRING ) ) otherlv_7= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5786:1: (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( ( (lv_column_name_3_0= RULE_DBNAME ) ) | ( (lv_column_name_string_4_0= RULE_STRING ) ) )? otherlv_5= 'is' ( (lv_comment_6_0= RULE_STRING ) ) otherlv_7= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5786:1: (otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( ( (lv_column_name_3_0= RULE_DBNAME ) ) | ( (lv_column_name_string_4_0= RULE_STRING ) ) )? otherlv_5= 'is' ( (lv_comment_6_0= RULE_STRING ) ) otherlv_7= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5786:3: otherlv_0= 'comment' otherlv_1= 'on' ( (lv_comment_object_2_0= ruleCommentObjectType ) ) ( ( (lv_column_name_3_0= RULE_DBNAME ) ) | ( (lv_column_name_string_4_0= RULE_STRING ) ) )? otherlv_5= 'is' ( (lv_comment_6_0= RULE_STRING ) ) otherlv_7= ';'
            {
            otherlv_0=(Token)match(input,95,FOLLOW_95_in_ruleInlineComment11808); 

                	newLeafNode(otherlv_0, grammarAccess.getInlineCommentAccess().getCommentKeyword_0());
                
            otherlv_1=(Token)match(input,20,FOLLOW_20_in_ruleInlineComment11820); 

                	newLeafNode(otherlv_1, grammarAccess.getInlineCommentAccess().getOnKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5794:1: ( (lv_comment_object_2_0= ruleCommentObjectType ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5795:1: (lv_comment_object_2_0= ruleCommentObjectType )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5795:1: (lv_comment_object_2_0= ruleCommentObjectType )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5796:3: lv_comment_object_2_0= ruleCommentObjectType
            {
             
            	        newCompositeNode(grammarAccess.getInlineCommentAccess().getComment_objectCommentObjectTypeEnumRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleCommentObjectType_in_ruleInlineComment11841);
            lv_comment_object_2_0=ruleCommentObjectType();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getInlineCommentRule());
            	        }
                   		set(
                   			current, 
                   			"comment_object",
                    		lv_comment_object_2_0, 
                    		"CommentObjectType");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5812:2: ( ( (lv_column_name_3_0= RULE_DBNAME ) ) | ( (lv_column_name_string_4_0= RULE_STRING ) ) )?
            int alt201=3;
            int LA201_0 = input.LA(1);

            if ( (LA201_0==RULE_DBNAME) ) {
                alt201=1;
            }
            else if ( (LA201_0==RULE_STRING) ) {
                alt201=2;
            }
            switch (alt201) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5812:3: ( (lv_column_name_3_0= RULE_DBNAME ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5812:3: ( (lv_column_name_3_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5813:1: (lv_column_name_3_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5813:1: (lv_column_name_3_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5814:3: lv_column_name_3_0= RULE_DBNAME
                    {
                    lv_column_name_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleInlineComment11859); 

                    			newLeafNode(lv_column_name_3_0, grammarAccess.getInlineCommentAccess().getColumn_nameDBNAMETerminalRuleCall_3_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getInlineCommentRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"column_name",
                            		lv_column_name_3_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5831:6: ( (lv_column_name_string_4_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5831:6: ( (lv_column_name_string_4_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5832:1: (lv_column_name_string_4_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5832:1: (lv_column_name_string_4_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5833:3: lv_column_name_string_4_0= RULE_STRING
                    {
                    lv_column_name_string_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleInlineComment11887); 

                    			newLeafNode(lv_column_name_string_4_0, grammarAccess.getInlineCommentAccess().getColumn_name_stringSTRINGTerminalRuleCall_3_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getInlineCommentRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"column_name_string",
                            		lv_column_name_string_4_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_5=(Token)match(input,97,FOLLOW_97_in_ruleInlineComment11906); 

                	newLeafNode(otherlv_5, grammarAccess.getInlineCommentAccess().getIsKeyword_4());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5853:1: ( (lv_comment_6_0= RULE_STRING ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5854:1: (lv_comment_6_0= RULE_STRING )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5854:1: (lv_comment_6_0= RULE_STRING )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5855:3: lv_comment_6_0= RULE_STRING
            {
            lv_comment_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleInlineComment11923); 

            			newLeafNode(lv_comment_6_0, grammarAccess.getInlineCommentAccess().getCommentSTRINGTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getInlineCommentRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"comment",
                    		lv_comment_6_0, 
                    		"STRING");
            	    

            }


            }

            otherlv_7=(Token)match(input,31,FOLLOW_31_in_ruleInlineComment11940); 

                	newLeafNode(otherlv_7, grammarAccess.getInlineCommentAccess().getSemicolonKeyword_6());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleInlineComment"


    // $ANTLR start "entryRuleDBNAME_WITH_SCHEMA"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5883:1: entryRuleDBNAME_WITH_SCHEMA returns [String current=null] : iv_ruleDBNAME_WITH_SCHEMA= ruleDBNAME_WITH_SCHEMA EOF ;
    public final String entryRuleDBNAME_WITH_SCHEMA() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleDBNAME_WITH_SCHEMA = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5884:2: (iv_ruleDBNAME_WITH_SCHEMA= ruleDBNAME_WITH_SCHEMA EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5885:2: iv_ruleDBNAME_WITH_SCHEMA= ruleDBNAME_WITH_SCHEMA EOF
            {
             newCompositeNode(grammarAccess.getDBNAME_WITH_SCHEMARule()); 
            pushFollow(FOLLOW_ruleDBNAME_WITH_SCHEMA_in_entryRuleDBNAME_WITH_SCHEMA11977);
            iv_ruleDBNAME_WITH_SCHEMA=ruleDBNAME_WITH_SCHEMA();

            state._fsp--;

             current =iv_ruleDBNAME_WITH_SCHEMA.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDBNAME_WITH_SCHEMA11988); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDBNAME_WITH_SCHEMA"


    // $ANTLR start "ruleDBNAME_WITH_SCHEMA"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5892:1: ruleDBNAME_WITH_SCHEMA returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_DBNAME_0= RULE_DBNAME (kw= '.' this_DBNAME_2= RULE_DBNAME )? ) ;
    public final AntlrDatatypeRuleToken ruleDBNAME_WITH_SCHEMA() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_DBNAME_0=null;
        Token kw=null;
        Token this_DBNAME_2=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5895:28: ( (this_DBNAME_0= RULE_DBNAME (kw= '.' this_DBNAME_2= RULE_DBNAME )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5896:1: (this_DBNAME_0= RULE_DBNAME (kw= '.' this_DBNAME_2= RULE_DBNAME )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5896:1: (this_DBNAME_0= RULE_DBNAME (kw= '.' this_DBNAME_2= RULE_DBNAME )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5896:6: this_DBNAME_0= RULE_DBNAME (kw= '.' this_DBNAME_2= RULE_DBNAME )?
            {
            this_DBNAME_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleDBNAME_WITH_SCHEMA12028); 

            		current.merge(this_DBNAME_0);
                
             
                newLeafNode(this_DBNAME_0, grammarAccess.getDBNAME_WITH_SCHEMAAccess().getDBNAMETerminalRuleCall_0()); 
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5903:1: (kw= '.' this_DBNAME_2= RULE_DBNAME )?
            int alt202=2;
            int LA202_0 = input.LA(1);

            if ( (LA202_0==96) ) {
                alt202=1;
            }
            switch (alt202) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5904:2: kw= '.' this_DBNAME_2= RULE_DBNAME
                    {
                    kw=(Token)match(input,96,FOLLOW_96_in_ruleDBNAME_WITH_SCHEMA12047); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getDBNAME_WITH_SCHEMAAccess().getFullStopKeyword_1_0()); 
                        
                    this_DBNAME_2=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleDBNAME_WITH_SCHEMA12062); 

                    		current.merge(this_DBNAME_2);
                        
                     
                        newLeafNode(this_DBNAME_2, grammarAccess.getDBNAME_WITH_SCHEMAAccess().getDBNAMETerminalRuleCall_1_1()); 
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDBNAME_WITH_SCHEMA"


    // $ANTLR start "entryRuleNULLABLE_INT"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5924:1: entryRuleNULLABLE_INT returns [String current=null] : iv_ruleNULLABLE_INT= ruleNULLABLE_INT EOF ;
    public final String entryRuleNULLABLE_INT() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleNULLABLE_INT = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5925:2: (iv_ruleNULLABLE_INT= ruleNULLABLE_INT EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5926:2: iv_ruleNULLABLE_INT= ruleNULLABLE_INT EOF
            {
             newCompositeNode(grammarAccess.getNULLABLE_INTRule()); 
            pushFollow(FOLLOW_ruleNULLABLE_INT_in_entryRuleNULLABLE_INT12110);
            iv_ruleNULLABLE_INT=ruleNULLABLE_INT();

            state._fsp--;

             current =iv_ruleNULLABLE_INT.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNULLABLE_INT12121); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNULLABLE_INT"


    // $ANTLR start "ruleNULLABLE_INT"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5933:1: ruleNULLABLE_INT returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_INT_0= RULE_INT ;
    public final AntlrDatatypeRuleToken ruleNULLABLE_INT() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_INT_0=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5936:28: (this_INT_0= RULE_INT )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5937:5: this_INT_0= RULE_INT
            {
            this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNULLABLE_INT12160); 

            		current.merge(this_INT_0);
                
             
                newLeafNode(this_INT_0, grammarAccess.getNULLABLE_INTAccess().getINTTerminalRuleCall()); 
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNULLABLE_INT"


    // $ANTLR start "entryRuleSIGNED_BIGINT"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5952:1: entryRuleSIGNED_BIGINT returns [String current=null] : iv_ruleSIGNED_BIGINT= ruleSIGNED_BIGINT EOF ;
    public final String entryRuleSIGNED_BIGINT() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleSIGNED_BIGINT = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5953:2: (iv_ruleSIGNED_BIGINT= ruleSIGNED_BIGINT EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5954:2: iv_ruleSIGNED_BIGINT= ruleSIGNED_BIGINT EOF
            {
             newCompositeNode(grammarAccess.getSIGNED_BIGINTRule()); 
            pushFollow(FOLLOW_ruleSIGNED_BIGINT_in_entryRuleSIGNED_BIGINT12205);
            iv_ruleSIGNED_BIGINT=ruleSIGNED_BIGINT();

            state._fsp--;

             current =iv_ruleSIGNED_BIGINT.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSIGNED_BIGINT12216); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSIGNED_BIGINT"


    // $ANTLR start "ruleSIGNED_BIGINT"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5961:1: ruleSIGNED_BIGINT returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ;
    public final AntlrDatatypeRuleToken ruleSIGNED_BIGINT() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;
        Token this_INT_1=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5964:28: ( ( (kw= '-' )? this_INT_1= RULE_INT ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5965:1: ( (kw= '-' )? this_INT_1= RULE_INT )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5965:1: ( (kw= '-' )? this_INT_1= RULE_INT )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5965:2: (kw= '-' )? this_INT_1= RULE_INT
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5965:2: (kw= '-' )?
            int alt203=2;
            int LA203_0 = input.LA(1);

            if ( (LA203_0==98) ) {
                alt203=1;
            }
            switch (alt203) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5966:2: kw= '-'
                    {
                    kw=(Token)match(input,98,FOLLOW_98_in_ruleSIGNED_BIGINT12255); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getSIGNED_BIGINTAccess().getHyphenMinusKeyword_0()); 
                        

                    }
                    break;

            }

            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSIGNED_BIGINT12272); 

            		current.merge(this_INT_1);
                
             
                newLeafNode(this_INT_1, grammarAccess.getSIGNED_BIGINTAccess().getINTTerminalRuleCall_1()); 
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSIGNED_BIGINT"


    // $ANTLR start "entryRuleBIGINT"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5986:1: entryRuleBIGINT returns [String current=null] : iv_ruleBIGINT= ruleBIGINT EOF ;
    public final String entryRuleBIGINT() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleBIGINT = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5987:2: (iv_ruleBIGINT= ruleBIGINT EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5988:2: iv_ruleBIGINT= ruleBIGINT EOF
            {
             newCompositeNode(grammarAccess.getBIGINTRule()); 
            pushFollow(FOLLOW_ruleBIGINT_in_entryRuleBIGINT12318);
            iv_ruleBIGINT=ruleBIGINT();

            state._fsp--;

             current =iv_ruleBIGINT.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBIGINT12329); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleBIGINT"


    // $ANTLR start "ruleBIGINT"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5995:1: ruleBIGINT returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_INT_0= RULE_INT ;
    public final AntlrDatatypeRuleToken ruleBIGINT() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_INT_0=null;

         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5998:28: (this_INT_0= RULE_INT )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:5999:5: this_INT_0= RULE_INT
            {
            this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleBIGINT12368); 

            		current.merge(this_INT_0);
                
             
                newLeafNode(this_INT_0, grammarAccess.getBIGINTAccess().getINTTerminalRuleCall()); 
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleBIGINT"


    // $ANTLR start "entryRuleDomainColumn"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6014:1: entryRuleDomainColumn returns [EObject current=null] : iv_ruleDomainColumn= ruleDomainColumn EOF ;
    public final EObject entryRuleDomainColumn() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDomainColumn = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6015:2: (iv_ruleDomainColumn= ruleDomainColumn EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6016:2: iv_ruleDomainColumn= ruleDomainColumn EOF
            {
             newCompositeNode(grammarAccess.getDomainColumnRule()); 
            pushFollow(FOLLOW_ruleDomainColumn_in_entryRuleDomainColumn12412);
            iv_ruleDomainColumn=ruleDomainColumn();

            state._fsp--;

             current =iv_ruleDomainColumn; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDomainColumn12422); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDomainColumn"


    // $ANTLR start "ruleDomainColumn"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6023:1: ruleDomainColumn returns [EObject current=null] : (otherlv_0= 'add' otherlv_1= 'column' ( (lv_append_last_2_0= 'append_last' ) )? otherlv_3= 'column-name' otherlv_4= '(' ( (lv_columnNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= '(' ( (lv_column_8_0= ruleColumn ) ) otherlv_9= ')' (otherlv_10= ',' )? ) ;
    public final EObject ruleDomainColumn() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_append_last_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        EObject lv_columnNameRules_5_0 = null;

        EObject lv_column_8_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6026:28: ( (otherlv_0= 'add' otherlv_1= 'column' ( (lv_append_last_2_0= 'append_last' ) )? otherlv_3= 'column-name' otherlv_4= '(' ( (lv_columnNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= '(' ( (lv_column_8_0= ruleColumn ) ) otherlv_9= ')' (otherlv_10= ',' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6027:1: (otherlv_0= 'add' otherlv_1= 'column' ( (lv_append_last_2_0= 'append_last' ) )? otherlv_3= 'column-name' otherlv_4= '(' ( (lv_columnNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= '(' ( (lv_column_8_0= ruleColumn ) ) otherlv_9= ')' (otherlv_10= ',' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6027:1: (otherlv_0= 'add' otherlv_1= 'column' ( (lv_append_last_2_0= 'append_last' ) )? otherlv_3= 'column-name' otherlv_4= '(' ( (lv_columnNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= '(' ( (lv_column_8_0= ruleColumn ) ) otherlv_9= ')' (otherlv_10= ',' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6027:3: otherlv_0= 'add' otherlv_1= 'column' ( (lv_append_last_2_0= 'append_last' ) )? otherlv_3= 'column-name' otherlv_4= '(' ( (lv_columnNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= '(' ( (lv_column_8_0= ruleColumn ) ) otherlv_9= ')' (otherlv_10= ',' )?
            {
            otherlv_0=(Token)match(input,99,FOLLOW_99_in_ruleDomainColumn12459); 

                	newLeafNode(otherlv_0, grammarAccess.getDomainColumnAccess().getAddKeyword_0());
                
            otherlv_1=(Token)match(input,100,FOLLOW_100_in_ruleDomainColumn12471); 

                	newLeafNode(otherlv_1, grammarAccess.getDomainColumnAccess().getColumnKeyword_1());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6035:1: ( (lv_append_last_2_0= 'append_last' ) )?
            int alt204=2;
            int LA204_0 = input.LA(1);

            if ( (LA204_0==101) ) {
                alt204=1;
            }
            switch (alt204) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6036:1: (lv_append_last_2_0= 'append_last' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6036:1: (lv_append_last_2_0= 'append_last' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6037:3: lv_append_last_2_0= 'append_last'
                    {
                    lv_append_last_2_0=(Token)match(input,101,FOLLOW_101_in_ruleDomainColumn12489); 

                            newLeafNode(lv_append_last_2_0, grammarAccess.getDomainColumnAccess().getAppend_lastAppend_lastKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDomainColumnRule());
                    	        }
                           		setWithLastConsumed(current, "append_last", true, "append_last");
                    	    

                    }


                    }
                    break;

            }

            otherlv_3=(Token)match(input,102,FOLLOW_102_in_ruleDomainColumn12515); 

                	newLeafNode(otherlv_3, grammarAccess.getDomainColumnAccess().getColumnNameKeyword_3());
                
            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleDomainColumn12527); 

                	newLeafNode(otherlv_4, grammarAccess.getDomainColumnAccess().getLeftParenthesisKeyword_4());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6058:1: ( (lv_columnNameRules_5_0= ruleGenNameRule ) )*
            loop205:
            do {
                int alt205=2;
                int LA205_0 = input.LA(1);

                if ( (LA205_0==RULE_STRING||LA205_0==102||(LA205_0>=104 && LA205_0<=105)||(LA205_0>=215 && LA205_0<=217)) ) {
                    alt205=1;
                }


                switch (alt205) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6059:1: (lv_columnNameRules_5_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6059:1: (lv_columnNameRules_5_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6060:3: lv_columnNameRules_5_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getDomainColumnAccess().getColumnNameRulesGenNameRuleParserRuleCall_5_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleDomainColumn12548);
            	    lv_columnNameRules_5_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getDomainColumnRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"columnNameRules",
            	            		lv_columnNameRules_5_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop205;
                }
            } while (true);

            otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleDomainColumn12561); 

                	newLeafNode(otherlv_6, grammarAccess.getDomainColumnAccess().getRightParenthesisKeyword_6());
                
            otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleDomainColumn12573); 

                	newLeafNode(otherlv_7, grammarAccess.getDomainColumnAccess().getLeftParenthesisKeyword_7());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6084:1: ( (lv_column_8_0= ruleColumn ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6085:1: (lv_column_8_0= ruleColumn )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6085:1: (lv_column_8_0= ruleColumn )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6086:3: lv_column_8_0= ruleColumn
            {
             
            	        newCompositeNode(grammarAccess.getDomainColumnAccess().getColumnColumnParserRuleCall_8_0()); 
            	    
            pushFollow(FOLLOW_ruleColumn_in_ruleDomainColumn12594);
            lv_column_8_0=ruleColumn();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getDomainColumnRule());
            	        }
                   		set(
                   			current, 
                   			"column",
                    		lv_column_8_0, 
                    		"Column");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleDomainColumn12606); 

                	newLeafNode(otherlv_9, grammarAccess.getDomainColumnAccess().getRightParenthesisKeyword_9());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6106:1: (otherlv_10= ',' )?
            int alt206=2;
            int LA206_0 = input.LA(1);

            if ( (LA206_0==42) ) {
                alt206=1;
            }
            switch (alt206) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6106:3: otherlv_10= ','
                    {
                    otherlv_10=(Token)match(input,42,FOLLOW_42_in_ruleDomainColumn12619); 

                        	newLeafNode(otherlv_10, grammarAccess.getDomainColumnAccess().getCommaKeyword_10());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDomainColumn"


    // $ANTLR start "entryRuleHistoryTable"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6118:1: entryRuleHistoryTable returns [EObject current=null] : iv_ruleHistoryTable= ruleHistoryTable EOF ;
    public final EObject entryRuleHistoryTable() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleHistoryTable = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6119:2: (iv_ruleHistoryTable= ruleHistoryTable EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6120:2: iv_ruleHistoryTable= ruleHistoryTable EOF
            {
             newCompositeNode(grammarAccess.getHistoryTableRule()); 
            pushFollow(FOLLOW_ruleHistoryTable_in_entryRuleHistoryTable12657);
            iv_ruleHistoryTable=ruleHistoryTable();

            state._fsp--;

             current =iv_ruleHistoryTable; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleHistoryTable12667); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleHistoryTable"


    // $ANTLR start "ruleHistoryTable"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6127:1: ruleHistoryTable returns [EObject current=null] : (otherlv_0= 'add' otherlv_1= 'history-table' otherlv_2= '(' otherlv_3= 'table-name' otherlv_4= '(' ( (lv_tableNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= 'alias-name' otherlv_8= '(' ( (lv_aliasNameRules_9_0= ruleGenNameRule ) )* otherlv_10= ')' otherlv_11= 'primary-key-mode' ( (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' ) | otherlv_16= 'remove' ) (otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) ) )? otherlv_19= ')' ) ;
    public final EObject ruleHistoryTable() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token otherlv_10=null;
        Token otherlv_11=null;
        Token otherlv_12=null;
        Token otherlv_13=null;
        Token lv_appendToPkDomain_14_0=null;
        Token otherlv_15=null;
        Token otherlv_16=null;
        Token otherlv_17=null;
        Token lv_domain_18_0=null;
        Token otherlv_19=null;
        EObject lv_tableNameRules_5_0 = null;

        EObject lv_aliasNameRules_9_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6130:28: ( (otherlv_0= 'add' otherlv_1= 'history-table' otherlv_2= '(' otherlv_3= 'table-name' otherlv_4= '(' ( (lv_tableNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= 'alias-name' otherlv_8= '(' ( (lv_aliasNameRules_9_0= ruleGenNameRule ) )* otherlv_10= ')' otherlv_11= 'primary-key-mode' ( (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' ) | otherlv_16= 'remove' ) (otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) ) )? otherlv_19= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6131:1: (otherlv_0= 'add' otherlv_1= 'history-table' otherlv_2= '(' otherlv_3= 'table-name' otherlv_4= '(' ( (lv_tableNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= 'alias-name' otherlv_8= '(' ( (lv_aliasNameRules_9_0= ruleGenNameRule ) )* otherlv_10= ')' otherlv_11= 'primary-key-mode' ( (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' ) | otherlv_16= 'remove' ) (otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) ) )? otherlv_19= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6131:1: (otherlv_0= 'add' otherlv_1= 'history-table' otherlv_2= '(' otherlv_3= 'table-name' otherlv_4= '(' ( (lv_tableNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= 'alias-name' otherlv_8= '(' ( (lv_aliasNameRules_9_0= ruleGenNameRule ) )* otherlv_10= ')' otherlv_11= 'primary-key-mode' ( (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' ) | otherlv_16= 'remove' ) (otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) ) )? otherlv_19= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6131:3: otherlv_0= 'add' otherlv_1= 'history-table' otherlv_2= '(' otherlv_3= 'table-name' otherlv_4= '(' ( (lv_tableNameRules_5_0= ruleGenNameRule ) )* otherlv_6= ')' otherlv_7= 'alias-name' otherlv_8= '(' ( (lv_aliasNameRules_9_0= ruleGenNameRule ) )* otherlv_10= ')' otherlv_11= 'primary-key-mode' ( (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' ) | otherlv_16= 'remove' ) (otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) ) )? otherlv_19= ')'
            {
            otherlv_0=(Token)match(input,99,FOLLOW_99_in_ruleHistoryTable12704); 

                	newLeafNode(otherlv_0, grammarAccess.getHistoryTableAccess().getAddKeyword_0());
                
            otherlv_1=(Token)match(input,103,FOLLOW_103_in_ruleHistoryTable12716); 

                	newLeafNode(otherlv_1, grammarAccess.getHistoryTableAccess().getHistoryTableKeyword_1());
                
            otherlv_2=(Token)match(input,18,FOLLOW_18_in_ruleHistoryTable12728); 

                	newLeafNode(otherlv_2, grammarAccess.getHistoryTableAccess().getLeftParenthesisKeyword_2());
                
            otherlv_3=(Token)match(input,104,FOLLOW_104_in_ruleHistoryTable12740); 

                	newLeafNode(otherlv_3, grammarAccess.getHistoryTableAccess().getTableNameKeyword_3());
                
            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleHistoryTable12752); 

                	newLeafNode(otherlv_4, grammarAccess.getHistoryTableAccess().getLeftParenthesisKeyword_4());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6151:1: ( (lv_tableNameRules_5_0= ruleGenNameRule ) )*
            loop207:
            do {
                int alt207=2;
                int LA207_0 = input.LA(1);

                if ( (LA207_0==RULE_STRING||LA207_0==102||(LA207_0>=104 && LA207_0<=105)||(LA207_0>=215 && LA207_0<=217)) ) {
                    alt207=1;
                }


                switch (alt207) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6152:1: (lv_tableNameRules_5_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6152:1: (lv_tableNameRules_5_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6153:3: lv_tableNameRules_5_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getHistoryTableAccess().getTableNameRulesGenNameRuleParserRuleCall_5_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleHistoryTable12773);
            	    lv_tableNameRules_5_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getHistoryTableRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"tableNameRules",
            	            		lv_tableNameRules_5_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop207;
                }
            } while (true);

            otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleHistoryTable12786); 

                	newLeafNode(otherlv_6, grammarAccess.getHistoryTableAccess().getRightParenthesisKeyword_6());
                
            otherlv_7=(Token)match(input,105,FOLLOW_105_in_ruleHistoryTable12798); 

                	newLeafNode(otherlv_7, grammarAccess.getHistoryTableAccess().getAliasNameKeyword_7());
                
            otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleHistoryTable12810); 

                	newLeafNode(otherlv_8, grammarAccess.getHistoryTableAccess().getLeftParenthesisKeyword_8());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6181:1: ( (lv_aliasNameRules_9_0= ruleGenNameRule ) )*
            loop208:
            do {
                int alt208=2;
                int LA208_0 = input.LA(1);

                if ( (LA208_0==RULE_STRING||LA208_0==102||(LA208_0>=104 && LA208_0<=105)||(LA208_0>=215 && LA208_0<=217)) ) {
                    alt208=1;
                }


                switch (alt208) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6182:1: (lv_aliasNameRules_9_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6182:1: (lv_aliasNameRules_9_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6183:3: lv_aliasNameRules_9_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getHistoryTableAccess().getAliasNameRulesGenNameRuleParserRuleCall_9_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleHistoryTable12831);
            	    lv_aliasNameRules_9_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getHistoryTableRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"aliasNameRules",
            	            		lv_aliasNameRules_9_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop208;
                }
            } while (true);

            otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleHistoryTable12844); 

                	newLeafNode(otherlv_10, grammarAccess.getHistoryTableAccess().getRightParenthesisKeyword_10());
                
            otherlv_11=(Token)match(input,106,FOLLOW_106_in_ruleHistoryTable12856); 

                	newLeafNode(otherlv_11, grammarAccess.getHistoryTableAccess().getPrimaryKeyModeKeyword_11());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6207:1: ( (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' ) | otherlv_16= 'remove' )
            int alt209=2;
            int LA209_0 = input.LA(1);

            if ( (LA209_0==107) ) {
                alt209=1;
            }
            else if ( (LA209_0==108) ) {
                alt209=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 209, 0, input);

                throw nvae;
            }
            switch (alt209) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6207:2: (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6207:2: (otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6207:4: otherlv_12= 'append' otherlv_13= '(' ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) ) otherlv_15= ')'
                    {
                    otherlv_12=(Token)match(input,107,FOLLOW_107_in_ruleHistoryTable12870); 

                        	newLeafNode(otherlv_12, grammarAccess.getHistoryTableAccess().getAppendKeyword_12_0_0());
                        
                    otherlv_13=(Token)match(input,18,FOLLOW_18_in_ruleHistoryTable12882); 

                        	newLeafNode(otherlv_13, grammarAccess.getHistoryTableAccess().getLeftParenthesisKeyword_12_0_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6215:1: ( (lv_appendToPkDomain_14_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6216:1: (lv_appendToPkDomain_14_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6216:1: (lv_appendToPkDomain_14_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6217:3: lv_appendToPkDomain_14_0= RULE_DBNAME
                    {
                    lv_appendToPkDomain_14_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleHistoryTable12899); 

                    			newLeafNode(lv_appendToPkDomain_14_0, grammarAccess.getHistoryTableAccess().getAppendToPkDomainDBNAMETerminalRuleCall_12_0_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getHistoryTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"appendToPkDomain",
                            		lv_appendToPkDomain_14_0, 
                            		"DBNAME");
                    	    

                    }


                    }

                    otherlv_15=(Token)match(input,19,FOLLOW_19_in_ruleHistoryTable12916); 

                        	newLeafNode(otherlv_15, grammarAccess.getHistoryTableAccess().getRightParenthesisKeyword_12_0_3());
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6238:7: otherlv_16= 'remove'
                    {
                    otherlv_16=(Token)match(input,108,FOLLOW_108_in_ruleHistoryTable12935); 

                        	newLeafNode(otherlv_16, grammarAccess.getHistoryTableAccess().getRemoveKeyword_12_1());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6242:2: (otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) ) )?
            int alt210=2;
            int LA210_0 = input.LA(1);

            if ( (LA210_0==16) ) {
                alt210=1;
            }
            switch (alt210) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6242:4: otherlv_17= 'domain' ( (lv_domain_18_0= RULE_DBNAME ) )
                    {
                    otherlv_17=(Token)match(input,16,FOLLOW_16_in_ruleHistoryTable12949); 

                        	newLeafNode(otherlv_17, grammarAccess.getHistoryTableAccess().getDomainKeyword_13_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6246:1: ( (lv_domain_18_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6247:1: (lv_domain_18_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6247:1: (lv_domain_18_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6248:3: lv_domain_18_0= RULE_DBNAME
                    {
                    lv_domain_18_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleHistoryTable12966); 

                    			newLeafNode(lv_domain_18_0, grammarAccess.getHistoryTableAccess().getDomainDBNAMETerminalRuleCall_13_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getHistoryTableRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"domain",
                            		lv_domain_18_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_19=(Token)match(input,19,FOLLOW_19_in_ruleHistoryTable12985); 

                	newLeafNode(otherlv_19, grammarAccess.getHistoryTableAccess().getRightParenthesisKeyword_14());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleHistoryTable"


    // $ANTLR start "entryRuleDomain"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6276:1: entryRuleDomain returns [EObject current=null] : iv_ruleDomain= ruleDomain EOF ;
    public final EObject entryRuleDomain() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDomain = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6277:2: (iv_ruleDomain= ruleDomain EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6278:2: iv_ruleDomain= ruleDomain EOF
            {
             newCompositeNode(grammarAccess.getDomainRule()); 
            pushFollow(FOLLOW_ruleDomain_in_entryRuleDomain13021);
            iv_ruleDomain=ruleDomain();

            state._fsp--;

             current =iv_ruleDomain; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDomain13031); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDomain"


    // $ANTLR start "ruleDomain"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6285:1: ruleDomain returns [EObject current=null] : (otherlv_0= 'define' otherlv_1= 'table' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) (otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) ) )? otherlv_6= '(' ( (lv_columns_7_0= ruleDomainColumn ) )* ( (lv_historyTable_8_0= ruleHistoryTable ) )? otherlv_9= ')' otherlv_10= ';' ) ;
    public final EObject ruleDomain() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token lv_name_3_0=null;
        Token otherlv_4=null;
        Token lv_extends_5_0=null;
        Token otherlv_6=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        EObject lv_columns_7_0 = null;

        EObject lv_historyTable_8_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6288:28: ( (otherlv_0= 'define' otherlv_1= 'table' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) (otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) ) )? otherlv_6= '(' ( (lv_columns_7_0= ruleDomainColumn ) )* ( (lv_historyTable_8_0= ruleHistoryTable ) )? otherlv_9= ')' otherlv_10= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6289:1: (otherlv_0= 'define' otherlv_1= 'table' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) (otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) ) )? otherlv_6= '(' ( (lv_columns_7_0= ruleDomainColumn ) )* ( (lv_historyTable_8_0= ruleHistoryTable ) )? otherlv_9= ')' otherlv_10= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6289:1: (otherlv_0= 'define' otherlv_1= 'table' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) (otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) ) )? otherlv_6= '(' ( (lv_columns_7_0= ruleDomainColumn ) )* ( (lv_historyTable_8_0= ruleHistoryTable ) )? otherlv_9= ')' otherlv_10= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6289:3: otherlv_0= 'define' otherlv_1= 'table' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) (otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) ) )? otherlv_6= '(' ( (lv_columns_7_0= ruleDomainColumn ) )* ( (lv_historyTable_8_0= ruleHistoryTable ) )? otherlv_9= ')' otherlv_10= ';'
            {
            otherlv_0=(Token)match(input,109,FOLLOW_109_in_ruleDomain13068); 

                	newLeafNode(otherlv_0, grammarAccess.getDomainAccess().getDefineKeyword_0());
                
            otherlv_1=(Token)match(input,14,FOLLOW_14_in_ruleDomain13080); 

                	newLeafNode(otherlv_1, grammarAccess.getDomainAccess().getTableKeyword_1());
                
            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleDomain13092); 

                	newLeafNode(otherlv_2, grammarAccess.getDomainAccess().getDomainKeyword_2());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6301:1: ( (lv_name_3_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6302:1: (lv_name_3_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6302:1: (lv_name_3_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6303:3: lv_name_3_0= RULE_DBNAME
            {
            lv_name_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleDomain13109); 

            			newLeafNode(lv_name_3_0, grammarAccess.getDomainAccess().getNameDBNAMETerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getDomainRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_3_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6319:2: (otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) ) )?
            int alt211=2;
            int LA211_0 = input.LA(1);

            if ( (LA211_0==110) ) {
                alt211=1;
            }
            switch (alt211) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6319:4: otherlv_4= 'extends' ( (lv_extends_5_0= RULE_DBNAME ) )
                    {
                    otherlv_4=(Token)match(input,110,FOLLOW_110_in_ruleDomain13127); 

                        	newLeafNode(otherlv_4, grammarAccess.getDomainAccess().getExtendsKeyword_4_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6323:1: ( (lv_extends_5_0= RULE_DBNAME ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6324:1: (lv_extends_5_0= RULE_DBNAME )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6324:1: (lv_extends_5_0= RULE_DBNAME )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6325:3: lv_extends_5_0= RULE_DBNAME
                    {
                    lv_extends_5_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleDomain13144); 

                    			newLeafNode(lv_extends_5_0, grammarAccess.getDomainAccess().getExtendsDBNAMETerminalRuleCall_4_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDomainRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"extends",
                            		lv_extends_5_0, 
                            		"DBNAME");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_6=(Token)match(input,18,FOLLOW_18_in_ruleDomain13163); 

                	newLeafNode(otherlv_6, grammarAccess.getDomainAccess().getLeftParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6345:1: ( (lv_columns_7_0= ruleDomainColumn ) )*
            loop212:
            do {
                int alt212=2;
                int LA212_0 = input.LA(1);

                if ( (LA212_0==99) ) {
                    int LA212_1 = input.LA(2);

                    if ( (LA212_1==100) ) {
                        alt212=1;
                    }


                }


                switch (alt212) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6346:1: (lv_columns_7_0= ruleDomainColumn )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6346:1: (lv_columns_7_0= ruleDomainColumn )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6347:3: lv_columns_7_0= ruleDomainColumn
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getDomainAccess().getColumnsDomainColumnParserRuleCall_6_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleDomainColumn_in_ruleDomain13184);
            	    lv_columns_7_0=ruleDomainColumn();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getDomainRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"columns",
            	            		lv_columns_7_0, 
            	            		"DomainColumn");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop212;
                }
            } while (true);

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6363:3: ( (lv_historyTable_8_0= ruleHistoryTable ) )?
            int alt213=2;
            int LA213_0 = input.LA(1);

            if ( (LA213_0==99) ) {
                alt213=1;
            }
            switch (alt213) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6364:1: (lv_historyTable_8_0= ruleHistoryTable )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6364:1: (lv_historyTable_8_0= ruleHistoryTable )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6365:3: lv_historyTable_8_0= ruleHistoryTable
                    {
                     
                    	        newCompositeNode(grammarAccess.getDomainAccess().getHistoryTableHistoryTableParserRuleCall_7_0()); 
                    	    
                    pushFollow(FOLLOW_ruleHistoryTable_in_ruleDomain13206);
                    lv_historyTable_8_0=ruleHistoryTable();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"historyTable",
                            		lv_historyTable_8_0, 
                            		"HistoryTable");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleDomain13219); 

                	newLeafNode(otherlv_9, grammarAccess.getDomainAccess().getRightParenthesisKeyword_8());
                
            otherlv_10=(Token)match(input,31,FOLLOW_31_in_ruleDomain13231); 

                	newLeafNode(otherlv_10, grammarAccess.getDomainAccess().getSemicolonKeyword_9());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDomain"


    // $ANTLR start "entryRuleGenNameRule"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6397:1: entryRuleGenNameRule returns [EObject current=null] : iv_ruleGenNameRule= ruleGenNameRule EOF ;
    public final EObject entryRuleGenNameRule() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGenNameRule = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6398:2: (iv_ruleGenNameRule= ruleGenNameRule EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6399:2: iv_ruleGenNameRule= ruleGenNameRule EOF
            {
             newCompositeNode(grammarAccess.getGenNameRuleRule()); 
            pushFollow(FOLLOW_ruleGenNameRule_in_entryRuleGenNameRule13267);
            iv_ruleGenNameRule=ruleGenNameRule();

            state._fsp--;

             current =iv_ruleGenNameRule; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGenNameRule13277); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGenNameRule"


    // $ANTLR start "ruleGenNameRule"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6406:1: ruleGenNameRule returns [EObject current=null] : ( ( ( (lv_constant_name_0_0= RULE_STRING ) ) | ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? ) ) (otherlv_6= '||' )? ) ;
    public final EObject ruleGenNameRule() throws RecognitionException {
        EObject current = null;

        Token lv_constant_name_0_0=null;
        Token otherlv_2=null;
        Token lv_regexp_3_0=null;
        Token otherlv_4=null;
        Token lv_replace_5_0=null;
        Token otherlv_6=null;
        Enumerator lv_constant_part_1_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6409:28: ( ( ( ( (lv_constant_name_0_0= RULE_STRING ) ) | ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? ) ) (otherlv_6= '||' )? ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6410:1: ( ( ( (lv_constant_name_0_0= RULE_STRING ) ) | ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? ) ) (otherlv_6= '||' )? )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6410:1: ( ( ( (lv_constant_name_0_0= RULE_STRING ) ) | ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? ) ) (otherlv_6= '||' )? )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6410:2: ( ( (lv_constant_name_0_0= RULE_STRING ) ) | ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? ) ) (otherlv_6= '||' )?
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6410:2: ( ( (lv_constant_name_0_0= RULE_STRING ) ) | ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? ) )
            int alt216=2;
            int LA216_0 = input.LA(1);

            if ( (LA216_0==RULE_STRING) ) {
                alt216=1;
            }
            else if ( (LA216_0==102||(LA216_0>=104 && LA216_0<=105)||(LA216_0>=215 && LA216_0<=217)) ) {
                alt216=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 216, 0, input);

                throw nvae;
            }
            switch (alt216) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6410:3: ( (lv_constant_name_0_0= RULE_STRING ) )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6410:3: ( (lv_constant_name_0_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6411:1: (lv_constant_name_0_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6411:1: (lv_constant_name_0_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6412:3: lv_constant_name_0_0= RULE_STRING
                    {
                    lv_constant_name_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleGenNameRule13320); 

                    			newLeafNode(lv_constant_name_0_0, grammarAccess.getGenNameRuleAccess().getConstant_nameSTRINGTerminalRuleCall_0_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGenNameRuleRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"constant_name",
                            		lv_constant_name_0_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6429:6: ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6429:6: ( ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )? )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6429:7: ( (lv_constant_part_1_0= ruleGenNameRulePart ) ) (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )?
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6429:7: ( (lv_constant_part_1_0= ruleGenNameRulePart ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6430:1: (lv_constant_part_1_0= ruleGenNameRulePart )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6430:1: (lv_constant_part_1_0= ruleGenNameRulePart )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6431:3: lv_constant_part_1_0= ruleGenNameRulePart
                    {
                     
                    	        newCompositeNode(grammarAccess.getGenNameRuleAccess().getConstant_partGenNameRulePartEnumRuleCall_0_1_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleGenNameRulePart_in_ruleGenNameRule13353);
                    lv_constant_part_1_0=ruleGenNameRulePart();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getGenNameRuleRule());
                    	        }
                           		set(
                           			current, 
                           			"constant_part",
                            		lv_constant_part_1_0, 
                            		"GenNameRulePart");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6447:2: (otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )? )?
                    int alt215=2;
                    int LA215_0 = input.LA(1);

                    if ( (LA215_0==111) ) {
                        alt215=1;
                    }
                    switch (alt215) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6447:4: otherlv_2= 'regexp' ( (lv_regexp_3_0= RULE_STRING ) ) (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )?
                            {
                            otherlv_2=(Token)match(input,111,FOLLOW_111_in_ruleGenNameRule13366); 

                                	newLeafNode(otherlv_2, grammarAccess.getGenNameRuleAccess().getRegexpKeyword_0_1_1_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6451:1: ( (lv_regexp_3_0= RULE_STRING ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6452:1: (lv_regexp_3_0= RULE_STRING )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6452:1: (lv_regexp_3_0= RULE_STRING )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6453:3: lv_regexp_3_0= RULE_STRING
                            {
                            lv_regexp_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleGenNameRule13383); 

                            			newLeafNode(lv_regexp_3_0, grammarAccess.getGenNameRuleAccess().getRegexpSTRINGTerminalRuleCall_0_1_1_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getGenNameRuleRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"regexp",
                                    		lv_regexp_3_0, 
                                    		"STRING");
                            	    

                            }


                            }

                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6469:2: (otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) ) )?
                            int alt214=2;
                            int LA214_0 = input.LA(1);

                            if ( (LA214_0==112) ) {
                                alt214=1;
                            }
                            switch (alt214) {
                                case 1 :
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6469:4: otherlv_4= 'replace' ( (lv_replace_5_0= RULE_STRING ) )
                                    {
                                    otherlv_4=(Token)match(input,112,FOLLOW_112_in_ruleGenNameRule13401); 

                                        	newLeafNode(otherlv_4, grammarAccess.getGenNameRuleAccess().getReplaceKeyword_0_1_1_2_0());
                                        
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6473:1: ( (lv_replace_5_0= RULE_STRING ) )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6474:1: (lv_replace_5_0= RULE_STRING )
                                    {
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6474:1: (lv_replace_5_0= RULE_STRING )
                                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6475:3: lv_replace_5_0= RULE_STRING
                                    {
                                    lv_replace_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleGenNameRule13418); 

                                    			newLeafNode(lv_replace_5_0, grammarAccess.getGenNameRuleAccess().getReplaceSTRINGTerminalRuleCall_0_1_1_2_1_0()); 
                                    		

                                    	        if (current==null) {
                                    	            current = createModelElement(grammarAccess.getGenNameRuleRule());
                                    	        }
                                           		setWithLastConsumed(
                                           			current, 
                                           			"replace",
                                            		lv_replace_5_0, 
                                            		"STRING");
                                    	    

                                    }


                                    }


                                    }
                                    break;

                            }


                            }
                            break;

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6491:8: (otherlv_6= '||' )?
            int alt217=2;
            int LA217_0 = input.LA(1);

            if ( (LA217_0==113) ) {
                alt217=1;
            }
            switch (alt217) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6491:10: otherlv_6= '||'
                    {
                    otherlv_6=(Token)match(input,113,FOLLOW_113_in_ruleGenNameRule13442); 

                        	newLeafNode(otherlv_6, grammarAccess.getGenNameRuleAccess().getVerticalLineVerticalLineKeyword_1());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGenNameRule"


    // $ANTLR start "entryRuleGeneratePk"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6503:1: entryRuleGeneratePk returns [EObject current=null] : iv_ruleGeneratePk= ruleGeneratePk EOF ;
    public final EObject entryRuleGeneratePk() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGeneratePk = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6504:2: (iv_ruleGeneratePk= ruleGeneratePk EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6505:2: iv_ruleGeneratePk= ruleGeneratePk EOF
            {
             newCompositeNode(grammarAccess.getGeneratePkRule()); 
            pushFollow(FOLLOW_ruleGeneratePk_in_entryRuleGeneratePk13480);
            iv_ruleGeneratePk=ruleGeneratePk();

            state._fsp--;

             current =iv_ruleGeneratePk; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGeneratePk13490); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGeneratePk"


    // $ANTLR start "ruleGeneratePk"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6512:1: ruleGeneratePk returns [EObject current=null] : (otherlv_0= 'generate-primary-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? otherlv_10= ')' ) ;
    public final EObject ruleGeneratePk() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        EObject lv_constraintNameRules_4_0 = null;

        EObject lv_sequenceNameRules_8_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6515:28: ( (otherlv_0= 'generate-primary-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? otherlv_10= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6516:1: (otherlv_0= 'generate-primary-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? otherlv_10= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6516:1: (otherlv_0= 'generate-primary-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? otherlv_10= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6516:3: otherlv_0= 'generate-primary-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? otherlv_10= ')'
            {
            otherlv_0=(Token)match(input,114,FOLLOW_114_in_ruleGeneratePk13527); 

                	newLeafNode(otherlv_0, grammarAccess.getGeneratePkAccess().getGeneratePrimaryKeyKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleGeneratePk13539); 

                	newLeafNode(otherlv_1, grammarAccess.getGeneratePkAccess().getLeftParenthesisKeyword_1());
                
            otherlv_2=(Token)match(input,115,FOLLOW_115_in_ruleGeneratePk13551); 

                	newLeafNode(otherlv_2, grammarAccess.getGeneratePkAccess().getConstraintNameKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleGeneratePk13563); 

                	newLeafNode(otherlv_3, grammarAccess.getGeneratePkAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6532:1: ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )*
            loop218:
            do {
                int alt218=2;
                int LA218_0 = input.LA(1);

                if ( (LA218_0==RULE_STRING||LA218_0==102||(LA218_0>=104 && LA218_0<=105)||(LA218_0>=215 && LA218_0<=217)) ) {
                    alt218=1;
                }


                switch (alt218) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6533:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6533:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6534:3: lv_constraintNameRules_4_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getGeneratePkAccess().getConstraintNameRulesGenNameRuleParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGeneratePk13584);
            	    lv_constraintNameRules_4_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getGeneratePkRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"constraintNameRules",
            	            		lv_constraintNameRules_4_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop218;
                }
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleGeneratePk13597); 

                	newLeafNode(otherlv_5, grammarAccess.getGeneratePkAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6554:1: (otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )?
            int alt220=2;
            int LA220_0 = input.LA(1);

            if ( (LA220_0==116) ) {
                alt220=1;
            }
            switch (alt220) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6554:3: otherlv_6= 'sequence-name' otherlv_7= '(' ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')'
                    {
                    otherlv_6=(Token)match(input,116,FOLLOW_116_in_ruleGeneratePk13610); 

                        	newLeafNode(otherlv_6, grammarAccess.getGeneratePkAccess().getSequenceNameKeyword_6_0());
                        
                    otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleGeneratePk13622); 

                        	newLeafNode(otherlv_7, grammarAccess.getGeneratePkAccess().getLeftParenthesisKeyword_6_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6562:1: ( (lv_sequenceNameRules_8_0= ruleGenNameRule ) )*
                    loop219:
                    do {
                        int alt219=2;
                        int LA219_0 = input.LA(1);

                        if ( (LA219_0==RULE_STRING||LA219_0==102||(LA219_0>=104 && LA219_0<=105)||(LA219_0>=215 && LA219_0<=217)) ) {
                            alt219=1;
                        }


                        switch (alt219) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6563:1: (lv_sequenceNameRules_8_0= ruleGenNameRule )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6563:1: (lv_sequenceNameRules_8_0= ruleGenNameRule )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6564:3: lv_sequenceNameRules_8_0= ruleGenNameRule
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getGeneratePkAccess().getSequenceNameRulesGenNameRuleParserRuleCall_6_2_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGeneratePk13643);
                    	    lv_sequenceNameRules_8_0=ruleGenNameRule();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getGeneratePkRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"sequenceNameRules",
                    	            		lv_sequenceNameRules_8_0, 
                    	            		"GenNameRule");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop219;
                        }
                    } while (true);

                    otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleGeneratePk13656); 

                        	newLeafNode(otherlv_9, grammarAccess.getGeneratePkAccess().getRightParenthesisKeyword_6_3());
                        

                    }
                    break;

            }

            otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleGeneratePk13670); 

                	newLeafNode(otherlv_10, grammarAccess.getGeneratePkAccess().getRightParenthesisKeyword_7());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGeneratePk"


    // $ANTLR start "entryRuleGenerateUk"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6596:1: entryRuleGenerateUk returns [EObject current=null] : iv_ruleGenerateUk= ruleGenerateUk EOF ;
    public final EObject entryRuleGenerateUk() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGenerateUk = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6597:2: (iv_ruleGenerateUk= ruleGenerateUk EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6598:2: iv_ruleGenerateUk= ruleGenerateUk EOF
            {
             newCompositeNode(grammarAccess.getGenerateUkRule()); 
            pushFollow(FOLLOW_ruleGenerateUk_in_entryRuleGenerateUk13706);
            iv_ruleGenerateUk=ruleGenerateUk();

            state._fsp--;

             current =iv_ruleGenerateUk; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGenerateUk13716); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGenerateUk"


    // $ANTLR start "ruleGenerateUk"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6605:1: ruleGenerateUk returns [EObject current=null] : (otherlv_0= 'generate-unique-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' ) ;
    public final EObject ruleGenerateUk() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        EObject lv_constraintNameRules_4_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6608:28: ( (otherlv_0= 'generate-unique-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6609:1: (otherlv_0= 'generate-unique-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6609:1: (otherlv_0= 'generate-unique-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6609:3: otherlv_0= 'generate-unique-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')'
            {
            otherlv_0=(Token)match(input,117,FOLLOW_117_in_ruleGenerateUk13753); 

                	newLeafNode(otherlv_0, grammarAccess.getGenerateUkAccess().getGenerateUniqueKeyKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleGenerateUk13765); 

                	newLeafNode(otherlv_1, grammarAccess.getGenerateUkAccess().getLeftParenthesisKeyword_1());
                
            otherlv_2=(Token)match(input,115,FOLLOW_115_in_ruleGenerateUk13777); 

                	newLeafNode(otherlv_2, grammarAccess.getGenerateUkAccess().getConstraintNameKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleGenerateUk13789); 

                	newLeafNode(otherlv_3, grammarAccess.getGenerateUkAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6625:1: ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )*
            loop221:
            do {
                int alt221=2;
                int LA221_0 = input.LA(1);

                if ( (LA221_0==RULE_STRING||LA221_0==102||(LA221_0>=104 && LA221_0<=105)||(LA221_0>=215 && LA221_0<=217)) ) {
                    alt221=1;
                }


                switch (alt221) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6626:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6626:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6627:3: lv_constraintNameRules_4_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getGenerateUkAccess().getConstraintNameRulesGenNameRuleParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateUk13810);
            	    lv_constraintNameRules_4_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getGenerateUkRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"constraintNameRules",
            	            		lv_constraintNameRules_4_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop221;
                }
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleGenerateUk13823); 

                	newLeafNode(otherlv_5, grammarAccess.getGenerateUkAccess().getRightParenthesisKeyword_5());
                
            otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleGenerateUk13835); 

                	newLeafNode(otherlv_6, grammarAccess.getGenerateUkAccess().getRightParenthesisKeyword_6());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGenerateUk"


    // $ANTLR start "entryRuleGenerateIndex"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6659:1: entryRuleGenerateIndex returns [EObject current=null] : iv_ruleGenerateIndex= ruleGenerateIndex EOF ;
    public final EObject entryRuleGenerateIndex() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGenerateIndex = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6660:2: (iv_ruleGenerateIndex= ruleGenerateIndex EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6661:2: iv_ruleGenerateIndex= ruleGenerateIndex EOF
            {
             newCompositeNode(grammarAccess.getGenerateIndexRule()); 
            pushFollow(FOLLOW_ruleGenerateIndex_in_entryRuleGenerateIndex13871);
            iv_ruleGenerateIndex=ruleGenerateIndex();

            state._fsp--;

             current =iv_ruleGenerateIndex; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGenerateIndex13881); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGenerateIndex"


    // $ANTLR start "ruleGenerateIndex"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6668:1: ruleGenerateIndex returns [EObject current=null] : (otherlv_0= 'generate-index' otherlv_1= '(' otherlv_2= 'index-name' otherlv_3= '(' ( (lv_indexNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' ) ;
    public final EObject ruleGenerateIndex() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        EObject lv_indexNameRules_4_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6671:28: ( (otherlv_0= 'generate-index' otherlv_1= '(' otherlv_2= 'index-name' otherlv_3= '(' ( (lv_indexNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6672:1: (otherlv_0= 'generate-index' otherlv_1= '(' otherlv_2= 'index-name' otherlv_3= '(' ( (lv_indexNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6672:1: (otherlv_0= 'generate-index' otherlv_1= '(' otherlv_2= 'index-name' otherlv_3= '(' ( (lv_indexNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6672:3: otherlv_0= 'generate-index' otherlv_1= '(' otherlv_2= 'index-name' otherlv_3= '(' ( (lv_indexNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= ')'
            {
            otherlv_0=(Token)match(input,118,FOLLOW_118_in_ruleGenerateIndex13918); 

                	newLeafNode(otherlv_0, grammarAccess.getGenerateIndexAccess().getGenerateIndexKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleGenerateIndex13930); 

                	newLeafNode(otherlv_1, grammarAccess.getGenerateIndexAccess().getLeftParenthesisKeyword_1());
                
            otherlv_2=(Token)match(input,119,FOLLOW_119_in_ruleGenerateIndex13942); 

                	newLeafNode(otherlv_2, grammarAccess.getGenerateIndexAccess().getIndexNameKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleGenerateIndex13954); 

                	newLeafNode(otherlv_3, grammarAccess.getGenerateIndexAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6688:1: ( (lv_indexNameRules_4_0= ruleGenNameRule ) )*
            loop222:
            do {
                int alt222=2;
                int LA222_0 = input.LA(1);

                if ( (LA222_0==RULE_STRING||LA222_0==102||(LA222_0>=104 && LA222_0<=105)||(LA222_0>=215 && LA222_0<=217)) ) {
                    alt222=1;
                }


                switch (alt222) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6689:1: (lv_indexNameRules_4_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6689:1: (lv_indexNameRules_4_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6690:3: lv_indexNameRules_4_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getGenerateIndexAccess().getIndexNameRulesGenNameRuleParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateIndex13975);
            	    lv_indexNameRules_4_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getGenerateIndexRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"indexNameRules",
            	            		lv_indexNameRules_4_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop222;
                }
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleGenerateIndex13988); 

                	newLeafNode(otherlv_5, grammarAccess.getGenerateIndexAccess().getRightParenthesisKeyword_5());
                
            otherlv_6=(Token)match(input,19,FOLLOW_19_in_ruleGenerateIndex14000); 

                	newLeafNode(otherlv_6, grammarAccess.getGenerateIndexAccess().getRightParenthesisKeyword_6());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGenerateIndex"


    // $ANTLR start "entryRuleGenerateCc"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6722:1: entryRuleGenerateCc returns [EObject current=null] : iv_ruleGenerateCc= ruleGenerateCc EOF ;
    public final EObject entryRuleGenerateCc() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGenerateCc = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6723:2: (iv_ruleGenerateCc= ruleGenerateCc EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6724:2: iv_ruleGenerateCc= ruleGenerateCc EOF
            {
             newCompositeNode(grammarAccess.getGenerateCcRule()); 
            pushFollow(FOLLOW_ruleGenerateCc_in_entryRuleGenerateCc14036);
            iv_ruleGenerateCc=ruleGenerateCc();

            state._fsp--;

             current =iv_ruleGenerateCc; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGenerateCc14046); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGenerateCc"


    // $ANTLR start "ruleGenerateCc"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6731:1: ruleGenerateCc returns [EObject current=null] : (otherlv_0= 'generate-check-constraint' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= 'check-rule' otherlv_7= '(' ( (lv_checkRuleNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' otherlv_10= ')' ) ;
    public final EObject ruleGenerateCc() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        EObject lv_constraintNameRules_4_0 = null;

        EObject lv_checkRuleNameRules_8_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6734:28: ( (otherlv_0= 'generate-check-constraint' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= 'check-rule' otherlv_7= '(' ( (lv_checkRuleNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' otherlv_10= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6735:1: (otherlv_0= 'generate-check-constraint' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= 'check-rule' otherlv_7= '(' ( (lv_checkRuleNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' otherlv_10= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6735:1: (otherlv_0= 'generate-check-constraint' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= 'check-rule' otherlv_7= '(' ( (lv_checkRuleNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' otherlv_10= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6735:3: otherlv_0= 'generate-check-constraint' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' otherlv_6= 'check-rule' otherlv_7= '(' ( (lv_checkRuleNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' otherlv_10= ')'
            {
            otherlv_0=(Token)match(input,120,FOLLOW_120_in_ruleGenerateCc14083); 

                	newLeafNode(otherlv_0, grammarAccess.getGenerateCcAccess().getGenerateCheckConstraintKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleGenerateCc14095); 

                	newLeafNode(otherlv_1, grammarAccess.getGenerateCcAccess().getLeftParenthesisKeyword_1());
                
            otherlv_2=(Token)match(input,115,FOLLOW_115_in_ruleGenerateCc14107); 

                	newLeafNode(otherlv_2, grammarAccess.getGenerateCcAccess().getConstraintNameKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleGenerateCc14119); 

                	newLeafNode(otherlv_3, grammarAccess.getGenerateCcAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6751:1: ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )*
            loop223:
            do {
                int alt223=2;
                int LA223_0 = input.LA(1);

                if ( (LA223_0==RULE_STRING||LA223_0==102||(LA223_0>=104 && LA223_0<=105)||(LA223_0>=215 && LA223_0<=217)) ) {
                    alt223=1;
                }


                switch (alt223) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6752:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6752:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6753:3: lv_constraintNameRules_4_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getGenerateCcAccess().getConstraintNameRulesGenNameRuleParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateCc14140);
            	    lv_constraintNameRules_4_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getGenerateCcRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"constraintNameRules",
            	            		lv_constraintNameRules_4_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop223;
                }
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleGenerateCc14153); 

                	newLeafNode(otherlv_5, grammarAccess.getGenerateCcAccess().getRightParenthesisKeyword_5());
                
            otherlv_6=(Token)match(input,121,FOLLOW_121_in_ruleGenerateCc14165); 

                	newLeafNode(otherlv_6, grammarAccess.getGenerateCcAccess().getCheckRuleKeyword_6());
                
            otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleGenerateCc14177); 

                	newLeafNode(otherlv_7, grammarAccess.getGenerateCcAccess().getLeftParenthesisKeyword_7());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6781:1: ( (lv_checkRuleNameRules_8_0= ruleGenNameRule ) )*
            loop224:
            do {
                int alt224=2;
                int LA224_0 = input.LA(1);

                if ( (LA224_0==RULE_STRING||LA224_0==102||(LA224_0>=104 && LA224_0<=105)||(LA224_0>=215 && LA224_0<=217)) ) {
                    alt224=1;
                }


                switch (alt224) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6782:1: (lv_checkRuleNameRules_8_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6782:1: (lv_checkRuleNameRules_8_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6783:3: lv_checkRuleNameRules_8_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getGenerateCcAccess().getCheckRuleNameRulesGenNameRuleParserRuleCall_8_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateCc14198);
            	    lv_checkRuleNameRules_8_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getGenerateCcRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"checkRuleNameRules",
            	            		lv_checkRuleNameRules_8_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop224;
                }
            } while (true);

            otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleGenerateCc14211); 

                	newLeafNode(otherlv_9, grammarAccess.getGenerateCcAccess().getRightParenthesisKeyword_9());
                
            otherlv_10=(Token)match(input,19,FOLLOW_19_in_ruleGenerateCc14223); 

                	newLeafNode(otherlv_10, grammarAccess.getGenerateCcAccess().getRightParenthesisKeyword_10());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGenerateCc"


    // $ANTLR start "entryRuleGenerateFk"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6815:1: entryRuleGenerateFk returns [EObject current=null] : iv_ruleGenerateFk= ruleGenerateFk EOF ;
    public final EObject entryRuleGenerateFk() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGenerateFk = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6816:2: (iv_ruleGenerateFk= ruleGenerateFk EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6817:2: iv_ruleGenerateFk= ruleGenerateFk EOF
            {
             newCompositeNode(grammarAccess.getGenerateFkRule()); 
            pushFollow(FOLLOW_ruleGenerateFk_in_entryRuleGenerateFk14259);
            iv_ruleGenerateFk=ruleGenerateFk();

            state._fsp--;

             current =iv_ruleGenerateFk; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGenerateFk14269); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGenerateFk"


    // $ANTLR start "ruleGenerateFk"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6824:1: ruleGenerateFk returns [EObject current=null] : (otherlv_0= 'generate-foreign-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? (otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')' )? (otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')' )? (otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) ) )? otherlv_21= ')' ) ;
    public final EObject ruleGenerateFk() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        Token otherlv_11=null;
        Token otherlv_13=null;
        Token otherlv_14=null;
        Token otherlv_15=null;
        Token otherlv_17=null;
        Token otherlv_18=null;
        Token otherlv_19=null;
        Token otherlv_21=null;
        EObject lv_constraintNameRules_4_0 = null;

        EObject lv_pkColumnNameRules_8_0 = null;

        EObject lv_aliasNameRules_12_0 = null;

        EObject lv_tableNameRules_16_0 = null;

        Enumerator lv_delete_rule_20_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6827:28: ( (otherlv_0= 'generate-foreign-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? (otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')' )? (otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')' )? (otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) ) )? otherlv_21= ')' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6828:1: (otherlv_0= 'generate-foreign-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? (otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')' )? (otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')' )? (otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) ) )? otherlv_21= ')' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6828:1: (otherlv_0= 'generate-foreign-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? (otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')' )? (otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')' )? (otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) ) )? otherlv_21= ')' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6828:3: otherlv_0= 'generate-foreign-key' otherlv_1= '(' otherlv_2= 'constraint-name' otherlv_3= '(' ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )* otherlv_5= ')' (otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )? (otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')' )? (otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')' )? (otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) ) )? otherlv_21= ')'
            {
            otherlv_0=(Token)match(input,122,FOLLOW_122_in_ruleGenerateFk14306); 

                	newLeafNode(otherlv_0, grammarAccess.getGenerateFkAccess().getGenerateForeignKeyKeyword_0());
                
            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleGenerateFk14318); 

                	newLeafNode(otherlv_1, grammarAccess.getGenerateFkAccess().getLeftParenthesisKeyword_1());
                
            otherlv_2=(Token)match(input,115,FOLLOW_115_in_ruleGenerateFk14330); 

                	newLeafNode(otherlv_2, grammarAccess.getGenerateFkAccess().getConstraintNameKeyword_2());
                
            otherlv_3=(Token)match(input,18,FOLLOW_18_in_ruleGenerateFk14342); 

                	newLeafNode(otherlv_3, grammarAccess.getGenerateFkAccess().getLeftParenthesisKeyword_3());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6844:1: ( (lv_constraintNameRules_4_0= ruleGenNameRule ) )*
            loop225:
            do {
                int alt225=2;
                int LA225_0 = input.LA(1);

                if ( (LA225_0==RULE_STRING||LA225_0==102||(LA225_0>=104 && LA225_0<=105)||(LA225_0>=215 && LA225_0<=217)) ) {
                    alt225=1;
                }


                switch (alt225) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6845:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    {
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6845:1: (lv_constraintNameRules_4_0= ruleGenNameRule )
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6846:3: lv_constraintNameRules_4_0= ruleGenNameRule
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getGenerateFkAccess().getConstraintNameRulesGenNameRuleParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateFk14363);
            	    lv_constraintNameRules_4_0=ruleGenNameRule();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getGenerateFkRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"constraintNameRules",
            	            		lv_constraintNameRules_4_0, 
            	            		"GenNameRule");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop225;
                }
            } while (true);

            otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleGenerateFk14376); 

                	newLeafNode(otherlv_5, grammarAccess.getGenerateFkAccess().getRightParenthesisKeyword_5());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6866:1: (otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')' )?
            int alt227=2;
            int LA227_0 = input.LA(1);

            if ( (LA227_0==123) ) {
                alt227=1;
            }
            switch (alt227) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6866:3: otherlv_6= 'pk-column-name' otherlv_7= '(' ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )* otherlv_9= ')'
                    {
                    otherlv_6=(Token)match(input,123,FOLLOW_123_in_ruleGenerateFk14389); 

                        	newLeafNode(otherlv_6, grammarAccess.getGenerateFkAccess().getPkColumnNameKeyword_6_0());
                        
                    otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleGenerateFk14401); 

                        	newLeafNode(otherlv_7, grammarAccess.getGenerateFkAccess().getLeftParenthesisKeyword_6_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6874:1: ( (lv_pkColumnNameRules_8_0= ruleGenNameRule ) )*
                    loop226:
                    do {
                        int alt226=2;
                        int LA226_0 = input.LA(1);

                        if ( (LA226_0==RULE_STRING||LA226_0==102||(LA226_0>=104 && LA226_0<=105)||(LA226_0>=215 && LA226_0<=217)) ) {
                            alt226=1;
                        }


                        switch (alt226) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6875:1: (lv_pkColumnNameRules_8_0= ruleGenNameRule )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6875:1: (lv_pkColumnNameRules_8_0= ruleGenNameRule )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6876:3: lv_pkColumnNameRules_8_0= ruleGenNameRule
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getGenerateFkAccess().getPkColumnNameRulesGenNameRuleParserRuleCall_6_2_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateFk14422);
                    	    lv_pkColumnNameRules_8_0=ruleGenNameRule();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getGenerateFkRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"pkColumnNameRules",
                    	            		lv_pkColumnNameRules_8_0, 
                    	            		"GenNameRule");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop226;
                        }
                    } while (true);

                    otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleGenerateFk14435); 

                        	newLeafNode(otherlv_9, grammarAccess.getGenerateFkAccess().getRightParenthesisKeyword_6_3());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6896:3: (otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')' )?
            int alt229=2;
            int LA229_0 = input.LA(1);

            if ( (LA229_0==105) ) {
                alt229=1;
            }
            switch (alt229) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6896:5: otherlv_10= 'alias-name' otherlv_11= '(' ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )* otherlv_13= ')'
                    {
                    otherlv_10=(Token)match(input,105,FOLLOW_105_in_ruleGenerateFk14450); 

                        	newLeafNode(otherlv_10, grammarAccess.getGenerateFkAccess().getAliasNameKeyword_7_0());
                        
                    otherlv_11=(Token)match(input,18,FOLLOW_18_in_ruleGenerateFk14462); 

                        	newLeafNode(otherlv_11, grammarAccess.getGenerateFkAccess().getLeftParenthesisKeyword_7_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6904:1: ( (lv_aliasNameRules_12_0= ruleGenNameRule ) )*
                    loop228:
                    do {
                        int alt228=2;
                        int LA228_0 = input.LA(1);

                        if ( (LA228_0==RULE_STRING||LA228_0==102||(LA228_0>=104 && LA228_0<=105)||(LA228_0>=215 && LA228_0<=217)) ) {
                            alt228=1;
                        }


                        switch (alt228) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6905:1: (lv_aliasNameRules_12_0= ruleGenNameRule )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6905:1: (lv_aliasNameRules_12_0= ruleGenNameRule )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6906:3: lv_aliasNameRules_12_0= ruleGenNameRule
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getGenerateFkAccess().getAliasNameRulesGenNameRuleParserRuleCall_7_2_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateFk14483);
                    	    lv_aliasNameRules_12_0=ruleGenNameRule();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getGenerateFkRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"aliasNameRules",
                    	            		lv_aliasNameRules_12_0, 
                    	            		"GenNameRule");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop228;
                        }
                    } while (true);

                    otherlv_13=(Token)match(input,19,FOLLOW_19_in_ruleGenerateFk14496); 

                        	newLeafNode(otherlv_13, grammarAccess.getGenerateFkAccess().getRightParenthesisKeyword_7_3());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6926:3: (otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')' )?
            int alt231=2;
            int LA231_0 = input.LA(1);

            if ( (LA231_0==104) ) {
                alt231=1;
            }
            switch (alt231) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6926:5: otherlv_14= 'table-name' otherlv_15= '(' ( (lv_tableNameRules_16_0= ruleGenNameRule ) )* otherlv_17= ')'
                    {
                    otherlv_14=(Token)match(input,104,FOLLOW_104_in_ruleGenerateFk14511); 

                        	newLeafNode(otherlv_14, grammarAccess.getGenerateFkAccess().getTableNameKeyword_8_0());
                        
                    otherlv_15=(Token)match(input,18,FOLLOW_18_in_ruleGenerateFk14523); 

                        	newLeafNode(otherlv_15, grammarAccess.getGenerateFkAccess().getLeftParenthesisKeyword_8_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6934:1: ( (lv_tableNameRules_16_0= ruleGenNameRule ) )*
                    loop230:
                    do {
                        int alt230=2;
                        int LA230_0 = input.LA(1);

                        if ( (LA230_0==RULE_STRING||LA230_0==102||(LA230_0>=104 && LA230_0<=105)||(LA230_0>=215 && LA230_0<=217)) ) {
                            alt230=1;
                        }


                        switch (alt230) {
                    	case 1 :
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6935:1: (lv_tableNameRules_16_0= ruleGenNameRule )
                    	    {
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6935:1: (lv_tableNameRules_16_0= ruleGenNameRule )
                    	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6936:3: lv_tableNameRules_16_0= ruleGenNameRule
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getGenerateFkAccess().getTableNameRulesGenNameRuleParserRuleCall_8_2_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleGenNameRule_in_ruleGenerateFk14544);
                    	    lv_tableNameRules_16_0=ruleGenNameRule();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getGenerateFkRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"tableNameRules",
                    	            		lv_tableNameRules_16_0, 
                    	            		"GenNameRule");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop230;
                        }
                    } while (true);

                    otherlv_17=(Token)match(input,19,FOLLOW_19_in_ruleGenerateFk14557); 

                        	newLeafNode(otherlv_17, grammarAccess.getGenerateFkAccess().getRightParenthesisKeyword_8_3());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6956:3: (otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) ) )?
            int alt232=2;
            int LA232_0 = input.LA(1);

            if ( (LA232_0==20) ) {
                alt232=1;
            }
            switch (alt232) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6956:5: otherlv_18= 'on' otherlv_19= 'delete' ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) )
                    {
                    otherlv_18=(Token)match(input,20,FOLLOW_20_in_ruleGenerateFk14572); 

                        	newLeafNode(otherlv_18, grammarAccess.getGenerateFkAccess().getOnKeyword_9_0());
                        
                    otherlv_19=(Token)match(input,65,FOLLOW_65_in_ruleGenerateFk14584); 

                        	newLeafNode(otherlv_19, grammarAccess.getGenerateFkAccess().getDeleteKeyword_9_1());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6964:1: ( (lv_delete_rule_20_0= ruleFkDeleteRuleType ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6965:1: (lv_delete_rule_20_0= ruleFkDeleteRuleType )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6965:1: (lv_delete_rule_20_0= ruleFkDeleteRuleType )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6966:3: lv_delete_rule_20_0= ruleFkDeleteRuleType
                    {
                     
                    	        newCompositeNode(grammarAccess.getGenerateFkAccess().getDelete_ruleFkDeleteRuleTypeEnumRuleCall_9_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleFkDeleteRuleType_in_ruleGenerateFk14605);
                    lv_delete_rule_20_0=ruleFkDeleteRuleType();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getGenerateFkRule());
                    	        }
                           		set(
                           			current, 
                           			"delete_rule",
                            		lv_delete_rule_20_0, 
                            		"FkDeleteRuleType");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_21=(Token)match(input,19,FOLLOW_19_in_ruleGenerateFk14619); 

                	newLeafNode(otherlv_21, grammarAccess.getGenerateFkAccess().getRightParenthesisKeyword_10());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGenerateFk"


    // $ANTLR start "entryRuleColumnDomain"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6994:1: entryRuleColumnDomain returns [EObject current=null] : iv_ruleColumnDomain= ruleColumnDomain EOF ;
    public final EObject entryRuleColumnDomain() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleColumnDomain = null;


        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6995:2: (iv_ruleColumnDomain= ruleColumnDomain EOF )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:6996:2: iv_ruleColumnDomain= ruleColumnDomain EOF
            {
             newCompositeNode(grammarAccess.getColumnDomainRule()); 
            pushFollow(FOLLOW_ruleColumnDomain_in_entryRuleColumnDomain14655);
            iv_ruleColumnDomain=ruleColumnDomain();

            state._fsp--;

             current =iv_ruleColumnDomain; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleColumnDomain14665); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleColumnDomain"


    // $ANTLR start "ruleColumnDomain"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7003:1: ruleColumnDomain returns [EObject current=null] : (otherlv_0= 'define' otherlv_1= 'column' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) ( (lv_generatePk_4_0= ruleGeneratePk ) )? ( (lv_generateUk_5_0= ruleGenerateUk ) )? ( (lv_generateIndex_6_0= ruleGenerateIndex ) )? ( (lv_generateCc_7_0= ruleGenerateCc ) )? ( (lv_generateFk_8_0= ruleGenerateFk ) )? otherlv_9= '(' ( (lv_data_type_10_0= ruleDataType ) ) (otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')' )? ( (lv_unsigned_17_0= 'unsigned' ) )? (otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) ) )? ( (lv_identity_20_0= ruleColumnIdentity ) )? ( (lv_notnull_21_0= 'not' ) )? (otherlv_22= 'null' )* otherlv_23= ')' otherlv_24= ';' ) ;
    public final EObject ruleColumnDomain() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token lv_name_3_0=null;
        Token otherlv_9=null;
        Token otherlv_11=null;
        Token lv_precision_12_0=null;
        Token otherlv_13=null;
        Token lv_scale_14_0=null;
        Token otherlv_16=null;
        Token lv_unsigned_17_0=null;
        Token otherlv_18=null;
        Token lv_default_value_19_0=null;
        Token lv_notnull_21_0=null;
        Token otherlv_22=null;
        Token otherlv_23=null;
        Token otherlv_24=null;
        EObject lv_generatePk_4_0 = null;

        EObject lv_generateUk_5_0 = null;

        EObject lv_generateIndex_6_0 = null;

        EObject lv_generateCc_7_0 = null;

        EObject lv_generateFk_8_0 = null;

        Enumerator lv_data_type_10_0 = null;

        Enumerator lv_byteorchar_15_0 = null;

        EObject lv_identity_20_0 = null;


         enterRule(); 
            
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7006:28: ( (otherlv_0= 'define' otherlv_1= 'column' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) ( (lv_generatePk_4_0= ruleGeneratePk ) )? ( (lv_generateUk_5_0= ruleGenerateUk ) )? ( (lv_generateIndex_6_0= ruleGenerateIndex ) )? ( (lv_generateCc_7_0= ruleGenerateCc ) )? ( (lv_generateFk_8_0= ruleGenerateFk ) )? otherlv_9= '(' ( (lv_data_type_10_0= ruleDataType ) ) (otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')' )? ( (lv_unsigned_17_0= 'unsigned' ) )? (otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) ) )? ( (lv_identity_20_0= ruleColumnIdentity ) )? ( (lv_notnull_21_0= 'not' ) )? (otherlv_22= 'null' )* otherlv_23= ')' otherlv_24= ';' ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7007:1: (otherlv_0= 'define' otherlv_1= 'column' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) ( (lv_generatePk_4_0= ruleGeneratePk ) )? ( (lv_generateUk_5_0= ruleGenerateUk ) )? ( (lv_generateIndex_6_0= ruleGenerateIndex ) )? ( (lv_generateCc_7_0= ruleGenerateCc ) )? ( (lv_generateFk_8_0= ruleGenerateFk ) )? otherlv_9= '(' ( (lv_data_type_10_0= ruleDataType ) ) (otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')' )? ( (lv_unsigned_17_0= 'unsigned' ) )? (otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) ) )? ( (lv_identity_20_0= ruleColumnIdentity ) )? ( (lv_notnull_21_0= 'not' ) )? (otherlv_22= 'null' )* otherlv_23= ')' otherlv_24= ';' )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7007:1: (otherlv_0= 'define' otherlv_1= 'column' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) ( (lv_generatePk_4_0= ruleGeneratePk ) )? ( (lv_generateUk_5_0= ruleGenerateUk ) )? ( (lv_generateIndex_6_0= ruleGenerateIndex ) )? ( (lv_generateCc_7_0= ruleGenerateCc ) )? ( (lv_generateFk_8_0= ruleGenerateFk ) )? otherlv_9= '(' ( (lv_data_type_10_0= ruleDataType ) ) (otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')' )? ( (lv_unsigned_17_0= 'unsigned' ) )? (otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) ) )? ( (lv_identity_20_0= ruleColumnIdentity ) )? ( (lv_notnull_21_0= 'not' ) )? (otherlv_22= 'null' )* otherlv_23= ')' otherlv_24= ';' )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7007:3: otherlv_0= 'define' otherlv_1= 'column' otherlv_2= 'domain' ( (lv_name_3_0= RULE_DBNAME ) ) ( (lv_generatePk_4_0= ruleGeneratePk ) )? ( (lv_generateUk_5_0= ruleGenerateUk ) )? ( (lv_generateIndex_6_0= ruleGenerateIndex ) )? ( (lv_generateCc_7_0= ruleGenerateCc ) )? ( (lv_generateFk_8_0= ruleGenerateFk ) )? otherlv_9= '(' ( (lv_data_type_10_0= ruleDataType ) ) (otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')' )? ( (lv_unsigned_17_0= 'unsigned' ) )? (otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) ) )? ( (lv_identity_20_0= ruleColumnIdentity ) )? ( (lv_notnull_21_0= 'not' ) )? (otherlv_22= 'null' )* otherlv_23= ')' otherlv_24= ';'
            {
            otherlv_0=(Token)match(input,109,FOLLOW_109_in_ruleColumnDomain14702); 

                	newLeafNode(otherlv_0, grammarAccess.getColumnDomainAccess().getDefineKeyword_0());
                
            otherlv_1=(Token)match(input,100,FOLLOW_100_in_ruleColumnDomain14714); 

                	newLeafNode(otherlv_1, grammarAccess.getColumnDomainAccess().getColumnKeyword_1());
                
            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleColumnDomain14726); 

                	newLeafNode(otherlv_2, grammarAccess.getColumnDomainAccess().getDomainKeyword_2());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7019:1: ( (lv_name_3_0= RULE_DBNAME ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7020:1: (lv_name_3_0= RULE_DBNAME )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7020:1: (lv_name_3_0= RULE_DBNAME )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7021:3: lv_name_3_0= RULE_DBNAME
            {
            lv_name_3_0=(Token)match(input,RULE_DBNAME,FOLLOW_RULE_DBNAME_in_ruleColumnDomain14743); 

            			newLeafNode(lv_name_3_0, grammarAccess.getColumnDomainAccess().getNameDBNAMETerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getColumnDomainRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_3_0, 
                    		"DBNAME");
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7037:2: ( (lv_generatePk_4_0= ruleGeneratePk ) )?
            int alt233=2;
            int LA233_0 = input.LA(1);

            if ( (LA233_0==114) ) {
                alt233=1;
            }
            switch (alt233) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7038:1: (lv_generatePk_4_0= ruleGeneratePk )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7038:1: (lv_generatePk_4_0= ruleGeneratePk )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7039:3: lv_generatePk_4_0= ruleGeneratePk
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnDomainAccess().getGeneratePkGeneratePkParserRuleCall_4_0()); 
                    	    
                    pushFollow(FOLLOW_ruleGeneratePk_in_ruleColumnDomain14769);
                    lv_generatePk_4_0=ruleGeneratePk();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"generatePk",
                            		lv_generatePk_4_0, 
                            		"GeneratePk");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7055:3: ( (lv_generateUk_5_0= ruleGenerateUk ) )?
            int alt234=2;
            int LA234_0 = input.LA(1);

            if ( (LA234_0==117) ) {
                alt234=1;
            }
            switch (alt234) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7056:1: (lv_generateUk_5_0= ruleGenerateUk )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7056:1: (lv_generateUk_5_0= ruleGenerateUk )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7057:3: lv_generateUk_5_0= ruleGenerateUk
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnDomainAccess().getGenerateUkGenerateUkParserRuleCall_5_0()); 
                    	    
                    pushFollow(FOLLOW_ruleGenerateUk_in_ruleColumnDomain14791);
                    lv_generateUk_5_0=ruleGenerateUk();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"generateUk",
                            		lv_generateUk_5_0, 
                            		"GenerateUk");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7073:3: ( (lv_generateIndex_6_0= ruleGenerateIndex ) )?
            int alt235=2;
            int LA235_0 = input.LA(1);

            if ( (LA235_0==118) ) {
                alt235=1;
            }
            switch (alt235) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7074:1: (lv_generateIndex_6_0= ruleGenerateIndex )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7074:1: (lv_generateIndex_6_0= ruleGenerateIndex )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7075:3: lv_generateIndex_6_0= ruleGenerateIndex
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnDomainAccess().getGenerateIndexGenerateIndexParserRuleCall_6_0()); 
                    	    
                    pushFollow(FOLLOW_ruleGenerateIndex_in_ruleColumnDomain14813);
                    lv_generateIndex_6_0=ruleGenerateIndex();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"generateIndex",
                            		lv_generateIndex_6_0, 
                            		"GenerateIndex");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7091:3: ( (lv_generateCc_7_0= ruleGenerateCc ) )?
            int alt236=2;
            int LA236_0 = input.LA(1);

            if ( (LA236_0==120) ) {
                alt236=1;
            }
            switch (alt236) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7092:1: (lv_generateCc_7_0= ruleGenerateCc )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7092:1: (lv_generateCc_7_0= ruleGenerateCc )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7093:3: lv_generateCc_7_0= ruleGenerateCc
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnDomainAccess().getGenerateCcGenerateCcParserRuleCall_7_0()); 
                    	    
                    pushFollow(FOLLOW_ruleGenerateCc_in_ruleColumnDomain14835);
                    lv_generateCc_7_0=ruleGenerateCc();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"generateCc",
                            		lv_generateCc_7_0, 
                            		"GenerateCc");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7109:3: ( (lv_generateFk_8_0= ruleGenerateFk ) )?
            int alt237=2;
            int LA237_0 = input.LA(1);

            if ( (LA237_0==122) ) {
                alt237=1;
            }
            switch (alt237) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7110:1: (lv_generateFk_8_0= ruleGenerateFk )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7110:1: (lv_generateFk_8_0= ruleGenerateFk )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7111:3: lv_generateFk_8_0= ruleGenerateFk
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnDomainAccess().getGenerateFkGenerateFkParserRuleCall_8_0()); 
                    	    
                    pushFollow(FOLLOW_ruleGenerateFk_in_ruleColumnDomain14857);
                    lv_generateFk_8_0=ruleGenerateFk();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"generateFk",
                            		lv_generateFk_8_0, 
                            		"GenerateFk");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            otherlv_9=(Token)match(input,18,FOLLOW_18_in_ruleColumnDomain14870); 

                	newLeafNode(otherlv_9, grammarAccess.getColumnDomainAccess().getLeftParenthesisKeyword_9());
                
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7131:1: ( (lv_data_type_10_0= ruleDataType ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7132:1: (lv_data_type_10_0= ruleDataType )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7132:1: (lv_data_type_10_0= ruleDataType )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7133:3: lv_data_type_10_0= ruleDataType
            {
             
            	        newCompositeNode(grammarAccess.getColumnDomainAccess().getData_typeDataTypeEnumRuleCall_10_0()); 
            	    
            pushFollow(FOLLOW_ruleDataType_in_ruleColumnDomain14891);
            lv_data_type_10_0=ruleDataType();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
            	        }
                   		set(
                   			current, 
                   			"data_type",
                    		lv_data_type_10_0, 
                    		"DataType");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7149:2: (otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')' )?
            int alt240=2;
            int LA240_0 = input.LA(1);

            if ( (LA240_0==18) ) {
                alt240=1;
            }
            switch (alt240) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7149:4: otherlv_11= '(' ( (lv_precision_12_0= RULE_INT ) ) (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )? ( (lv_byteorchar_15_0= ruleCharType ) )? otherlv_16= ')'
                    {
                    otherlv_11=(Token)match(input,18,FOLLOW_18_in_ruleColumnDomain14904); 

                        	newLeafNode(otherlv_11, grammarAccess.getColumnDomainAccess().getLeftParenthesisKeyword_11_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7153:1: ( (lv_precision_12_0= RULE_INT ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7154:1: (lv_precision_12_0= RULE_INT )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7154:1: (lv_precision_12_0= RULE_INT )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7155:3: lv_precision_12_0= RULE_INT
                    {
                    lv_precision_12_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumnDomain14921); 

                    			newLeafNode(lv_precision_12_0, grammarAccess.getColumnDomainAccess().getPrecisionINTTerminalRuleCall_11_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnDomainRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"precision",
                            		lv_precision_12_0, 
                            		"INT");
                    	    

                    }


                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7171:2: (otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) ) )?
                    int alt238=2;
                    int LA238_0 = input.LA(1);

                    if ( (LA238_0==42) ) {
                        alt238=1;
                    }
                    switch (alt238) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7171:4: otherlv_13= ',' ( (lv_scale_14_0= RULE_INT ) )
                            {
                            otherlv_13=(Token)match(input,42,FOLLOW_42_in_ruleColumnDomain14939); 

                                	newLeafNode(otherlv_13, grammarAccess.getColumnDomainAccess().getCommaKeyword_11_2_0());
                                
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7175:1: ( (lv_scale_14_0= RULE_INT ) )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7176:1: (lv_scale_14_0= RULE_INT )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7176:1: (lv_scale_14_0= RULE_INT )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7177:3: lv_scale_14_0= RULE_INT
                            {
                            lv_scale_14_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColumnDomain14956); 

                            			newLeafNode(lv_scale_14_0, grammarAccess.getColumnDomainAccess().getScaleINTTerminalRuleCall_11_2_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getColumnDomainRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"scale",
                                    		lv_scale_14_0, 
                                    		"INT");
                            	    

                            }


                            }


                            }
                            break;

                    }

                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7193:4: ( (lv_byteorchar_15_0= ruleCharType ) )?
                    int alt239=2;
                    int LA239_0 = input.LA(1);

                    if ( (LA239_0==137||(LA239_0>=160 && LA239_0<=163)) ) {
                        alt239=1;
                    }
                    switch (alt239) {
                        case 1 :
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7194:1: (lv_byteorchar_15_0= ruleCharType )
                            {
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7194:1: (lv_byteorchar_15_0= ruleCharType )
                            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7195:3: lv_byteorchar_15_0= ruleCharType
                            {
                             
                            	        newCompositeNode(grammarAccess.getColumnDomainAccess().getByteorcharCharTypeEnumRuleCall_11_3_0()); 
                            	    
                            pushFollow(FOLLOW_ruleCharType_in_ruleColumnDomain14984);
                            lv_byteorchar_15_0=ruleCharType();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                            	        }
                                   		set(
                                   			current, 
                                   			"byteorchar",
                                    		lv_byteorchar_15_0, 
                                    		"CharType");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }
                            break;

                    }

                    otherlv_16=(Token)match(input,19,FOLLOW_19_in_ruleColumnDomain14997); 

                        	newLeafNode(otherlv_16, grammarAccess.getColumnDomainAccess().getRightParenthesisKeyword_11_4());
                        

                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7215:3: ( (lv_unsigned_17_0= 'unsigned' ) )?
            int alt241=2;
            int LA241_0 = input.LA(1);

            if ( (LA241_0==51) ) {
                alt241=1;
            }
            switch (alt241) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7216:1: (lv_unsigned_17_0= 'unsigned' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7216:1: (lv_unsigned_17_0= 'unsigned' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7217:3: lv_unsigned_17_0= 'unsigned'
                    {
                    lv_unsigned_17_0=(Token)match(input,51,FOLLOW_51_in_ruleColumnDomain15017); 

                            newLeafNode(lv_unsigned_17_0, grammarAccess.getColumnDomainAccess().getUnsignedUnsignedKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnDomainRule());
                    	        }
                           		setWithLastConsumed(current, "unsigned", true, "unsigned");
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7230:3: (otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) ) )?
            int alt242=2;
            int LA242_0 = input.LA(1);

            if ( (LA242_0==45) ) {
                alt242=1;
            }
            switch (alt242) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7230:5: otherlv_18= 'default' ( (lv_default_value_19_0= RULE_STRING ) )
                    {
                    otherlv_18=(Token)match(input,45,FOLLOW_45_in_ruleColumnDomain15044); 

                        	newLeafNode(otherlv_18, grammarAccess.getColumnDomainAccess().getDefaultKeyword_13_0());
                        
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7234:1: ( (lv_default_value_19_0= RULE_STRING ) )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7235:1: (lv_default_value_19_0= RULE_STRING )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7235:1: (lv_default_value_19_0= RULE_STRING )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7236:3: lv_default_value_19_0= RULE_STRING
                    {
                    lv_default_value_19_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColumnDomain15061); 

                    			newLeafNode(lv_default_value_19_0, grammarAccess.getColumnDomainAccess().getDefault_valueSTRINGTerminalRuleCall_13_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnDomainRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"default_value",
                            		lv_default_value_19_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7252:4: ( (lv_identity_20_0= ruleColumnIdentity ) )?
            int alt243=2;
            int LA243_0 = input.LA(1);

            if ( (LA243_0==80) ) {
                alt243=1;
            }
            switch (alt243) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7253:1: (lv_identity_20_0= ruleColumnIdentity )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7253:1: (lv_identity_20_0= ruleColumnIdentity )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7254:3: lv_identity_20_0= ruleColumnIdentity
                    {
                     
                    	        newCompositeNode(grammarAccess.getColumnDomainAccess().getIdentityColumnIdentityParserRuleCall_14_0()); 
                    	    
                    pushFollow(FOLLOW_ruleColumnIdentity_in_ruleColumnDomain15089);
                    lv_identity_20_0=ruleColumnIdentity();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getColumnDomainRule());
                    	        }
                           		set(
                           			current, 
                           			"identity",
                            		lv_identity_20_0, 
                            		"ColumnIdentity");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7270:3: ( (lv_notnull_21_0= 'not' ) )?
            int alt244=2;
            int LA244_0 = input.LA(1);

            if ( (LA244_0==57) ) {
                alt244=1;
            }
            switch (alt244) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7271:1: (lv_notnull_21_0= 'not' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7271:1: (lv_notnull_21_0= 'not' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7272:3: lv_notnull_21_0= 'not'
                    {
                    lv_notnull_21_0=(Token)match(input,57,FOLLOW_57_in_ruleColumnDomain15108); 

                            newLeafNode(lv_notnull_21_0, grammarAccess.getColumnDomainAccess().getNotnullNotKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getColumnDomainRule());
                    	        }
                           		setWithLastConsumed(current, "notnull", true, "not");
                    	    

                    }


                    }
                    break;

            }

            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7285:3: (otherlv_22= 'null' )*
            loop245:
            do {
                int alt245=2;
                int LA245_0 = input.LA(1);

                if ( (LA245_0==58) ) {
                    alt245=1;
                }


                switch (alt245) {
            	case 1 :
            	    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7285:5: otherlv_22= 'null'
            	    {
            	    otherlv_22=(Token)match(input,58,FOLLOW_58_in_ruleColumnDomain15135); 

            	        	newLeafNode(otherlv_22, grammarAccess.getColumnDomainAccess().getNullKeyword_16());
            	        

            	    }
            	    break;

            	default :
            	    break loop245;
                }
            } while (true);

            otherlv_23=(Token)match(input,19,FOLLOW_19_in_ruleColumnDomain15149); 

                	newLeafNode(otherlv_23, grammarAccess.getColumnDomainAccess().getRightParenthesisKeyword_17());
                
            otherlv_24=(Token)match(input,31,FOLLOW_31_in_ruleColumnDomain15161); 

                	newLeafNode(otherlv_24, grammarAccess.getColumnDomainAccess().getSemicolonKeyword_18());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleColumnDomain"


    // $ANTLR start "ruleLobStorageType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7305:1: ruleLobStorageType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_LobStorageType' ) | (enumLiteral_1= 'basicfile' ) | (enumLiteral_2= 'securefile' ) ) ;
    public final Enumerator ruleLobStorageType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7307:28: ( ( (enumLiteral_0= 'null_LobStorageType' ) | (enumLiteral_1= 'basicfile' ) | (enumLiteral_2= 'securefile' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7308:1: ( (enumLiteral_0= 'null_LobStorageType' ) | (enumLiteral_1= 'basicfile' ) | (enumLiteral_2= 'securefile' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7308:1: ( (enumLiteral_0= 'null_LobStorageType' ) | (enumLiteral_1= 'basicfile' ) | (enumLiteral_2= 'securefile' ) )
            int alt246=3;
            switch ( input.LA(1) ) {
            case 124:
                {
                alt246=1;
                }
                break;
            case 125:
                {
                alt246=2;
                }
                break;
            case 126:
                {
                alt246=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 246, 0, input);

                throw nvae;
            }

            switch (alt246) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7308:2: (enumLiteral_0= 'null_LobStorageType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7308:2: (enumLiteral_0= 'null_LobStorageType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7308:4: enumLiteral_0= 'null_LobStorageType'
                    {
                    enumLiteral_0=(Token)match(input,124,FOLLOW_124_in_ruleLobStorageType15211); 

                            current = grammarAccess.getLobStorageTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getLobStorageTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7314:6: (enumLiteral_1= 'basicfile' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7314:6: (enumLiteral_1= 'basicfile' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7314:8: enumLiteral_1= 'basicfile'
                    {
                    enumLiteral_1=(Token)match(input,125,FOLLOW_125_in_ruleLobStorageType15228); 

                            current = grammarAccess.getLobStorageTypeAccess().getBasicfileEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getLobStorageTypeAccess().getBasicfileEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7320:6: (enumLiteral_2= 'securefile' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7320:6: (enumLiteral_2= 'securefile' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7320:8: enumLiteral_2= 'securefile'
                    {
                    enumLiteral_2=(Token)match(input,126,FOLLOW_126_in_ruleLobStorageType15245); 

                            current = grammarAccess.getLobStorageTypeAccess().getSecurefileEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getLobStorageTypeAccess().getSecurefileEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleLobStorageType"


    // $ANTLR start "ruleLobDeduplicateType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7330:1: ruleLobDeduplicateType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_LobDeduplicateType' ) | (enumLiteral_1= 'deduplicate' ) | (enumLiteral_2= 'keep_duplicates' ) ) ;
    public final Enumerator ruleLobDeduplicateType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7332:28: ( ( (enumLiteral_0= 'null_LobDeduplicateType' ) | (enumLiteral_1= 'deduplicate' ) | (enumLiteral_2= 'keep_duplicates' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7333:1: ( (enumLiteral_0= 'null_LobDeduplicateType' ) | (enumLiteral_1= 'deduplicate' ) | (enumLiteral_2= 'keep_duplicates' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7333:1: ( (enumLiteral_0= 'null_LobDeduplicateType' ) | (enumLiteral_1= 'deduplicate' ) | (enumLiteral_2= 'keep_duplicates' ) )
            int alt247=3;
            switch ( input.LA(1) ) {
            case 127:
                {
                alt247=1;
                }
                break;
            case 128:
                {
                alt247=2;
                }
                break;
            case 129:
                {
                alt247=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 247, 0, input);

                throw nvae;
            }

            switch (alt247) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7333:2: (enumLiteral_0= 'null_LobDeduplicateType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7333:2: (enumLiteral_0= 'null_LobDeduplicateType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7333:4: enumLiteral_0= 'null_LobDeduplicateType'
                    {
                    enumLiteral_0=(Token)match(input,127,FOLLOW_127_in_ruleLobDeduplicateType15290); 

                            current = grammarAccess.getLobDeduplicateTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getLobDeduplicateTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7339:6: (enumLiteral_1= 'deduplicate' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7339:6: (enumLiteral_1= 'deduplicate' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7339:8: enumLiteral_1= 'deduplicate'
                    {
                    enumLiteral_1=(Token)match(input,128,FOLLOW_128_in_ruleLobDeduplicateType15307); 

                            current = grammarAccess.getLobDeduplicateTypeAccess().getDeduplicateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getLobDeduplicateTypeAccess().getDeduplicateEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7345:6: (enumLiteral_2= 'keep_duplicates' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7345:6: (enumLiteral_2= 'keep_duplicates' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7345:8: enumLiteral_2= 'keep_duplicates'
                    {
                    enumLiteral_2=(Token)match(input,129,FOLLOW_129_in_ruleLobDeduplicateType15324); 

                            current = grammarAccess.getLobDeduplicateTypeAccess().getKeep_duplicatesEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getLobDeduplicateTypeAccess().getKeep_duplicatesEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleLobDeduplicateType"


    // $ANTLR start "ruleDataType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7355:1: ruleDataType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_DataType' ) | (enumLiteral_1= 'number' ) | (enumLiteral_2= 'blob' ) | (enumLiteral_3= 'clob' ) | (enumLiteral_4= 'nclob' ) | (enumLiteral_5= 'varchar2' ) | (enumLiteral_6= 'nvarchar2' ) | (enumLiteral_7= 'char' ) | (enumLiteral_8= 'date' ) | (enumLiteral_9= 'xmltype' ) | (enumLiteral_10= 'timestamp' ) | (enumLiteral_11= 'rowid' ) | (enumLiteral_12= 'raw' ) | (enumLiteral_13= 'long_raw' ) | (enumLiteral_14= 'float' ) | (enumLiteral_15= 'long' ) | (enumLiteral_16= 'object' ) | (enumLiteral_17= 'tinyint' ) | (enumLiteral_18= 'smallint' ) | (enumLiteral_19= 'mediumint' ) | (enumLiteral_20= 'int' ) | (enumLiteral_21= 'bigint' ) | (enumLiteral_22= 'bit' ) | (enumLiteral_23= 'urowid' ) | (enumLiteral_24= 'boolean' ) ) ;
    public final Enumerator ruleDataType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;
        Token enumLiteral_4=null;
        Token enumLiteral_5=null;
        Token enumLiteral_6=null;
        Token enumLiteral_7=null;
        Token enumLiteral_8=null;
        Token enumLiteral_9=null;
        Token enumLiteral_10=null;
        Token enumLiteral_11=null;
        Token enumLiteral_12=null;
        Token enumLiteral_13=null;
        Token enumLiteral_14=null;
        Token enumLiteral_15=null;
        Token enumLiteral_16=null;
        Token enumLiteral_17=null;
        Token enumLiteral_18=null;
        Token enumLiteral_19=null;
        Token enumLiteral_20=null;
        Token enumLiteral_21=null;
        Token enumLiteral_22=null;
        Token enumLiteral_23=null;
        Token enumLiteral_24=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7357:28: ( ( (enumLiteral_0= 'null_DataType' ) | (enumLiteral_1= 'number' ) | (enumLiteral_2= 'blob' ) | (enumLiteral_3= 'clob' ) | (enumLiteral_4= 'nclob' ) | (enumLiteral_5= 'varchar2' ) | (enumLiteral_6= 'nvarchar2' ) | (enumLiteral_7= 'char' ) | (enumLiteral_8= 'date' ) | (enumLiteral_9= 'xmltype' ) | (enumLiteral_10= 'timestamp' ) | (enumLiteral_11= 'rowid' ) | (enumLiteral_12= 'raw' ) | (enumLiteral_13= 'long_raw' ) | (enumLiteral_14= 'float' ) | (enumLiteral_15= 'long' ) | (enumLiteral_16= 'object' ) | (enumLiteral_17= 'tinyint' ) | (enumLiteral_18= 'smallint' ) | (enumLiteral_19= 'mediumint' ) | (enumLiteral_20= 'int' ) | (enumLiteral_21= 'bigint' ) | (enumLiteral_22= 'bit' ) | (enumLiteral_23= 'urowid' ) | (enumLiteral_24= 'boolean' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7358:1: ( (enumLiteral_0= 'null_DataType' ) | (enumLiteral_1= 'number' ) | (enumLiteral_2= 'blob' ) | (enumLiteral_3= 'clob' ) | (enumLiteral_4= 'nclob' ) | (enumLiteral_5= 'varchar2' ) | (enumLiteral_6= 'nvarchar2' ) | (enumLiteral_7= 'char' ) | (enumLiteral_8= 'date' ) | (enumLiteral_9= 'xmltype' ) | (enumLiteral_10= 'timestamp' ) | (enumLiteral_11= 'rowid' ) | (enumLiteral_12= 'raw' ) | (enumLiteral_13= 'long_raw' ) | (enumLiteral_14= 'float' ) | (enumLiteral_15= 'long' ) | (enumLiteral_16= 'object' ) | (enumLiteral_17= 'tinyint' ) | (enumLiteral_18= 'smallint' ) | (enumLiteral_19= 'mediumint' ) | (enumLiteral_20= 'int' ) | (enumLiteral_21= 'bigint' ) | (enumLiteral_22= 'bit' ) | (enumLiteral_23= 'urowid' ) | (enumLiteral_24= 'boolean' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7358:1: ( (enumLiteral_0= 'null_DataType' ) | (enumLiteral_1= 'number' ) | (enumLiteral_2= 'blob' ) | (enumLiteral_3= 'clob' ) | (enumLiteral_4= 'nclob' ) | (enumLiteral_5= 'varchar2' ) | (enumLiteral_6= 'nvarchar2' ) | (enumLiteral_7= 'char' ) | (enumLiteral_8= 'date' ) | (enumLiteral_9= 'xmltype' ) | (enumLiteral_10= 'timestamp' ) | (enumLiteral_11= 'rowid' ) | (enumLiteral_12= 'raw' ) | (enumLiteral_13= 'long_raw' ) | (enumLiteral_14= 'float' ) | (enumLiteral_15= 'long' ) | (enumLiteral_16= 'object' ) | (enumLiteral_17= 'tinyint' ) | (enumLiteral_18= 'smallint' ) | (enumLiteral_19= 'mediumint' ) | (enumLiteral_20= 'int' ) | (enumLiteral_21= 'bigint' ) | (enumLiteral_22= 'bit' ) | (enumLiteral_23= 'urowid' ) | (enumLiteral_24= 'boolean' ) )
            int alt248=25;
            switch ( input.LA(1) ) {
            case 130:
                {
                alt248=1;
                }
                break;
            case 131:
                {
                alt248=2;
                }
                break;
            case 132:
                {
                alt248=3;
                }
                break;
            case 133:
                {
                alt248=4;
                }
                break;
            case 134:
                {
                alt248=5;
                }
                break;
            case 135:
                {
                alt248=6;
                }
                break;
            case 136:
                {
                alt248=7;
                }
                break;
            case 137:
                {
                alt248=8;
                }
                break;
            case 138:
                {
                alt248=9;
                }
                break;
            case 139:
                {
                alt248=10;
                }
                break;
            case 140:
                {
                alt248=11;
                }
                break;
            case 85:
                {
                alt248=12;
                }
                break;
            case 141:
                {
                alt248=13;
                }
                break;
            case 142:
                {
                alt248=14;
                }
                break;
            case 143:
                {
                alt248=15;
                }
                break;
            case 144:
                {
                alt248=16;
                }
                break;
            case 145:
                {
                alt248=17;
                }
                break;
            case 146:
                {
                alt248=18;
                }
                break;
            case 147:
                {
                alt248=19;
                }
                break;
            case 148:
                {
                alt248=20;
                }
                break;
            case 149:
                {
                alt248=21;
                }
                break;
            case 150:
                {
                alt248=22;
                }
                break;
            case 151:
                {
                alt248=23;
                }
                break;
            case 152:
                {
                alt248=24;
                }
                break;
            case 153:
                {
                alt248=25;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 248, 0, input);

                throw nvae;
            }

            switch (alt248) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7358:2: (enumLiteral_0= 'null_DataType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7358:2: (enumLiteral_0= 'null_DataType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7358:4: enumLiteral_0= 'null_DataType'
                    {
                    enumLiteral_0=(Token)match(input,130,FOLLOW_130_in_ruleDataType15369); 

                            current = grammarAccess.getDataTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getDataTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7364:6: (enumLiteral_1= 'number' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7364:6: (enumLiteral_1= 'number' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7364:8: enumLiteral_1= 'number'
                    {
                    enumLiteral_1=(Token)match(input,131,FOLLOW_131_in_ruleDataType15386); 

                            current = grammarAccess.getDataTypeAccess().getNumberEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getDataTypeAccess().getNumberEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7370:6: (enumLiteral_2= 'blob' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7370:6: (enumLiteral_2= 'blob' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7370:8: enumLiteral_2= 'blob'
                    {
                    enumLiteral_2=(Token)match(input,132,FOLLOW_132_in_ruleDataType15403); 

                            current = grammarAccess.getDataTypeAccess().getBlobEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getDataTypeAccess().getBlobEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7376:6: (enumLiteral_3= 'clob' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7376:6: (enumLiteral_3= 'clob' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7376:8: enumLiteral_3= 'clob'
                    {
                    enumLiteral_3=(Token)match(input,133,FOLLOW_133_in_ruleDataType15420); 

                            current = grammarAccess.getDataTypeAccess().getClobEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getDataTypeAccess().getClobEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;
                case 5 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7382:6: (enumLiteral_4= 'nclob' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7382:6: (enumLiteral_4= 'nclob' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7382:8: enumLiteral_4= 'nclob'
                    {
                    enumLiteral_4=(Token)match(input,134,FOLLOW_134_in_ruleDataType15437); 

                            current = grammarAccess.getDataTypeAccess().getNclobEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_4, grammarAccess.getDataTypeAccess().getNclobEnumLiteralDeclaration_4()); 
                        

                    }


                    }
                    break;
                case 6 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7388:6: (enumLiteral_5= 'varchar2' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7388:6: (enumLiteral_5= 'varchar2' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7388:8: enumLiteral_5= 'varchar2'
                    {
                    enumLiteral_5=(Token)match(input,135,FOLLOW_135_in_ruleDataType15454); 

                            current = grammarAccess.getDataTypeAccess().getVarchar2EnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_5, grammarAccess.getDataTypeAccess().getVarchar2EnumLiteralDeclaration_5()); 
                        

                    }


                    }
                    break;
                case 7 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7394:6: (enumLiteral_6= 'nvarchar2' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7394:6: (enumLiteral_6= 'nvarchar2' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7394:8: enumLiteral_6= 'nvarchar2'
                    {
                    enumLiteral_6=(Token)match(input,136,FOLLOW_136_in_ruleDataType15471); 

                            current = grammarAccess.getDataTypeAccess().getNvarchar2EnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_6, grammarAccess.getDataTypeAccess().getNvarchar2EnumLiteralDeclaration_6()); 
                        

                    }


                    }
                    break;
                case 8 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7400:6: (enumLiteral_7= 'char' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7400:6: (enumLiteral_7= 'char' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7400:8: enumLiteral_7= 'char'
                    {
                    enumLiteral_7=(Token)match(input,137,FOLLOW_137_in_ruleDataType15488); 

                            current = grammarAccess.getDataTypeAccess().getCharEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_7, grammarAccess.getDataTypeAccess().getCharEnumLiteralDeclaration_7()); 
                        

                    }


                    }
                    break;
                case 9 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7406:6: (enumLiteral_8= 'date' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7406:6: (enumLiteral_8= 'date' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7406:8: enumLiteral_8= 'date'
                    {
                    enumLiteral_8=(Token)match(input,138,FOLLOW_138_in_ruleDataType15505); 

                            current = grammarAccess.getDataTypeAccess().getDateEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_8, grammarAccess.getDataTypeAccess().getDateEnumLiteralDeclaration_8()); 
                        

                    }


                    }
                    break;
                case 10 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7412:6: (enumLiteral_9= 'xmltype' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7412:6: (enumLiteral_9= 'xmltype' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7412:8: enumLiteral_9= 'xmltype'
                    {
                    enumLiteral_9=(Token)match(input,139,FOLLOW_139_in_ruleDataType15522); 

                            current = grammarAccess.getDataTypeAccess().getXmltypeEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_9, grammarAccess.getDataTypeAccess().getXmltypeEnumLiteralDeclaration_9()); 
                        

                    }


                    }
                    break;
                case 11 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7418:6: (enumLiteral_10= 'timestamp' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7418:6: (enumLiteral_10= 'timestamp' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7418:8: enumLiteral_10= 'timestamp'
                    {
                    enumLiteral_10=(Token)match(input,140,FOLLOW_140_in_ruleDataType15539); 

                            current = grammarAccess.getDataTypeAccess().getTimestampEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_10, grammarAccess.getDataTypeAccess().getTimestampEnumLiteralDeclaration_10()); 
                        

                    }


                    }
                    break;
                case 12 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7424:6: (enumLiteral_11= 'rowid' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7424:6: (enumLiteral_11= 'rowid' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7424:8: enumLiteral_11= 'rowid'
                    {
                    enumLiteral_11=(Token)match(input,85,FOLLOW_85_in_ruleDataType15556); 

                            current = grammarAccess.getDataTypeAccess().getRowidEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_11, grammarAccess.getDataTypeAccess().getRowidEnumLiteralDeclaration_11()); 
                        

                    }


                    }
                    break;
                case 13 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7430:6: (enumLiteral_12= 'raw' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7430:6: (enumLiteral_12= 'raw' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7430:8: enumLiteral_12= 'raw'
                    {
                    enumLiteral_12=(Token)match(input,141,FOLLOW_141_in_ruleDataType15573); 

                            current = grammarAccess.getDataTypeAccess().getRawEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_12, grammarAccess.getDataTypeAccess().getRawEnumLiteralDeclaration_12()); 
                        

                    }


                    }
                    break;
                case 14 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7436:6: (enumLiteral_13= 'long_raw' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7436:6: (enumLiteral_13= 'long_raw' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7436:8: enumLiteral_13= 'long_raw'
                    {
                    enumLiteral_13=(Token)match(input,142,FOLLOW_142_in_ruleDataType15590); 

                            current = grammarAccess.getDataTypeAccess().getLong_rawEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_13, grammarAccess.getDataTypeAccess().getLong_rawEnumLiteralDeclaration_13()); 
                        

                    }


                    }
                    break;
                case 15 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7442:6: (enumLiteral_14= 'float' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7442:6: (enumLiteral_14= 'float' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7442:8: enumLiteral_14= 'float'
                    {
                    enumLiteral_14=(Token)match(input,143,FOLLOW_143_in_ruleDataType15607); 

                            current = grammarAccess.getDataTypeAccess().getFloatEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_14, grammarAccess.getDataTypeAccess().getFloatEnumLiteralDeclaration_14()); 
                        

                    }


                    }
                    break;
                case 16 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7448:6: (enumLiteral_15= 'long' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7448:6: (enumLiteral_15= 'long' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7448:8: enumLiteral_15= 'long'
                    {
                    enumLiteral_15=(Token)match(input,144,FOLLOW_144_in_ruleDataType15624); 

                            current = grammarAccess.getDataTypeAccess().getLongEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_15, grammarAccess.getDataTypeAccess().getLongEnumLiteralDeclaration_15()); 
                        

                    }


                    }
                    break;
                case 17 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7454:6: (enumLiteral_16= 'object' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7454:6: (enumLiteral_16= 'object' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7454:8: enumLiteral_16= 'object'
                    {
                    enumLiteral_16=(Token)match(input,145,FOLLOW_145_in_ruleDataType15641); 

                            current = grammarAccess.getDataTypeAccess().getObjectEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_16, grammarAccess.getDataTypeAccess().getObjectEnumLiteralDeclaration_16()); 
                        

                    }


                    }
                    break;
                case 18 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7460:6: (enumLiteral_17= 'tinyint' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7460:6: (enumLiteral_17= 'tinyint' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7460:8: enumLiteral_17= 'tinyint'
                    {
                    enumLiteral_17=(Token)match(input,146,FOLLOW_146_in_ruleDataType15658); 

                            current = grammarAccess.getDataTypeAccess().getTinyintEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_17, grammarAccess.getDataTypeAccess().getTinyintEnumLiteralDeclaration_17()); 
                        

                    }


                    }
                    break;
                case 19 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7466:6: (enumLiteral_18= 'smallint' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7466:6: (enumLiteral_18= 'smallint' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7466:8: enumLiteral_18= 'smallint'
                    {
                    enumLiteral_18=(Token)match(input,147,FOLLOW_147_in_ruleDataType15675); 

                            current = grammarAccess.getDataTypeAccess().getSmallintEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_18, grammarAccess.getDataTypeAccess().getSmallintEnumLiteralDeclaration_18()); 
                        

                    }


                    }
                    break;
                case 20 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7472:6: (enumLiteral_19= 'mediumint' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7472:6: (enumLiteral_19= 'mediumint' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7472:8: enumLiteral_19= 'mediumint'
                    {
                    enumLiteral_19=(Token)match(input,148,FOLLOW_148_in_ruleDataType15692); 

                            current = grammarAccess.getDataTypeAccess().getMediumintEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_19, grammarAccess.getDataTypeAccess().getMediumintEnumLiteralDeclaration_19()); 
                        

                    }


                    }
                    break;
                case 21 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7478:6: (enumLiteral_20= 'int' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7478:6: (enumLiteral_20= 'int' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7478:8: enumLiteral_20= 'int'
                    {
                    enumLiteral_20=(Token)match(input,149,FOLLOW_149_in_ruleDataType15709); 

                            current = grammarAccess.getDataTypeAccess().getIntEnumLiteralDeclaration_20().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_20, grammarAccess.getDataTypeAccess().getIntEnumLiteralDeclaration_20()); 
                        

                    }


                    }
                    break;
                case 22 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7484:6: (enumLiteral_21= 'bigint' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7484:6: (enumLiteral_21= 'bigint' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7484:8: enumLiteral_21= 'bigint'
                    {
                    enumLiteral_21=(Token)match(input,150,FOLLOW_150_in_ruleDataType15726); 

                            current = grammarAccess.getDataTypeAccess().getBigintEnumLiteralDeclaration_21().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_21, grammarAccess.getDataTypeAccess().getBigintEnumLiteralDeclaration_21()); 
                        

                    }


                    }
                    break;
                case 23 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7490:6: (enumLiteral_22= 'bit' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7490:6: (enumLiteral_22= 'bit' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7490:8: enumLiteral_22= 'bit'
                    {
                    enumLiteral_22=(Token)match(input,151,FOLLOW_151_in_ruleDataType15743); 

                            current = grammarAccess.getDataTypeAccess().getBitEnumLiteralDeclaration_22().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_22, grammarAccess.getDataTypeAccess().getBitEnumLiteralDeclaration_22()); 
                        

                    }


                    }
                    break;
                case 24 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7496:6: (enumLiteral_23= 'urowid' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7496:6: (enumLiteral_23= 'urowid' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7496:8: enumLiteral_23= 'urowid'
                    {
                    enumLiteral_23=(Token)match(input,152,FOLLOW_152_in_ruleDataType15760); 

                            current = grammarAccess.getDataTypeAccess().getUrowidEnumLiteralDeclaration_23().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_23, grammarAccess.getDataTypeAccess().getUrowidEnumLiteralDeclaration_23()); 
                        

                    }


                    }
                    break;
                case 25 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7502:6: (enumLiteral_24= 'boolean' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7502:6: (enumLiteral_24= 'boolean' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7502:8: enumLiteral_24= 'boolean'
                    {
                    enumLiteral_24=(Token)match(input,153,FOLLOW_153_in_ruleDataType15777); 

                            current = grammarAccess.getDataTypeAccess().getBooleanEnumLiteralDeclaration_24().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_24, grammarAccess.getDataTypeAccess().getBooleanEnumLiteralDeclaration_24()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDataType"


    // $ANTLR start "ruleFkDeleteRuleType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7512:1: ruleFkDeleteRuleType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_FkDeleteRuleType' ) | (enumLiteral_1= 'cascade' ) | (enumLiteral_2= 'no_action' ) | (enumLiteral_3= 'set_null' ) ) ;
    public final Enumerator ruleFkDeleteRuleType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7514:28: ( ( (enumLiteral_0= 'null_FkDeleteRuleType' ) | (enumLiteral_1= 'cascade' ) | (enumLiteral_2= 'no_action' ) | (enumLiteral_3= 'set_null' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7515:1: ( (enumLiteral_0= 'null_FkDeleteRuleType' ) | (enumLiteral_1= 'cascade' ) | (enumLiteral_2= 'no_action' ) | (enumLiteral_3= 'set_null' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7515:1: ( (enumLiteral_0= 'null_FkDeleteRuleType' ) | (enumLiteral_1= 'cascade' ) | (enumLiteral_2= 'no_action' ) | (enumLiteral_3= 'set_null' ) )
            int alt249=4;
            switch ( input.LA(1) ) {
            case 154:
                {
                alt249=1;
                }
                break;
            case 155:
                {
                alt249=2;
                }
                break;
            case 156:
                {
                alt249=3;
                }
                break;
            case 157:
                {
                alt249=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 249, 0, input);

                throw nvae;
            }

            switch (alt249) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7515:2: (enumLiteral_0= 'null_FkDeleteRuleType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7515:2: (enumLiteral_0= 'null_FkDeleteRuleType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7515:4: enumLiteral_0= 'null_FkDeleteRuleType'
                    {
                    enumLiteral_0=(Token)match(input,154,FOLLOW_154_in_ruleFkDeleteRuleType15822); 

                            current = grammarAccess.getFkDeleteRuleTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getFkDeleteRuleTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7521:6: (enumLiteral_1= 'cascade' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7521:6: (enumLiteral_1= 'cascade' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7521:8: enumLiteral_1= 'cascade'
                    {
                    enumLiteral_1=(Token)match(input,155,FOLLOW_155_in_ruleFkDeleteRuleType15839); 

                            current = grammarAccess.getFkDeleteRuleTypeAccess().getCascadeEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getFkDeleteRuleTypeAccess().getCascadeEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7527:6: (enumLiteral_2= 'no_action' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7527:6: (enumLiteral_2= 'no_action' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7527:8: enumLiteral_2= 'no_action'
                    {
                    enumLiteral_2=(Token)match(input,156,FOLLOW_156_in_ruleFkDeleteRuleType15856); 

                            current = grammarAccess.getFkDeleteRuleTypeAccess().getNo_actionEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getFkDeleteRuleTypeAccess().getNo_actionEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7533:6: (enumLiteral_3= 'set_null' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7533:6: (enumLiteral_3= 'set_null' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7533:8: enumLiteral_3= 'set_null'
                    {
                    enumLiteral_3=(Token)match(input,157,FOLLOW_157_in_ruleFkDeleteRuleType15873); 

                            current = grammarAccess.getFkDeleteRuleTypeAccess().getSet_nullEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getFkDeleteRuleTypeAccess().getSet_nullEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFkDeleteRuleType"


    // $ANTLR start "ruleDeferrType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7543:1: ruleDeferrType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_DeferrType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) ) ;
    public final Enumerator ruleDeferrType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7545:28: ( ( (enumLiteral_0= 'null_DeferrType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7546:1: ( (enumLiteral_0= 'null_DeferrType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7546:1: ( (enumLiteral_0= 'null_DeferrType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) )
            int alt250=3;
            switch ( input.LA(1) ) {
            case 158:
                {
                alt250=1;
                }
                break;
            case 92:
                {
                alt250=2;
                }
                break;
            case 159:
                {
                alt250=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 250, 0, input);

                throw nvae;
            }

            switch (alt250) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7546:2: (enumLiteral_0= 'null_DeferrType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7546:2: (enumLiteral_0= 'null_DeferrType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7546:4: enumLiteral_0= 'null_DeferrType'
                    {
                    enumLiteral_0=(Token)match(input,158,FOLLOW_158_in_ruleDeferrType15918); 

                            current = grammarAccess.getDeferrTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getDeferrTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7552:6: (enumLiteral_1= 'immediate' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7552:6: (enumLiteral_1= 'immediate' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7552:8: enumLiteral_1= 'immediate'
                    {
                    enumLiteral_1=(Token)match(input,92,FOLLOW_92_in_ruleDeferrType15935); 

                            current = grammarAccess.getDeferrTypeAccess().getImmediateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getDeferrTypeAccess().getImmediateEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7558:6: (enumLiteral_2= 'deferred' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7558:6: (enumLiteral_2= 'deferred' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7558:8: enumLiteral_2= 'deferred'
                    {
                    enumLiteral_2=(Token)match(input,159,FOLLOW_159_in_ruleDeferrType15952); 

                            current = grammarAccess.getDeferrTypeAccess().getDeferredEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getDeferrTypeAccess().getDeferredEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDeferrType"


    // $ANTLR start "ruleCharType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7568:1: ruleCharType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_CharType' ) | (enumLiteral_1= 'BYTE' ) | (enumLiteral_2= 'CHAR' ) | (enumLiteral_3= 'byte' ) | (enumLiteral_4= 'char' ) ) ;
    public final Enumerator ruleCharType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;
        Token enumLiteral_4=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7570:28: ( ( (enumLiteral_0= 'null_CharType' ) | (enumLiteral_1= 'BYTE' ) | (enumLiteral_2= 'CHAR' ) | (enumLiteral_3= 'byte' ) | (enumLiteral_4= 'char' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7571:1: ( (enumLiteral_0= 'null_CharType' ) | (enumLiteral_1= 'BYTE' ) | (enumLiteral_2= 'CHAR' ) | (enumLiteral_3= 'byte' ) | (enumLiteral_4= 'char' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7571:1: ( (enumLiteral_0= 'null_CharType' ) | (enumLiteral_1= 'BYTE' ) | (enumLiteral_2= 'CHAR' ) | (enumLiteral_3= 'byte' ) | (enumLiteral_4= 'char' ) )
            int alt251=5;
            switch ( input.LA(1) ) {
            case 160:
                {
                alt251=1;
                }
                break;
            case 161:
                {
                alt251=2;
                }
                break;
            case 162:
                {
                alt251=3;
                }
                break;
            case 163:
                {
                alt251=4;
                }
                break;
            case 137:
                {
                alt251=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 251, 0, input);

                throw nvae;
            }

            switch (alt251) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7571:2: (enumLiteral_0= 'null_CharType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7571:2: (enumLiteral_0= 'null_CharType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7571:4: enumLiteral_0= 'null_CharType'
                    {
                    enumLiteral_0=(Token)match(input,160,FOLLOW_160_in_ruleCharType15997); 

                            current = grammarAccess.getCharTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getCharTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7577:6: (enumLiteral_1= 'BYTE' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7577:6: (enumLiteral_1= 'BYTE' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7577:8: enumLiteral_1= 'BYTE'
                    {
                    enumLiteral_1=(Token)match(input,161,FOLLOW_161_in_ruleCharType16014); 

                            current = grammarAccess.getCharTypeAccess().getByte_upperEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getCharTypeAccess().getByte_upperEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7583:6: (enumLiteral_2= 'CHAR' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7583:6: (enumLiteral_2= 'CHAR' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7583:8: enumLiteral_2= 'CHAR'
                    {
                    enumLiteral_2=(Token)match(input,162,FOLLOW_162_in_ruleCharType16031); 

                            current = grammarAccess.getCharTypeAccess().getChar_upperEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getCharTypeAccess().getChar_upperEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7589:6: (enumLiteral_3= 'byte' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7589:6: (enumLiteral_3= 'byte' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7589:8: enumLiteral_3= 'byte'
                    {
                    enumLiteral_3=(Token)match(input,163,FOLLOW_163_in_ruleCharType16048); 

                            current = grammarAccess.getCharTypeAccess().getByteEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getCharTypeAccess().getByteEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;
                case 5 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7595:6: (enumLiteral_4= 'char' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7595:6: (enumLiteral_4= 'char' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7595:8: enumLiteral_4= 'char'
                    {
                    enumLiteral_4=(Token)match(input,137,FOLLOW_137_in_ruleCharType16065); 

                            current = grammarAccess.getCharTypeAccess().getCharEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_4, grammarAccess.getCharTypeAccess().getCharEnumLiteralDeclaration_4()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCharType"


    // $ANTLR start "ruleLoggingType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7605:1: ruleLoggingType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_LoggingType' ) | (enumLiteral_1= 'logging' ) | (enumLiteral_2= 'nologging' ) ) ;
    public final Enumerator ruleLoggingType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7607:28: ( ( (enumLiteral_0= 'null_LoggingType' ) | (enumLiteral_1= 'logging' ) | (enumLiteral_2= 'nologging' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7608:1: ( (enumLiteral_0= 'null_LoggingType' ) | (enumLiteral_1= 'logging' ) | (enumLiteral_2= 'nologging' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7608:1: ( (enumLiteral_0= 'null_LoggingType' ) | (enumLiteral_1= 'logging' ) | (enumLiteral_2= 'nologging' ) )
            int alt252=3;
            switch ( input.LA(1) ) {
            case 164:
                {
                alt252=1;
                }
                break;
            case 165:
                {
                alt252=2;
                }
                break;
            case 166:
                {
                alt252=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 252, 0, input);

                throw nvae;
            }

            switch (alt252) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7608:2: (enumLiteral_0= 'null_LoggingType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7608:2: (enumLiteral_0= 'null_LoggingType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7608:4: enumLiteral_0= 'null_LoggingType'
                    {
                    enumLiteral_0=(Token)match(input,164,FOLLOW_164_in_ruleLoggingType16110); 

                            current = grammarAccess.getLoggingTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getLoggingTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7614:6: (enumLiteral_1= 'logging' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7614:6: (enumLiteral_1= 'logging' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7614:8: enumLiteral_1= 'logging'
                    {
                    enumLiteral_1=(Token)match(input,165,FOLLOW_165_in_ruleLoggingType16127); 

                            current = grammarAccess.getLoggingTypeAccess().getLoggingEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getLoggingTypeAccess().getLoggingEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7620:6: (enumLiteral_2= 'nologging' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7620:6: (enumLiteral_2= 'nologging' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7620:8: enumLiteral_2= 'nologging'
                    {
                    enumLiteral_2=(Token)match(input,166,FOLLOW_166_in_ruleLoggingType16144); 

                            current = grammarAccess.getLoggingTypeAccess().getNologgingEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getLoggingTypeAccess().getNologgingEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleLoggingType"


    // $ANTLR start "ruleEnableType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7630:1: ruleEnableType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_EnableType' ) | (enumLiteral_1= 'enable' ) | (enumLiteral_2= 'disable' ) ) ;
    public final Enumerator ruleEnableType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7632:28: ( ( (enumLiteral_0= 'null_EnableType' ) | (enumLiteral_1= 'enable' ) | (enumLiteral_2= 'disable' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7633:1: ( (enumLiteral_0= 'null_EnableType' ) | (enumLiteral_1= 'enable' ) | (enumLiteral_2= 'disable' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7633:1: ( (enumLiteral_0= 'null_EnableType' ) | (enumLiteral_1= 'enable' ) | (enumLiteral_2= 'disable' ) )
            int alt253=3;
            switch ( input.LA(1) ) {
            case 167:
                {
                alt253=1;
                }
                break;
            case 168:
                {
                alt253=2;
                }
                break;
            case 169:
                {
                alt253=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 253, 0, input);

                throw nvae;
            }

            switch (alt253) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7633:2: (enumLiteral_0= 'null_EnableType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7633:2: (enumLiteral_0= 'null_EnableType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7633:4: enumLiteral_0= 'null_EnableType'
                    {
                    enumLiteral_0=(Token)match(input,167,FOLLOW_167_in_ruleEnableType16189); 

                            current = grammarAccess.getEnableTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getEnableTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7639:6: (enumLiteral_1= 'enable' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7639:6: (enumLiteral_1= 'enable' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7639:8: enumLiteral_1= 'enable'
                    {
                    enumLiteral_1=(Token)match(input,168,FOLLOW_168_in_ruleEnableType16206); 

                            current = grammarAccess.getEnableTypeAccess().getEnableEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getEnableTypeAccess().getEnableEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7645:6: (enumLiteral_2= 'disable' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7645:6: (enumLiteral_2= 'disable' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7645:8: enumLiteral_2= 'disable'
                    {
                    enumLiteral_2=(Token)match(input,169,FOLLOW_169_in_ruleEnableType16223); 

                            current = grammarAccess.getEnableTypeAccess().getDisableEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getEnableTypeAccess().getDisableEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleEnableType"


    // $ANTLR start "ruleParallelType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7655:1: ruleParallelType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_ParallelType' ) | (enumLiteral_1= 'parallel' ) | (enumLiteral_2= 'noparallel' ) ) ;
    public final Enumerator ruleParallelType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7657:28: ( ( (enumLiteral_0= 'null_ParallelType' ) | (enumLiteral_1= 'parallel' ) | (enumLiteral_2= 'noparallel' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7658:1: ( (enumLiteral_0= 'null_ParallelType' ) | (enumLiteral_1= 'parallel' ) | (enumLiteral_2= 'noparallel' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7658:1: ( (enumLiteral_0= 'null_ParallelType' ) | (enumLiteral_1= 'parallel' ) | (enumLiteral_2= 'noparallel' ) )
            int alt254=3;
            switch ( input.LA(1) ) {
            case 170:
                {
                alt254=1;
                }
                break;
            case 171:
                {
                alt254=2;
                }
                break;
            case 172:
                {
                alt254=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 254, 0, input);

                throw nvae;
            }

            switch (alt254) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7658:2: (enumLiteral_0= 'null_ParallelType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7658:2: (enumLiteral_0= 'null_ParallelType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7658:4: enumLiteral_0= 'null_ParallelType'
                    {
                    enumLiteral_0=(Token)match(input,170,FOLLOW_170_in_ruleParallelType16268); 

                            current = grammarAccess.getParallelTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getParallelTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7664:6: (enumLiteral_1= 'parallel' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7664:6: (enumLiteral_1= 'parallel' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7664:8: enumLiteral_1= 'parallel'
                    {
                    enumLiteral_1=(Token)match(input,171,FOLLOW_171_in_ruleParallelType16285); 

                            current = grammarAccess.getParallelTypeAccess().getParallelEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getParallelTypeAccess().getParallelEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7670:6: (enumLiteral_2= 'noparallel' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7670:6: (enumLiteral_2= 'noparallel' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7670:8: enumLiteral_2= 'noparallel'
                    {
                    enumLiteral_2=(Token)match(input,172,FOLLOW_172_in_ruleParallelType16302); 

                            current = grammarAccess.getParallelTypeAccess().getNoparallelEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getParallelTypeAccess().getNoparallelEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleParallelType"


    // $ANTLR start "ruleIndexGlobalType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7680:1: ruleIndexGlobalType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_IndexGlobalType' ) | (enumLiteral_1= 'local' ) | (enumLiteral_2= 'global' ) ) ;
    public final Enumerator ruleIndexGlobalType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7682:28: ( ( (enumLiteral_0= 'null_IndexGlobalType' ) | (enumLiteral_1= 'local' ) | (enumLiteral_2= 'global' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7683:1: ( (enumLiteral_0= 'null_IndexGlobalType' ) | (enumLiteral_1= 'local' ) | (enumLiteral_2= 'global' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7683:1: ( (enumLiteral_0= 'null_IndexGlobalType' ) | (enumLiteral_1= 'local' ) | (enumLiteral_2= 'global' ) )
            int alt255=3;
            switch ( input.LA(1) ) {
            case 173:
                {
                alt255=1;
                }
                break;
            case 174:
                {
                alt255=2;
                }
                break;
            case 13:
                {
                alt255=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 255, 0, input);

                throw nvae;
            }

            switch (alt255) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7683:2: (enumLiteral_0= 'null_IndexGlobalType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7683:2: (enumLiteral_0= 'null_IndexGlobalType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7683:4: enumLiteral_0= 'null_IndexGlobalType'
                    {
                    enumLiteral_0=(Token)match(input,173,FOLLOW_173_in_ruleIndexGlobalType16347); 

                            current = grammarAccess.getIndexGlobalTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getIndexGlobalTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7689:6: (enumLiteral_1= 'local' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7689:6: (enumLiteral_1= 'local' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7689:8: enumLiteral_1= 'local'
                    {
                    enumLiteral_1=(Token)match(input,174,FOLLOW_174_in_ruleIndexGlobalType16364); 

                            current = grammarAccess.getIndexGlobalTypeAccess().getLocalEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getIndexGlobalTypeAccess().getLocalEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7695:6: (enumLiteral_2= 'global' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7695:6: (enumLiteral_2= 'global' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7695:8: enumLiteral_2= 'global'
                    {
                    enumLiteral_2=(Token)match(input,13,FOLLOW_13_in_ruleIndexGlobalType16381); 

                            current = grammarAccess.getIndexGlobalTypeAccess().getGlobalEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getIndexGlobalTypeAccess().getGlobalEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIndexGlobalType"


    // $ANTLR start "ruleCommentObjectType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7705:1: ruleCommentObjectType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_CommentObjectType' ) | (enumLiteral_1= 'table' ) | (enumLiteral_2= 'column' ) ) ;
    public final Enumerator ruleCommentObjectType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7707:28: ( ( (enumLiteral_0= 'null_CommentObjectType' ) | (enumLiteral_1= 'table' ) | (enumLiteral_2= 'column' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7708:1: ( (enumLiteral_0= 'null_CommentObjectType' ) | (enumLiteral_1= 'table' ) | (enumLiteral_2= 'column' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7708:1: ( (enumLiteral_0= 'null_CommentObjectType' ) | (enumLiteral_1= 'table' ) | (enumLiteral_2= 'column' ) )
            int alt256=3;
            switch ( input.LA(1) ) {
            case 175:
                {
                alt256=1;
                }
                break;
            case 14:
                {
                alt256=2;
                }
                break;
            case 100:
                {
                alt256=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 256, 0, input);

                throw nvae;
            }

            switch (alt256) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7708:2: (enumLiteral_0= 'null_CommentObjectType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7708:2: (enumLiteral_0= 'null_CommentObjectType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7708:4: enumLiteral_0= 'null_CommentObjectType'
                    {
                    enumLiteral_0=(Token)match(input,175,FOLLOW_175_in_ruleCommentObjectType16426); 

                            current = grammarAccess.getCommentObjectTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getCommentObjectTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7714:6: (enumLiteral_1= 'table' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7714:6: (enumLiteral_1= 'table' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7714:8: enumLiteral_1= 'table'
                    {
                    enumLiteral_1=(Token)match(input,14,FOLLOW_14_in_ruleCommentObjectType16443); 

                            current = grammarAccess.getCommentObjectTypeAccess().getTableEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getCommentObjectTypeAccess().getTableEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7720:6: (enumLiteral_2= 'column' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7720:6: (enumLiteral_2= 'column' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7720:8: enumLiteral_2= 'column'
                    {
                    enumLiteral_2=(Token)match(input,100,FOLLOW_100_in_ruleCommentObjectType16460); 

                            current = grammarAccess.getCommentObjectTypeAccess().getColumnEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getCommentObjectTypeAccess().getColumnEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCommentObjectType"


    // $ANTLR start "rulePermanentnessType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7730:1: rulePermanentnessType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_PermanentnessType' ) | (enumLiteral_1= 'temporary' ) | (enumLiteral_2= 'permanent' ) ) ;
    public final Enumerator rulePermanentnessType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7732:28: ( ( (enumLiteral_0= 'null_PermanentnessType' ) | (enumLiteral_1= 'temporary' ) | (enumLiteral_2= 'permanent' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7733:1: ( (enumLiteral_0= 'null_PermanentnessType' ) | (enumLiteral_1= 'temporary' ) | (enumLiteral_2= 'permanent' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7733:1: ( (enumLiteral_0= 'null_PermanentnessType' ) | (enumLiteral_1= 'temporary' ) | (enumLiteral_2= 'permanent' ) )
            int alt257=3;
            switch ( input.LA(1) ) {
            case 176:
                {
                alt257=1;
                }
                break;
            case 177:
                {
                alt257=2;
                }
                break;
            case 178:
                {
                alt257=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 257, 0, input);

                throw nvae;
            }

            switch (alt257) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7733:2: (enumLiteral_0= 'null_PermanentnessType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7733:2: (enumLiteral_0= 'null_PermanentnessType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7733:4: enumLiteral_0= 'null_PermanentnessType'
                    {
                    enumLiteral_0=(Token)match(input,176,FOLLOW_176_in_rulePermanentnessType16505); 

                            current = grammarAccess.getPermanentnessTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getPermanentnessTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7739:6: (enumLiteral_1= 'temporary' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7739:6: (enumLiteral_1= 'temporary' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7739:8: enumLiteral_1= 'temporary'
                    {
                    enumLiteral_1=(Token)match(input,177,FOLLOW_177_in_rulePermanentnessType16522); 

                            current = grammarAccess.getPermanentnessTypeAccess().getGlobal_temporaryEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getPermanentnessTypeAccess().getGlobal_temporaryEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7745:6: (enumLiteral_2= 'permanent' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7745:6: (enumLiteral_2= 'permanent' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7745:8: enumLiteral_2= 'permanent'
                    {
                    enumLiteral_2=(Token)match(input,178,FOLLOW_178_in_rulePermanentnessType16539); 

                            current = grammarAccess.getPermanentnessTypeAccess().getPermanentEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getPermanentnessTypeAccess().getPermanentEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePermanentnessType"


    // $ANTLR start "rulePermanentnessTransactionType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7755:1: rulePermanentnessTransactionType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_PermanentnessTransactionType' ) | (enumLiteral_1= 'delete' ) | (enumLiteral_2= 'preserve' ) ) ;
    public final Enumerator rulePermanentnessTransactionType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7757:28: ( ( (enumLiteral_0= 'null_PermanentnessTransactionType' ) | (enumLiteral_1= 'delete' ) | (enumLiteral_2= 'preserve' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7758:1: ( (enumLiteral_0= 'null_PermanentnessTransactionType' ) | (enumLiteral_1= 'delete' ) | (enumLiteral_2= 'preserve' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7758:1: ( (enumLiteral_0= 'null_PermanentnessTransactionType' ) | (enumLiteral_1= 'delete' ) | (enumLiteral_2= 'preserve' ) )
            int alt258=3;
            switch ( input.LA(1) ) {
            case 179:
                {
                alt258=1;
                }
                break;
            case 65:
                {
                alt258=2;
                }
                break;
            case 180:
                {
                alt258=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 258, 0, input);

                throw nvae;
            }

            switch (alt258) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7758:2: (enumLiteral_0= 'null_PermanentnessTransactionType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7758:2: (enumLiteral_0= 'null_PermanentnessTransactionType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7758:4: enumLiteral_0= 'null_PermanentnessTransactionType'
                    {
                    enumLiteral_0=(Token)match(input,179,FOLLOW_179_in_rulePermanentnessTransactionType16584); 

                            current = grammarAccess.getPermanentnessTransactionTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getPermanentnessTransactionTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7764:6: (enumLiteral_1= 'delete' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7764:6: (enumLiteral_1= 'delete' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7764:8: enumLiteral_1= 'delete'
                    {
                    enumLiteral_1=(Token)match(input,65,FOLLOW_65_in_rulePermanentnessTransactionType16601); 

                            current = grammarAccess.getPermanentnessTransactionTypeAccess().getOn_commit_deleteEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getPermanentnessTransactionTypeAccess().getOn_commit_deleteEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7770:6: (enumLiteral_2= 'preserve' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7770:6: (enumLiteral_2= 'preserve' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7770:8: enumLiteral_2= 'preserve'
                    {
                    enumLiteral_2=(Token)match(input,180,FOLLOW_180_in_rulePermanentnessTransactionType16618); 

                            current = grammarAccess.getPermanentnessTransactionTypeAccess().getOn_commit_preserveEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getPermanentnessTransactionTypeAccess().getOn_commit_preserveEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePermanentnessTransactionType"


    // $ANTLR start "ruleCycleType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7780:1: ruleCycleType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_CycleType' ) | (enumLiteral_1= 'cycle' ) | (enumLiteral_2= 'nocycle' ) ) ;
    public final Enumerator ruleCycleType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7782:28: ( ( (enumLiteral_0= 'null_CycleType' ) | (enumLiteral_1= 'cycle' ) | (enumLiteral_2= 'nocycle' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7783:1: ( (enumLiteral_0= 'null_CycleType' ) | (enumLiteral_1= 'cycle' ) | (enumLiteral_2= 'nocycle' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7783:1: ( (enumLiteral_0= 'null_CycleType' ) | (enumLiteral_1= 'cycle' ) | (enumLiteral_2= 'nocycle' ) )
            int alt259=3;
            switch ( input.LA(1) ) {
            case 181:
                {
                alt259=1;
                }
                break;
            case 182:
                {
                alt259=2;
                }
                break;
            case 183:
                {
                alt259=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 259, 0, input);

                throw nvae;
            }

            switch (alt259) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7783:2: (enumLiteral_0= 'null_CycleType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7783:2: (enumLiteral_0= 'null_CycleType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7783:4: enumLiteral_0= 'null_CycleType'
                    {
                    enumLiteral_0=(Token)match(input,181,FOLLOW_181_in_ruleCycleType16663); 

                            current = grammarAccess.getCycleTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getCycleTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7789:6: (enumLiteral_1= 'cycle' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7789:6: (enumLiteral_1= 'cycle' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7789:8: enumLiteral_1= 'cycle'
                    {
                    enumLiteral_1=(Token)match(input,182,FOLLOW_182_in_ruleCycleType16680); 

                            current = grammarAccess.getCycleTypeAccess().getCycleEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getCycleTypeAccess().getCycleEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7795:6: (enumLiteral_2= 'nocycle' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7795:6: (enumLiteral_2= 'nocycle' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7795:8: enumLiteral_2= 'nocycle'
                    {
                    enumLiteral_2=(Token)match(input,183,FOLLOW_183_in_ruleCycleType16697); 

                            current = grammarAccess.getCycleTypeAccess().getNocycleEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getCycleTypeAccess().getNocycleEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCycleType"


    // $ANTLR start "ruleOrderType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7805:1: ruleOrderType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_OrderType' ) | (enumLiteral_1= 'order' ) | (enumLiteral_2= 'noorder' ) ) ;
    public final Enumerator ruleOrderType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7807:28: ( ( (enumLiteral_0= 'null_OrderType' ) | (enumLiteral_1= 'order' ) | (enumLiteral_2= 'noorder' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7808:1: ( (enumLiteral_0= 'null_OrderType' ) | (enumLiteral_1= 'order' ) | (enumLiteral_2= 'noorder' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7808:1: ( (enumLiteral_0= 'null_OrderType' ) | (enumLiteral_1= 'order' ) | (enumLiteral_2= 'noorder' ) )
            int alt260=3;
            switch ( input.LA(1) ) {
            case 184:
                {
                alt260=1;
                }
                break;
            case 185:
                {
                alt260=2;
                }
                break;
            case 186:
                {
                alt260=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 260, 0, input);

                throw nvae;
            }

            switch (alt260) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7808:2: (enumLiteral_0= 'null_OrderType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7808:2: (enumLiteral_0= 'null_OrderType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7808:4: enumLiteral_0= 'null_OrderType'
                    {
                    enumLiteral_0=(Token)match(input,184,FOLLOW_184_in_ruleOrderType16742); 

                            current = grammarAccess.getOrderTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getOrderTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7814:6: (enumLiteral_1= 'order' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7814:6: (enumLiteral_1= 'order' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7814:8: enumLiteral_1= 'order'
                    {
                    enumLiteral_1=(Token)match(input,185,FOLLOW_185_in_ruleOrderType16759); 

                            current = grammarAccess.getOrderTypeAccess().getOrderEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getOrderTypeAccess().getOrderEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7820:6: (enumLiteral_2= 'noorder' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7820:6: (enumLiteral_2= 'noorder' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7820:8: enumLiteral_2= 'noorder'
                    {
                    enumLiteral_2=(Token)match(input,186,FOLLOW_186_in_ruleOrderType16776); 

                            current = grammarAccess.getOrderTypeAccess().getNoorderEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getOrderTypeAccess().getNoorderEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleOrderType"


    // $ANTLR start "ruleCompressForType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7830:1: ruleCompressForType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_CompressForType' ) | (enumLiteral_1= 'all_operations' ) | (enumLiteral_2= 'direct_load_operations' ) | (enumLiteral_3= 'query_low' ) | (enumLiteral_4= 'query_high' ) | (enumLiteral_5= 'archive_low' ) | (enumLiteral_6= 'archive_high' ) ) ;
    public final Enumerator ruleCompressForType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;
        Token enumLiteral_4=null;
        Token enumLiteral_5=null;
        Token enumLiteral_6=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7832:28: ( ( (enumLiteral_0= 'null_CompressForType' ) | (enumLiteral_1= 'all_operations' ) | (enumLiteral_2= 'direct_load_operations' ) | (enumLiteral_3= 'query_low' ) | (enumLiteral_4= 'query_high' ) | (enumLiteral_5= 'archive_low' ) | (enumLiteral_6= 'archive_high' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7833:1: ( (enumLiteral_0= 'null_CompressForType' ) | (enumLiteral_1= 'all_operations' ) | (enumLiteral_2= 'direct_load_operations' ) | (enumLiteral_3= 'query_low' ) | (enumLiteral_4= 'query_high' ) | (enumLiteral_5= 'archive_low' ) | (enumLiteral_6= 'archive_high' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7833:1: ( (enumLiteral_0= 'null_CompressForType' ) | (enumLiteral_1= 'all_operations' ) | (enumLiteral_2= 'direct_load_operations' ) | (enumLiteral_3= 'query_low' ) | (enumLiteral_4= 'query_high' ) | (enumLiteral_5= 'archive_low' ) | (enumLiteral_6= 'archive_high' ) )
            int alt261=7;
            switch ( input.LA(1) ) {
            case 187:
                {
                alt261=1;
                }
                break;
            case 188:
                {
                alt261=2;
                }
                break;
            case 189:
                {
                alt261=3;
                }
                break;
            case 190:
                {
                alt261=4;
                }
                break;
            case 191:
                {
                alt261=5;
                }
                break;
            case 192:
                {
                alt261=6;
                }
                break;
            case 193:
                {
                alt261=7;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 261, 0, input);

                throw nvae;
            }

            switch (alt261) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7833:2: (enumLiteral_0= 'null_CompressForType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7833:2: (enumLiteral_0= 'null_CompressForType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7833:4: enumLiteral_0= 'null_CompressForType'
                    {
                    enumLiteral_0=(Token)match(input,187,FOLLOW_187_in_ruleCompressForType16821); 

                            current = grammarAccess.getCompressForTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getCompressForTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7839:6: (enumLiteral_1= 'all_operations' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7839:6: (enumLiteral_1= 'all_operations' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7839:8: enumLiteral_1= 'all_operations'
                    {
                    enumLiteral_1=(Token)match(input,188,FOLLOW_188_in_ruleCompressForType16838); 

                            current = grammarAccess.getCompressForTypeAccess().getAllEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getCompressForTypeAccess().getAllEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7845:6: (enumLiteral_2= 'direct_load_operations' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7845:6: (enumLiteral_2= 'direct_load_operations' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7845:8: enumLiteral_2= 'direct_load_operations'
                    {
                    enumLiteral_2=(Token)match(input,189,FOLLOW_189_in_ruleCompressForType16855); 

                            current = grammarAccess.getCompressForTypeAccess().getDirect_loadEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getCompressForTypeAccess().getDirect_loadEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7851:6: (enumLiteral_3= 'query_low' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7851:6: (enumLiteral_3= 'query_low' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7851:8: enumLiteral_3= 'query_low'
                    {
                    enumLiteral_3=(Token)match(input,190,FOLLOW_190_in_ruleCompressForType16872); 

                            current = grammarAccess.getCompressForTypeAccess().getQuery_lowEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getCompressForTypeAccess().getQuery_lowEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;
                case 5 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7857:6: (enumLiteral_4= 'query_high' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7857:6: (enumLiteral_4= 'query_high' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7857:8: enumLiteral_4= 'query_high'
                    {
                    enumLiteral_4=(Token)match(input,191,FOLLOW_191_in_ruleCompressForType16889); 

                            current = grammarAccess.getCompressForTypeAccess().getQuery_highEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_4, grammarAccess.getCompressForTypeAccess().getQuery_highEnumLiteralDeclaration_4()); 
                        

                    }


                    }
                    break;
                case 6 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7863:6: (enumLiteral_5= 'archive_low' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7863:6: (enumLiteral_5= 'archive_low' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7863:8: enumLiteral_5= 'archive_low'
                    {
                    enumLiteral_5=(Token)match(input,192,FOLLOW_192_in_ruleCompressForType16906); 

                            current = grammarAccess.getCompressForTypeAccess().getArchive_lowEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_5, grammarAccess.getCompressForTypeAccess().getArchive_lowEnumLiteralDeclaration_5()); 
                        

                    }


                    }
                    break;
                case 7 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7869:6: (enumLiteral_6= 'archive_high' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7869:6: (enumLiteral_6= 'archive_high' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7869:8: enumLiteral_6= 'archive_high'
                    {
                    enumLiteral_6=(Token)match(input,193,FOLLOW_193_in_ruleCompressForType16923); 

                            current = grammarAccess.getCompressForTypeAccess().getArchive_highEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_6, grammarAccess.getCompressForTypeAccess().getArchive_highEnumLiteralDeclaration_6()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCompressForType"


    // $ANTLR start "ruleLobCompressForType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7879:1: ruleLobCompressForType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_LobCompressForType' ) | (enumLiteral_1= 'high' ) | (enumLiteral_2= 'medium' ) | (enumLiteral_3= 'low' ) ) ;
    public final Enumerator ruleLobCompressForType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7881:28: ( ( (enumLiteral_0= 'null_LobCompressForType' ) | (enumLiteral_1= 'high' ) | (enumLiteral_2= 'medium' ) | (enumLiteral_3= 'low' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7882:1: ( (enumLiteral_0= 'null_LobCompressForType' ) | (enumLiteral_1= 'high' ) | (enumLiteral_2= 'medium' ) | (enumLiteral_3= 'low' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7882:1: ( (enumLiteral_0= 'null_LobCompressForType' ) | (enumLiteral_1= 'high' ) | (enumLiteral_2= 'medium' ) | (enumLiteral_3= 'low' ) )
            int alt262=4;
            switch ( input.LA(1) ) {
            case 194:
                {
                alt262=1;
                }
                break;
            case 195:
                {
                alt262=2;
                }
                break;
            case 196:
                {
                alt262=3;
                }
                break;
            case 197:
                {
                alt262=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 262, 0, input);

                throw nvae;
            }

            switch (alt262) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7882:2: (enumLiteral_0= 'null_LobCompressForType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7882:2: (enumLiteral_0= 'null_LobCompressForType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7882:4: enumLiteral_0= 'null_LobCompressForType'
                    {
                    enumLiteral_0=(Token)match(input,194,FOLLOW_194_in_ruleLobCompressForType16968); 

                            current = grammarAccess.getLobCompressForTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getLobCompressForTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7888:6: (enumLiteral_1= 'high' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7888:6: (enumLiteral_1= 'high' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7888:8: enumLiteral_1= 'high'
                    {
                    enumLiteral_1=(Token)match(input,195,FOLLOW_195_in_ruleLobCompressForType16985); 

                            current = grammarAccess.getLobCompressForTypeAccess().getHighEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getLobCompressForTypeAccess().getHighEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7894:6: (enumLiteral_2= 'medium' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7894:6: (enumLiteral_2= 'medium' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7894:8: enumLiteral_2= 'medium'
                    {
                    enumLiteral_2=(Token)match(input,196,FOLLOW_196_in_ruleLobCompressForType17002); 

                            current = grammarAccess.getLobCompressForTypeAccess().getMediumEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getLobCompressForTypeAccess().getMediumEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7900:6: (enumLiteral_3= 'low' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7900:6: (enumLiteral_3= 'low' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7900:8: enumLiteral_3= 'low'
                    {
                    enumLiteral_3=(Token)match(input,197,FOLLOW_197_in_ruleLobCompressForType17019); 

                            current = grammarAccess.getLobCompressForTypeAccess().getLowEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getLobCompressForTypeAccess().getLowEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleLobCompressForType"


    // $ANTLR start "ruleCompressType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7910:1: ruleCompressType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_CompressType' ) | (enumLiteral_1= 'nocompress' ) | (enumLiteral_2= 'compress' ) ) ;
    public final Enumerator ruleCompressType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7912:28: ( ( (enumLiteral_0= 'null_CompressType' ) | (enumLiteral_1= 'nocompress' ) | (enumLiteral_2= 'compress' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7913:1: ( (enumLiteral_0= 'null_CompressType' ) | (enumLiteral_1= 'nocompress' ) | (enumLiteral_2= 'compress' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7913:1: ( (enumLiteral_0= 'null_CompressType' ) | (enumLiteral_1= 'nocompress' ) | (enumLiteral_2= 'compress' ) )
            int alt263=3;
            switch ( input.LA(1) ) {
            case 198:
                {
                alt263=1;
                }
                break;
            case 199:
                {
                alt263=2;
                }
                break;
            case 200:
                {
                alt263=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 263, 0, input);

                throw nvae;
            }

            switch (alt263) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7913:2: (enumLiteral_0= 'null_CompressType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7913:2: (enumLiteral_0= 'null_CompressType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7913:4: enumLiteral_0= 'null_CompressType'
                    {
                    enumLiteral_0=(Token)match(input,198,FOLLOW_198_in_ruleCompressType17064); 

                            current = grammarAccess.getCompressTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getCompressTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7919:6: (enumLiteral_1= 'nocompress' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7919:6: (enumLiteral_1= 'nocompress' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7919:8: enumLiteral_1= 'nocompress'
                    {
                    enumLiteral_1=(Token)match(input,199,FOLLOW_199_in_ruleCompressType17081); 

                            current = grammarAccess.getCompressTypeAccess().getNocompressEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getCompressTypeAccess().getNocompressEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7925:6: (enumLiteral_2= 'compress' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7925:6: (enumLiteral_2= 'compress' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7925:8: enumLiteral_2= 'compress'
                    {
                    enumLiteral_2=(Token)match(input,200,FOLLOW_200_in_ruleCompressType17098); 

                            current = grammarAccess.getCompressTypeAccess().getCompressEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getCompressTypeAccess().getCompressEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCompressType"


    // $ANTLR start "ruleBuildModeType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7935:1: ruleBuildModeType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_BuildModeType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) | (enumLiteral_3= 'prebuilt' ) ) ;
    public final Enumerator ruleBuildModeType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7937:28: ( ( (enumLiteral_0= 'null_BuildModeType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) | (enumLiteral_3= 'prebuilt' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7938:1: ( (enumLiteral_0= 'null_BuildModeType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) | (enumLiteral_3= 'prebuilt' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7938:1: ( (enumLiteral_0= 'null_BuildModeType' ) | (enumLiteral_1= 'immediate' ) | (enumLiteral_2= 'deferred' ) | (enumLiteral_3= 'prebuilt' ) )
            int alt264=4;
            switch ( input.LA(1) ) {
            case 201:
                {
                alt264=1;
                }
                break;
            case 92:
                {
                alt264=2;
                }
                break;
            case 159:
                {
                alt264=3;
                }
                break;
            case 202:
                {
                alt264=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 264, 0, input);

                throw nvae;
            }

            switch (alt264) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7938:2: (enumLiteral_0= 'null_BuildModeType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7938:2: (enumLiteral_0= 'null_BuildModeType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7938:4: enumLiteral_0= 'null_BuildModeType'
                    {
                    enumLiteral_0=(Token)match(input,201,FOLLOW_201_in_ruleBuildModeType17143); 

                            current = grammarAccess.getBuildModeTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getBuildModeTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7944:6: (enumLiteral_1= 'immediate' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7944:6: (enumLiteral_1= 'immediate' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7944:8: enumLiteral_1= 'immediate'
                    {
                    enumLiteral_1=(Token)match(input,92,FOLLOW_92_in_ruleBuildModeType17160); 

                            current = grammarAccess.getBuildModeTypeAccess().getImmediateEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getBuildModeTypeAccess().getImmediateEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7950:6: (enumLiteral_2= 'deferred' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7950:6: (enumLiteral_2= 'deferred' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7950:8: enumLiteral_2= 'deferred'
                    {
                    enumLiteral_2=(Token)match(input,159,FOLLOW_159_in_ruleBuildModeType17177); 

                            current = grammarAccess.getBuildModeTypeAccess().getDeferredEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getBuildModeTypeAccess().getDeferredEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7956:6: (enumLiteral_3= 'prebuilt' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7956:6: (enumLiteral_3= 'prebuilt' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7956:8: enumLiteral_3= 'prebuilt'
                    {
                    enumLiteral_3=(Token)match(input,202,FOLLOW_202_in_ruleBuildModeType17194); 

                            current = grammarAccess.getBuildModeTypeAccess().getPrebuiltEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getBuildModeTypeAccess().getPrebuiltEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleBuildModeType"


    // $ANTLR start "ruleRefreshModeType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7966:1: ruleRefreshModeType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_RefreshModeType' ) | (enumLiteral_1= 'demand' ) | (enumLiteral_2= 'commit' ) ) ;
    public final Enumerator ruleRefreshModeType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7968:28: ( ( (enumLiteral_0= 'null_RefreshModeType' ) | (enumLiteral_1= 'demand' ) | (enumLiteral_2= 'commit' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7969:1: ( (enumLiteral_0= 'null_RefreshModeType' ) | (enumLiteral_1= 'demand' ) | (enumLiteral_2= 'commit' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7969:1: ( (enumLiteral_0= 'null_RefreshModeType' ) | (enumLiteral_1= 'demand' ) | (enumLiteral_2= 'commit' ) )
            int alt265=3;
            switch ( input.LA(1) ) {
            case 203:
                {
                alt265=1;
                }
                break;
            case 204:
                {
                alt265=2;
                }
                break;
            case 21:
                {
                alt265=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 265, 0, input);

                throw nvae;
            }

            switch (alt265) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7969:2: (enumLiteral_0= 'null_RefreshModeType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7969:2: (enumLiteral_0= 'null_RefreshModeType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7969:4: enumLiteral_0= 'null_RefreshModeType'
                    {
                    enumLiteral_0=(Token)match(input,203,FOLLOW_203_in_ruleRefreshModeType17239); 

                            current = grammarAccess.getRefreshModeTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getRefreshModeTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7975:6: (enumLiteral_1= 'demand' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7975:6: (enumLiteral_1= 'demand' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7975:8: enumLiteral_1= 'demand'
                    {
                    enumLiteral_1=(Token)match(input,204,FOLLOW_204_in_ruleRefreshModeType17256); 

                            current = grammarAccess.getRefreshModeTypeAccess().getDemandEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getRefreshModeTypeAccess().getDemandEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7981:6: (enumLiteral_2= 'commit' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7981:6: (enumLiteral_2= 'commit' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7981:8: enumLiteral_2= 'commit'
                    {
                    enumLiteral_2=(Token)match(input,21,FOLLOW_21_in_ruleRefreshModeType17273); 

                            current = grammarAccess.getRefreshModeTypeAccess().getCommitEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getRefreshModeTypeAccess().getCommitEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRefreshModeType"


    // $ANTLR start "ruleRefreshMethodType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7991:1: ruleRefreshMethodType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_RefreshMethodType' ) | (enumLiteral_1= 'refresh_complete' ) | (enumLiteral_2= 'refresh_force' ) | (enumLiteral_3= 'refresh_fast' ) | (enumLiteral_4= 'never_refresh' ) ) ;
    public final Enumerator ruleRefreshMethodType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;
        Token enumLiteral_4=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7993:28: ( ( (enumLiteral_0= 'null_RefreshMethodType' ) | (enumLiteral_1= 'refresh_complete' ) | (enumLiteral_2= 'refresh_force' ) | (enumLiteral_3= 'refresh_fast' ) | (enumLiteral_4= 'never_refresh' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7994:1: ( (enumLiteral_0= 'null_RefreshMethodType' ) | (enumLiteral_1= 'refresh_complete' ) | (enumLiteral_2= 'refresh_force' ) | (enumLiteral_3= 'refresh_fast' ) | (enumLiteral_4= 'never_refresh' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7994:1: ( (enumLiteral_0= 'null_RefreshMethodType' ) | (enumLiteral_1= 'refresh_complete' ) | (enumLiteral_2= 'refresh_force' ) | (enumLiteral_3= 'refresh_fast' ) | (enumLiteral_4= 'never_refresh' ) )
            int alt266=5;
            switch ( input.LA(1) ) {
            case 205:
                {
                alt266=1;
                }
                break;
            case 206:
                {
                alt266=2;
                }
                break;
            case 207:
                {
                alt266=3;
                }
                break;
            case 208:
                {
                alt266=4;
                }
                break;
            case 209:
                {
                alt266=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 266, 0, input);

                throw nvae;
            }

            switch (alt266) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7994:2: (enumLiteral_0= 'null_RefreshMethodType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7994:2: (enumLiteral_0= 'null_RefreshMethodType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:7994:4: enumLiteral_0= 'null_RefreshMethodType'
                    {
                    enumLiteral_0=(Token)match(input,205,FOLLOW_205_in_ruleRefreshMethodType17318); 

                            current = grammarAccess.getRefreshMethodTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getRefreshMethodTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8000:6: (enumLiteral_1= 'refresh_complete' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8000:6: (enumLiteral_1= 'refresh_complete' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8000:8: enumLiteral_1= 'refresh_complete'
                    {
                    enumLiteral_1=(Token)match(input,206,FOLLOW_206_in_ruleRefreshMethodType17335); 

                            current = grammarAccess.getRefreshMethodTypeAccess().getCompleteEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getRefreshMethodTypeAccess().getCompleteEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8006:6: (enumLiteral_2= 'refresh_force' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8006:6: (enumLiteral_2= 'refresh_force' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8006:8: enumLiteral_2= 'refresh_force'
                    {
                    enumLiteral_2=(Token)match(input,207,FOLLOW_207_in_ruleRefreshMethodType17352); 

                            current = grammarAccess.getRefreshMethodTypeAccess().getForceEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getRefreshMethodTypeAccess().getForceEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8012:6: (enumLiteral_3= 'refresh_fast' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8012:6: (enumLiteral_3= 'refresh_fast' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8012:8: enumLiteral_3= 'refresh_fast'
                    {
                    enumLiteral_3=(Token)match(input,208,FOLLOW_208_in_ruleRefreshMethodType17369); 

                            current = grammarAccess.getRefreshMethodTypeAccess().getFastEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getRefreshMethodTypeAccess().getFastEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;
                case 5 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8018:6: (enumLiteral_4= 'never_refresh' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8018:6: (enumLiteral_4= 'never_refresh' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8018:8: enumLiteral_4= 'never_refresh'
                    {
                    enumLiteral_4=(Token)match(input,209,FOLLOW_209_in_ruleRefreshMethodType17386); 

                            current = grammarAccess.getRefreshMethodTypeAccess().getNeverEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_4, grammarAccess.getRefreshMethodTypeAccess().getNeverEnumLiteralDeclaration_4()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRefreshMethodType"


    // $ANTLR start "ruleNewValuesType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8028:1: ruleNewValuesType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_NewValuesType' ) | (enumLiteral_1= 'including' ) | (enumLiteral_2= 'excluding' ) ) ;
    public final Enumerator ruleNewValuesType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8030:28: ( ( (enumLiteral_0= 'null_NewValuesType' ) | (enumLiteral_1= 'including' ) | (enumLiteral_2= 'excluding' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8031:1: ( (enumLiteral_0= 'null_NewValuesType' ) | (enumLiteral_1= 'including' ) | (enumLiteral_2= 'excluding' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8031:1: ( (enumLiteral_0= 'null_NewValuesType' ) | (enumLiteral_1= 'including' ) | (enumLiteral_2= 'excluding' ) )
            int alt267=3;
            switch ( input.LA(1) ) {
            case 210:
                {
                alt267=1;
                }
                break;
            case 27:
                {
                alt267=2;
                }
                break;
            case 211:
                {
                alt267=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 267, 0, input);

                throw nvae;
            }

            switch (alt267) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8031:2: (enumLiteral_0= 'null_NewValuesType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8031:2: (enumLiteral_0= 'null_NewValuesType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8031:4: enumLiteral_0= 'null_NewValuesType'
                    {
                    enumLiteral_0=(Token)match(input,210,FOLLOW_210_in_ruleNewValuesType17431); 

                            current = grammarAccess.getNewValuesTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getNewValuesTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8037:6: (enumLiteral_1= 'including' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8037:6: (enumLiteral_1= 'including' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8037:8: enumLiteral_1= 'including'
                    {
                    enumLiteral_1=(Token)match(input,27,FOLLOW_27_in_ruleNewValuesType17448); 

                            current = grammarAccess.getNewValuesTypeAccess().getIncludingEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getNewValuesTypeAccess().getIncludingEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8043:6: (enumLiteral_2= 'excluding' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8043:6: (enumLiteral_2= 'excluding' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8043:8: enumLiteral_2= 'excluding'
                    {
                    enumLiteral_2=(Token)match(input,211,FOLLOW_211_in_ruleNewValuesType17465); 

                            current = grammarAccess.getNewValuesTypeAccess().getExcludingEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getNewValuesTypeAccess().getExcludingEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewValuesType"


    // $ANTLR start "ruleSynchronousType"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8053:1: ruleSynchronousType returns [Enumerator current=null] : ( (enumLiteral_0= 'null_SynchronousType' ) | (enumLiteral_1= 'asynchronous' ) | (enumLiteral_2= 'synchronous' ) ) ;
    public final Enumerator ruleSynchronousType() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8055:28: ( ( (enumLiteral_0= 'null_SynchronousType' ) | (enumLiteral_1= 'asynchronous' ) | (enumLiteral_2= 'synchronous' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8056:1: ( (enumLiteral_0= 'null_SynchronousType' ) | (enumLiteral_1= 'asynchronous' ) | (enumLiteral_2= 'synchronous' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8056:1: ( (enumLiteral_0= 'null_SynchronousType' ) | (enumLiteral_1= 'asynchronous' ) | (enumLiteral_2= 'synchronous' ) )
            int alt268=3;
            switch ( input.LA(1) ) {
            case 212:
                {
                alt268=1;
                }
                break;
            case 213:
                {
                alt268=2;
                }
                break;
            case 214:
                {
                alt268=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 268, 0, input);

                throw nvae;
            }

            switch (alt268) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8056:2: (enumLiteral_0= 'null_SynchronousType' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8056:2: (enumLiteral_0= 'null_SynchronousType' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8056:4: enumLiteral_0= 'null_SynchronousType'
                    {
                    enumLiteral_0=(Token)match(input,212,FOLLOW_212_in_ruleSynchronousType17510); 

                            current = grammarAccess.getSynchronousTypeAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getSynchronousTypeAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8062:6: (enumLiteral_1= 'asynchronous' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8062:6: (enumLiteral_1= 'asynchronous' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8062:8: enumLiteral_1= 'asynchronous'
                    {
                    enumLiteral_1=(Token)match(input,213,FOLLOW_213_in_ruleSynchronousType17527); 

                            current = grammarAccess.getSynchronousTypeAccess().getAsynchronousEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getSynchronousTypeAccess().getAsynchronousEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8068:6: (enumLiteral_2= 'synchronous' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8068:6: (enumLiteral_2= 'synchronous' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8068:8: enumLiteral_2= 'synchronous'
                    {
                    enumLiteral_2=(Token)match(input,214,FOLLOW_214_in_ruleSynchronousType17544); 

                            current = grammarAccess.getSynchronousTypeAccess().getSynchronousEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getSynchronousTypeAccess().getSynchronousEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSynchronousType"


    // $ANTLR start "ruleGenNameRulePart"
    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8078:1: ruleGenNameRulePart returns [Enumerator current=null] : ( (enumLiteral_0= 'null_GenNameRulePart' ) | (enumLiteral_1= 'column-name' ) | (enumLiteral_2= 'table-name' ) | (enumLiteral_3= 'alias-name' ) | (enumLiteral_4= 'column-domain-name' ) | (enumLiteral_5= 'remove-next' ) ) ;
    public final Enumerator ruleGenNameRulePart() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;
        Token enumLiteral_4=null;
        Token enumLiteral_5=null;

         enterRule(); 
        try {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8080:28: ( ( (enumLiteral_0= 'null_GenNameRulePart' ) | (enumLiteral_1= 'column-name' ) | (enumLiteral_2= 'table-name' ) | (enumLiteral_3= 'alias-name' ) | (enumLiteral_4= 'column-domain-name' ) | (enumLiteral_5= 'remove-next' ) ) )
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8081:1: ( (enumLiteral_0= 'null_GenNameRulePart' ) | (enumLiteral_1= 'column-name' ) | (enumLiteral_2= 'table-name' ) | (enumLiteral_3= 'alias-name' ) | (enumLiteral_4= 'column-domain-name' ) | (enumLiteral_5= 'remove-next' ) )
            {
            // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8081:1: ( (enumLiteral_0= 'null_GenNameRulePart' ) | (enumLiteral_1= 'column-name' ) | (enumLiteral_2= 'table-name' ) | (enumLiteral_3= 'alias-name' ) | (enumLiteral_4= 'column-domain-name' ) | (enumLiteral_5= 'remove-next' ) )
            int alt269=6;
            switch ( input.LA(1) ) {
            case 215:
                {
                alt269=1;
                }
                break;
            case 102:
                {
                alt269=2;
                }
                break;
            case 104:
                {
                alt269=3;
                }
                break;
            case 105:
                {
                alt269=4;
                }
                break;
            case 216:
                {
                alt269=5;
                }
                break;
            case 217:
                {
                alt269=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 269, 0, input);

                throw nvae;
            }

            switch (alt269) {
                case 1 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8081:2: (enumLiteral_0= 'null_GenNameRulePart' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8081:2: (enumLiteral_0= 'null_GenNameRulePart' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8081:4: enumLiteral_0= 'null_GenNameRulePart'
                    {
                    enumLiteral_0=(Token)match(input,215,FOLLOW_215_in_ruleGenNameRulePart17589); 

                            current = grammarAccess.getGenNameRulePartAccess().getNullEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getGenNameRulePartAccess().getNullEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8087:6: (enumLiteral_1= 'column-name' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8087:6: (enumLiteral_1= 'column-name' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8087:8: enumLiteral_1= 'column-name'
                    {
                    enumLiteral_1=(Token)match(input,102,FOLLOW_102_in_ruleGenNameRulePart17606); 

                            current = grammarAccess.getGenNameRulePartAccess().getColumn_nameEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getGenNameRulePartAccess().getColumn_nameEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8093:6: (enumLiteral_2= 'table-name' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8093:6: (enumLiteral_2= 'table-name' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8093:8: enumLiteral_2= 'table-name'
                    {
                    enumLiteral_2=(Token)match(input,104,FOLLOW_104_in_ruleGenNameRulePart17623); 

                            current = grammarAccess.getGenNameRulePartAccess().getTable_nameEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getGenNameRulePartAccess().getTable_nameEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8099:6: (enumLiteral_3= 'alias-name' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8099:6: (enumLiteral_3= 'alias-name' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8099:8: enumLiteral_3= 'alias-name'
                    {
                    enumLiteral_3=(Token)match(input,105,FOLLOW_105_in_ruleGenNameRulePart17640); 

                            current = grammarAccess.getGenNameRulePartAccess().getAlias_nameEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getGenNameRulePartAccess().getAlias_nameEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;
                case 5 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8105:6: (enumLiteral_4= 'column-domain-name' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8105:6: (enumLiteral_4= 'column-domain-name' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8105:8: enumLiteral_4= 'column-domain-name'
                    {
                    enumLiteral_4=(Token)match(input,216,FOLLOW_216_in_ruleGenNameRulePart17657); 

                            current = grammarAccess.getGenNameRulePartAccess().getColumn_domain_nameEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_4, grammarAccess.getGenNameRulePartAccess().getColumn_domain_nameEnumLiteralDeclaration_4()); 
                        

                    }


                    }
                    break;
                case 6 :
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8111:6: (enumLiteral_5= 'remove-next' )
                    {
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8111:6: (enumLiteral_5= 'remove-next' )
                    // ../orcas/../xtext-generated/de/opitzconsulting/parser/antlr/internal/InternalOrcasDsl.g:8111:8: enumLiteral_5= 'remove-next'
                    {
                    enumLiteral_5=(Token)match(input,217,FOLLOW_217_in_ruleGenNameRulePart17674); 

                            current = grammarAccess.getGenNameRulePartAccess().getRemove_nextEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_5, grammarAccess.getGenNameRulePartAccess().getRemove_nextEnumLiteralDeclaration_5()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGenNameRulePart"

    // Delegated rules


    protected DFA2 dfa2 = new DFA2(this);
    static final String DFA2_eotS =
        "\12\uffff";
    static final String DFA2_eofS =
        "\12\uffff";
    static final String DFA2_minS =
        "\1\14\1\15\1\uffff\1\16\6\uffff";
    static final String DFA2_maxS =
        "\1\155\1\u00b2\1\uffff\1\144\6\uffff";
    static final String DFA2_acceptS =
        "\2\uffff\1\4\1\uffff\1\3\1\5\1\1\1\2\1\6\1\7";
    static final String DFA2_specialS =
        "\12\uffff}>";
    static final String[] DFA2_transitionS = {
            "\1\1\122\uffff\1\2\15\uffff\1\3",
            "\2\6\12\uffff\1\4\53\uffff\1\4\1\uffff\2\4\1\7\11\uffff\1"+
            "\5\134\uffff\3\6",
            "",
            "\1\10\125\uffff\1\11",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
    static final short[][] DFA2_transition;

    static {
        int numStates = DFA2_transitionS.length;
        DFA2_transition = new short[numStates][];
        for (int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy