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

de.opitzconsulting.services.OrcasDslGrammarAccess Maven / Gradle / Ivy

/*
* generated by Xtext
*/
package de.opitzconsulting.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class OrcasDslGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class ModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
		private final Assignment cModel_elementsAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cModel_elementsModelElementParserRuleCall_0 = (RuleCall)cModel_elementsAssignment.eContents().get(0);
		
		//Model:
		//	model_elements+=ModelElement+;
		public ParserRule getRule() { return rule; }

		//model_elements+=ModelElement+
		public Assignment getModel_elementsAssignment() { return cModel_elementsAssignment; }

		//ModelElement
		public RuleCall getModel_elementsModelElementParserRuleCall_0() { return cModel_elementsModelElementParserRuleCall_0; }
	}

	public class ModelElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelElement");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cTableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cSequenceParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cIndexExTableParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cCommentParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cMviewParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cDomainParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cColumnDomainParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		
		//ModelElement:
		//	Table | Sequence | IndexExTable | Comment | Mview | Domain | ColumnDomain;
		public ParserRule getRule() { return rule; }

		//Table | Sequence | IndexExTable | Comment | Mview | Domain | ColumnDomain
		public Alternatives getAlternatives() { return cAlternatives; }

		//Table
		public RuleCall getTableParserRuleCall_0() { return cTableParserRuleCall_0; }

		//Sequence
		public RuleCall getSequenceParserRuleCall_1() { return cSequenceParserRuleCall_1; }

		//IndexExTable
		public RuleCall getIndexExTableParserRuleCall_2() { return cIndexExTableParserRuleCall_2; }

		//Comment
		public RuleCall getCommentParserRuleCall_3() { return cCommentParserRuleCall_3; }

		//Mview
		public RuleCall getMviewParserRuleCall_4() { return cMviewParserRuleCall_4; }

		//Domain
		public RuleCall getDomainParserRuleCall_5() { return cDomainParserRuleCall_5; }

		//ColumnDomain
		public RuleCall getColumnDomainParserRuleCall_6() { return cColumnDomainParserRuleCall_6; }
	}

	public class TableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Table");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCreateKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cGlobalKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cPermanentnessAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cPermanentnessPermanentnessTypeEnumRuleCall_1_1_0 = (RuleCall)cPermanentnessAssignment_1_1.eContents().get(0);
		private final Keyword cTableKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameDBNAME_WITH_SCHEMAParserRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cAliasKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cAliasAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cAliasDBNAMETerminalRuleCall_4_1_0 = (RuleCall)cAliasAssignment_4_1.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cDomainKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cDomainAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cDomainDBNAMETerminalRuleCall_5_1_0 = (RuleCall)cDomainAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cOfKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cObject_typeAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cObject_typeDBNAME_WITH_SCHEMAParserRuleCall_6_1_0 = (RuleCall)cObject_typeAssignment_6_1.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cLeftParenthesisKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cColumnsAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cColumnsColumnParserRuleCall_7_1_0 = (RuleCall)cColumnsAssignment_7_1.eContents().get(0);
		private final Assignment cPrimary_keyAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
		private final RuleCall cPrimary_keyPrimaryKeyParserRuleCall_7_2_0 = (RuleCall)cPrimary_keyAssignment_7_2.eContents().get(0);
		private final Assignment cConstraintsAssignment_7_3 = (Assignment)cGroup_7.eContents().get(3);
		private final RuleCall cConstraintsConstraintParserRuleCall_7_3_0 = (RuleCall)cConstraintsAssignment_7_3.eContents().get(0);
		private final Assignment cInd_uksAssignment_7_4 = (Assignment)cGroup_7.eContents().get(4);
		private final RuleCall cInd_uksIndexOrUniqueKeyParserRuleCall_7_4_0 = (RuleCall)cInd_uksAssignment_7_4.eContents().get(0);
		private final Assignment cForeign_keysAssignment_7_5 = (Assignment)cGroup_7.eContents().get(5);
		private final RuleCall cForeign_keysForeignKeyParserRuleCall_7_5_0 = (RuleCall)cForeign_keysAssignment_7_5.eContents().get(0);
		private final Assignment cCommentsAssignment_7_6 = (Assignment)cGroup_7.eContents().get(6);
		private final RuleCall cCommentsInlineCommentParserRuleCall_7_6_0 = (RuleCall)cCommentsAssignment_7_6.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7_7 = (Keyword)cGroup_7.eContents().get(7);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cOnKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Keyword cCommitKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
		private final Assignment cTransactionControlAssignment_8_2 = (Assignment)cGroup_8.eContents().get(2);
		private final RuleCall cTransactionControlPermanentnessTransactionTypeEnumRuleCall_8_2_0 = (RuleCall)cTransactionControlAssignment_8_2.eContents().get(0);
		private final Keyword cRowsKeyword_8_3 = (Keyword)cGroup_8.eContents().get(3);
		private final Assignment cLobStoragesAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cLobStoragesLobStorageParserRuleCall_9_0 = (RuleCall)cLobStoragesAssignment_9.eContents().get(0);
		private final Assignment cVarrayStoragesAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cVarrayStoragesVarrayStorageParserRuleCall_10_0 = (RuleCall)cVarrayStoragesAssignment_10.eContents().get(0);
		private final Assignment cNestedTableStoragesAssignment_11 = (Assignment)cGroup.eContents().get(11);
		private final RuleCall cNestedTableStoragesNestedTableStorageParserRuleCall_11_0 = (RuleCall)cNestedTableStoragesAssignment_11.eContents().get(0);
		private final Assignment cTablePartitioningAssignment_12 = (Assignment)cGroup.eContents().get(12);
		private final RuleCall cTablePartitioningTablePartitioningParserRuleCall_12_0 = (RuleCall)cTablePartitioningAssignment_12.eContents().get(0);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cTablespaceKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Assignment cTablespaceAssignment_13_1 = (Assignment)cGroup_13.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_13_1_0 = (RuleCall)cTablespaceAssignment_13_1.eContents().get(0);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cOrganizationKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Assignment cIndexOrganizedAssignment_14_1 = (Assignment)cGroup_14.eContents().get(1);
		private final Keyword cIndexOrganizedIndexKeyword_14_1_0 = (Keyword)cIndexOrganizedAssignment_14_1.eContents().get(0);
		private final Group cGroup_14_2 = (Group)cGroup_14.eContents().get(2);
		private final Keyword cPctthresholdKeyword_14_2_0 = (Keyword)cGroup_14_2.eContents().get(0);
		private final Assignment cPctthresholdAssignment_14_2_1 = (Assignment)cGroup_14_2.eContents().get(1);
		private final RuleCall cPctthresholdNULLABLE_INTParserRuleCall_14_2_1_0 = (RuleCall)cPctthresholdAssignment_14_2_1.eContents().get(0);
		private final Group cGroup_14_3 = (Group)cGroup_14.eContents().get(3);
		private final Keyword cIncludingKeyword_14_3_0 = (Keyword)cGroup_14_3.eContents().get(0);
		private final Assignment cIncludingColumnAssignment_14_3_1 = (Assignment)cGroup_14_3.eContents().get(1);
		private final RuleCall cIncludingColumnDBNAMETerminalRuleCall_14_3_1_0 = (RuleCall)cIncludingColumnAssignment_14_3_1.eContents().get(0);
		private final Group cGroup_14_4 = (Group)cGroup_14.eContents().get(4);
		private final Keyword cOverflowKeyword_14_4_0 = (Keyword)cGroup_14_4.eContents().get(0);
		private final Keyword cTablespaceKeyword_14_4_1 = (Keyword)cGroup_14_4.eContents().get(1);
		private final Assignment cOverflowTablespaceAssignment_14_4_2 = (Assignment)cGroup_14_4.eContents().get(2);
		private final RuleCall cOverflowTablespaceDBNAMETerminalRuleCall_14_4_2_0 = (RuleCall)cOverflowTablespaceAssignment_14_4_2.eContents().get(0);
		private final Group cGroup_15 = (Group)cGroup.eContents().get(15);
		private final Keyword cPctfreeKeyword_15_0 = (Keyword)cGroup_15.eContents().get(0);
		private final Assignment cPctfreeAssignment_15_1 = (Assignment)cGroup_15.eContents().get(1);
		private final RuleCall cPctfreeNULLABLE_INTParserRuleCall_15_1_0 = (RuleCall)cPctfreeAssignment_15_1.eContents().get(0);
		private final Group cGroup_16 = (Group)cGroup.eContents().get(16);
		private final Assignment cCompressionAssignment_16_0 = (Assignment)cGroup_16.eContents().get(0);
		private final RuleCall cCompressionCompressTypeEnumRuleCall_16_0_0 = (RuleCall)cCompressionAssignment_16_0.eContents().get(0);
		private final Group cGroup_16_1 = (Group)cGroup_16.eContents().get(1);
		private final Keyword cForKeyword_16_1_0 = (Keyword)cGroup_16_1.eContents().get(0);
		private final Assignment cCompressionForAssignment_16_1_1 = (Assignment)cGroup_16_1.eContents().get(1);
		private final RuleCall cCompressionForCompressForTypeEnumRuleCall_16_1_1_0 = (RuleCall)cCompressionForAssignment_16_1_1.eContents().get(0);
		private final Assignment cLoggingAssignment_17 = (Assignment)cGroup.eContents().get(17);
		private final RuleCall cLoggingLoggingTypeEnumRuleCall_17_0 = (RuleCall)cLoggingAssignment_17.eContents().get(0);
		private final Group cGroup_18 = (Group)cGroup.eContents().get(18);
		private final Assignment cParallelAssignment_18_0 = (Assignment)cGroup_18.eContents().get(0);
		private final RuleCall cParallelParallelTypeEnumRuleCall_18_0_0 = (RuleCall)cParallelAssignment_18_0.eContents().get(0);
		private final Assignment cParallel_degreeAssignment_18_1 = (Assignment)cGroup_18.eContents().get(1);
		private final RuleCall cParallel_degreeINTTerminalRuleCall_18_1_0 = (RuleCall)cParallel_degreeAssignment_18_1.eContents().get(0);
		private final Assignment cMviewLogAssignment_19 = (Assignment)cGroup.eContents().get(19);
		private final RuleCall cMviewLogMviewLogParserRuleCall_19_0 = (RuleCall)cMviewLogAssignment_19.eContents().get(0);
		private final Keyword cSemicolonKeyword_20 = (Keyword)cGroup.eContents().get(20);
		
		//Table:
		//	"create" ("global"? permanentness=PermanentnessType)? "table" name=DBNAME_WITH_SCHEMA ("alias" alias=DBNAME)?
		//	("domain" domain=DBNAME)? ("of" object_type=DBNAME_WITH_SCHEMA)? ("(" columns+=Column* primary_key=PrimaryKey?
		//	constraints+=Constraint* ind_uks+=IndexOrUniqueKey* foreign_keys+=ForeignKey* comments+=InlineComment* ")")? ("on"
		//	"commit" transactionControl=PermanentnessTransactionType "rows")? lobStorages+=LobStorage*
		//	varrayStorages+=VarrayStorage* nestedTableStorages+=NestedTableStorage* tablePartitioning=TablePartitioning?
		//	("tablespace" tablespace=DBNAME)? ("organization" indexOrganized?="index" ("pctthreshold" pctthreshold=NULLABLE_INT)?
		//	("including" includingColumn=DBNAME)? ("overflow" "tablespace" overflowTablespace=DBNAME)?)? ("pctfree"
		//	pctfree=NULLABLE_INT)? (compression=CompressType ("for" compressionFor=CompressForType)?)? logging=LoggingType?
		//	(parallel=ParallelType parallel_degree=INT?)? mviewLog=MviewLog? ";";
		public ParserRule getRule() { return rule; }

		//"create" ("global"? permanentness=PermanentnessType)? "table" name=DBNAME_WITH_SCHEMA ("alias" alias=DBNAME)? ("domain"
		//domain=DBNAME)? ("of" object_type=DBNAME_WITH_SCHEMA)? ("(" columns+=Column* primary_key=PrimaryKey?
		//constraints+=Constraint* ind_uks+=IndexOrUniqueKey* foreign_keys+=ForeignKey* comments+=InlineComment* ")")? ("on"
		//"commit" transactionControl=PermanentnessTransactionType "rows")? lobStorages+=LobStorage*
		//varrayStorages+=VarrayStorage* nestedTableStorages+=NestedTableStorage* tablePartitioning=TablePartitioning?
		//("tablespace" tablespace=DBNAME)? ("organization" indexOrganized?="index" ("pctthreshold" pctthreshold=NULLABLE_INT)?
		//("including" includingColumn=DBNAME)? ("overflow" "tablespace" overflowTablespace=DBNAME)?)? ("pctfree"
		//pctfree=NULLABLE_INT)? (compression=CompressType ("for" compressionFor=CompressForType)?)? logging=LoggingType?
		//(parallel=ParallelType parallel_degree=INT?)? mviewLog=MviewLog? ";"
		public Group getGroup() { return cGroup; }

		//"create"
		public Keyword getCreateKeyword_0() { return cCreateKeyword_0; }

		//("global"? permanentness=PermanentnessType)?
		public Group getGroup_1() { return cGroup_1; }

		//"global"?
		public Keyword getGlobalKeyword_1_0() { return cGlobalKeyword_1_0; }

		//permanentness=PermanentnessType
		public Assignment getPermanentnessAssignment_1_1() { return cPermanentnessAssignment_1_1; }

		//PermanentnessType
		public RuleCall getPermanentnessPermanentnessTypeEnumRuleCall_1_1_0() { return cPermanentnessPermanentnessTypeEnumRuleCall_1_1_0; }

		//"table"
		public Keyword getTableKeyword_2() { return cTableKeyword_2; }

		//name=DBNAME_WITH_SCHEMA
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getNameDBNAME_WITH_SCHEMAParserRuleCall_3_0() { return cNameDBNAME_WITH_SCHEMAParserRuleCall_3_0; }

		//("alias" alias=DBNAME)?
		public Group getGroup_4() { return cGroup_4; }

		//"alias"
		public Keyword getAliasKeyword_4_0() { return cAliasKeyword_4_0; }

		//alias=DBNAME
		public Assignment getAliasAssignment_4_1() { return cAliasAssignment_4_1; }

		//DBNAME
		public RuleCall getAliasDBNAMETerminalRuleCall_4_1_0() { return cAliasDBNAMETerminalRuleCall_4_1_0; }

		//("domain" domain=DBNAME)?
		public Group getGroup_5() { return cGroup_5; }

		//"domain"
		public Keyword getDomainKeyword_5_0() { return cDomainKeyword_5_0; }

		//domain=DBNAME
		public Assignment getDomainAssignment_5_1() { return cDomainAssignment_5_1; }

		//DBNAME
		public RuleCall getDomainDBNAMETerminalRuleCall_5_1_0() { return cDomainDBNAMETerminalRuleCall_5_1_0; }

		//("of" object_type=DBNAME_WITH_SCHEMA)?
		public Group getGroup_6() { return cGroup_6; }

		//"of"
		public Keyword getOfKeyword_6_0() { return cOfKeyword_6_0; }

		//object_type=DBNAME_WITH_SCHEMA
		public Assignment getObject_typeAssignment_6_1() { return cObject_typeAssignment_6_1; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getObject_typeDBNAME_WITH_SCHEMAParserRuleCall_6_1_0() { return cObject_typeDBNAME_WITH_SCHEMAParserRuleCall_6_1_0; }

		//("(" columns+=Column* primary_key=PrimaryKey? constraints+=Constraint* ind_uks+=IndexOrUniqueKey*
		//foreign_keys+=ForeignKey* comments+=InlineComment* ")")?
		public Group getGroup_7() { return cGroup_7; }

		//"("
		public Keyword getLeftParenthesisKeyword_7_0() { return cLeftParenthesisKeyword_7_0; }

		//columns+=Column*
		public Assignment getColumnsAssignment_7_1() { return cColumnsAssignment_7_1; }

		//Column
		public RuleCall getColumnsColumnParserRuleCall_7_1_0() { return cColumnsColumnParserRuleCall_7_1_0; }

		//primary_key=PrimaryKey?
		public Assignment getPrimary_keyAssignment_7_2() { return cPrimary_keyAssignment_7_2; }

		//PrimaryKey
		public RuleCall getPrimary_keyPrimaryKeyParserRuleCall_7_2_0() { return cPrimary_keyPrimaryKeyParserRuleCall_7_2_0; }

		//constraints+=Constraint*
		public Assignment getConstraintsAssignment_7_3() { return cConstraintsAssignment_7_3; }

		//Constraint
		public RuleCall getConstraintsConstraintParserRuleCall_7_3_0() { return cConstraintsConstraintParserRuleCall_7_3_0; }

		//ind_uks+=IndexOrUniqueKey*
		public Assignment getInd_uksAssignment_7_4() { return cInd_uksAssignment_7_4; }

		//IndexOrUniqueKey
		public RuleCall getInd_uksIndexOrUniqueKeyParserRuleCall_7_4_0() { return cInd_uksIndexOrUniqueKeyParserRuleCall_7_4_0; }

		//foreign_keys+=ForeignKey*
		public Assignment getForeign_keysAssignment_7_5() { return cForeign_keysAssignment_7_5; }

		//ForeignKey
		public RuleCall getForeign_keysForeignKeyParserRuleCall_7_5_0() { return cForeign_keysForeignKeyParserRuleCall_7_5_0; }

		//comments+=InlineComment*
		public Assignment getCommentsAssignment_7_6() { return cCommentsAssignment_7_6; }

		//InlineComment
		public RuleCall getCommentsInlineCommentParserRuleCall_7_6_0() { return cCommentsInlineCommentParserRuleCall_7_6_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7_7() { return cRightParenthesisKeyword_7_7; }

		//("on" "commit" transactionControl=PermanentnessTransactionType "rows")?
		public Group getGroup_8() { return cGroup_8; }

		//"on"
		public Keyword getOnKeyword_8_0() { return cOnKeyword_8_0; }

		//"commit"
		public Keyword getCommitKeyword_8_1() { return cCommitKeyword_8_1; }

		//transactionControl=PermanentnessTransactionType
		public Assignment getTransactionControlAssignment_8_2() { return cTransactionControlAssignment_8_2; }

		//PermanentnessTransactionType
		public RuleCall getTransactionControlPermanentnessTransactionTypeEnumRuleCall_8_2_0() { return cTransactionControlPermanentnessTransactionTypeEnumRuleCall_8_2_0; }

		//"rows"
		public Keyword getRowsKeyword_8_3() { return cRowsKeyword_8_3; }

		//lobStorages+=LobStorage*
		public Assignment getLobStoragesAssignment_9() { return cLobStoragesAssignment_9; }

		//LobStorage
		public RuleCall getLobStoragesLobStorageParserRuleCall_9_0() { return cLobStoragesLobStorageParserRuleCall_9_0; }

		//varrayStorages+=VarrayStorage*
		public Assignment getVarrayStoragesAssignment_10() { return cVarrayStoragesAssignment_10; }

		//VarrayStorage
		public RuleCall getVarrayStoragesVarrayStorageParserRuleCall_10_0() { return cVarrayStoragesVarrayStorageParserRuleCall_10_0; }

		//nestedTableStorages+=NestedTableStorage*
		public Assignment getNestedTableStoragesAssignment_11() { return cNestedTableStoragesAssignment_11; }

		//NestedTableStorage
		public RuleCall getNestedTableStoragesNestedTableStorageParserRuleCall_11_0() { return cNestedTableStoragesNestedTableStorageParserRuleCall_11_0; }

		//tablePartitioning=TablePartitioning?
		public Assignment getTablePartitioningAssignment_12() { return cTablePartitioningAssignment_12; }

		//TablePartitioning
		public RuleCall getTablePartitioningTablePartitioningParserRuleCall_12_0() { return cTablePartitioningTablePartitioningParserRuleCall_12_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_13() { return cGroup_13; }

		//"tablespace"
		public Keyword getTablespaceKeyword_13_0() { return cTablespaceKeyword_13_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_13_1() { return cTablespaceAssignment_13_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_13_1_0() { return cTablespaceDBNAMETerminalRuleCall_13_1_0; }

		//("organization" indexOrganized?="index" ("pctthreshold" pctthreshold=NULLABLE_INT)? ("including"
		//includingColumn=DBNAME)? ("overflow" "tablespace" overflowTablespace=DBNAME)?)?
		public Group getGroup_14() { return cGroup_14; }

		//"organization"
		public Keyword getOrganizationKeyword_14_0() { return cOrganizationKeyword_14_0; }

		//indexOrganized?="index"
		public Assignment getIndexOrganizedAssignment_14_1() { return cIndexOrganizedAssignment_14_1; }

		//"index"
		public Keyword getIndexOrganizedIndexKeyword_14_1_0() { return cIndexOrganizedIndexKeyword_14_1_0; }

		//("pctthreshold" pctthreshold=NULLABLE_INT)?
		public Group getGroup_14_2() { return cGroup_14_2; }

		//"pctthreshold"
		public Keyword getPctthresholdKeyword_14_2_0() { return cPctthresholdKeyword_14_2_0; }

		//pctthreshold=NULLABLE_INT
		public Assignment getPctthresholdAssignment_14_2_1() { return cPctthresholdAssignment_14_2_1; }

		//NULLABLE_INT
		public RuleCall getPctthresholdNULLABLE_INTParserRuleCall_14_2_1_0() { return cPctthresholdNULLABLE_INTParserRuleCall_14_2_1_0; }

		//("including" includingColumn=DBNAME)?
		public Group getGroup_14_3() { return cGroup_14_3; }

		//"including"
		public Keyword getIncludingKeyword_14_3_0() { return cIncludingKeyword_14_3_0; }

		//includingColumn=DBNAME
		public Assignment getIncludingColumnAssignment_14_3_1() { return cIncludingColumnAssignment_14_3_1; }

		//DBNAME
		public RuleCall getIncludingColumnDBNAMETerminalRuleCall_14_3_1_0() { return cIncludingColumnDBNAMETerminalRuleCall_14_3_1_0; }

		//("overflow" "tablespace" overflowTablespace=DBNAME)?
		public Group getGroup_14_4() { return cGroup_14_4; }

		//"overflow"
		public Keyword getOverflowKeyword_14_4_0() { return cOverflowKeyword_14_4_0; }

		//"tablespace"
		public Keyword getTablespaceKeyword_14_4_1() { return cTablespaceKeyword_14_4_1; }

		//overflowTablespace=DBNAME
		public Assignment getOverflowTablespaceAssignment_14_4_2() { return cOverflowTablespaceAssignment_14_4_2; }

		//DBNAME
		public RuleCall getOverflowTablespaceDBNAMETerminalRuleCall_14_4_2_0() { return cOverflowTablespaceDBNAMETerminalRuleCall_14_4_2_0; }

		//("pctfree" pctfree=NULLABLE_INT)?
		public Group getGroup_15() { return cGroup_15; }

		//"pctfree"
		public Keyword getPctfreeKeyword_15_0() { return cPctfreeKeyword_15_0; }

		//pctfree=NULLABLE_INT
		public Assignment getPctfreeAssignment_15_1() { return cPctfreeAssignment_15_1; }

		//NULLABLE_INT
		public RuleCall getPctfreeNULLABLE_INTParserRuleCall_15_1_0() { return cPctfreeNULLABLE_INTParserRuleCall_15_1_0; }

		//(compression=CompressType ("for" compressionFor=CompressForType)?)?
		public Group getGroup_16() { return cGroup_16; }

		//compression=CompressType
		public Assignment getCompressionAssignment_16_0() { return cCompressionAssignment_16_0; }

		//CompressType
		public RuleCall getCompressionCompressTypeEnumRuleCall_16_0_0() { return cCompressionCompressTypeEnumRuleCall_16_0_0; }

		//("for" compressionFor=CompressForType)?
		public Group getGroup_16_1() { return cGroup_16_1; }

		//"for"
		public Keyword getForKeyword_16_1_0() { return cForKeyword_16_1_0; }

		//compressionFor=CompressForType
		public Assignment getCompressionForAssignment_16_1_1() { return cCompressionForAssignment_16_1_1; }

		//CompressForType
		public RuleCall getCompressionForCompressForTypeEnumRuleCall_16_1_1_0() { return cCompressionForCompressForTypeEnumRuleCall_16_1_1_0; }

		//logging=LoggingType?
		public Assignment getLoggingAssignment_17() { return cLoggingAssignment_17; }

		//LoggingType
		public RuleCall getLoggingLoggingTypeEnumRuleCall_17_0() { return cLoggingLoggingTypeEnumRuleCall_17_0; }

		//(parallel=ParallelType parallel_degree=INT?)?
		public Group getGroup_18() { return cGroup_18; }

		//parallel=ParallelType
		public Assignment getParallelAssignment_18_0() { return cParallelAssignment_18_0; }

		//ParallelType
		public RuleCall getParallelParallelTypeEnumRuleCall_18_0_0() { return cParallelParallelTypeEnumRuleCall_18_0_0; }

		//parallel_degree=INT?
		public Assignment getParallel_degreeAssignment_18_1() { return cParallel_degreeAssignment_18_1; }

		//INT
		public RuleCall getParallel_degreeINTTerminalRuleCall_18_1_0() { return cParallel_degreeINTTerminalRuleCall_18_1_0; }

		//mviewLog=MviewLog?
		public Assignment getMviewLogAssignment_19() { return cMviewLogAssignment_19; }

		//MviewLog
		public RuleCall getMviewLogMviewLogParserRuleCall_19_0() { return cMviewLogMviewLogParserRuleCall_19_0; }

		//";"
		public Keyword getSemicolonKeyword_20() { return cSemicolonKeyword_20; }
	}

	public class TablePartitioningElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TablePartitioning");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cByKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final RuleCall cRangePartitionsParserRuleCall_2_0 = (RuleCall)cAlternatives_2.eContents().get(0);
		private final RuleCall cHashPartitionsParserRuleCall_2_1 = (RuleCall)cAlternatives_2.eContents().get(1);
		private final RuleCall cListPartitionsParserRuleCall_2_2 = (RuleCall)cAlternatives_2.eContents().get(2);
		private final RuleCall cRefPartitionsParserRuleCall_2_3 = (RuleCall)cAlternatives_2.eContents().get(3);
		
		//TablePartitioning:
		//	"partition" "by" (RangePartitions | HashPartitions | ListPartitions | RefPartitions);
		public ParserRule getRule() { return rule; }

		//"partition" "by" (RangePartitions | HashPartitions | ListPartitions | RefPartitions)
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//"by"
		public Keyword getByKeyword_1() { return cByKeyword_1; }

		//RangePartitions | HashPartitions | ListPartitions | RefPartitions
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//RangePartitions
		public RuleCall getRangePartitionsParserRuleCall_2_0() { return cRangePartitionsParserRuleCall_2_0; }

		//HashPartitions
		public RuleCall getHashPartitionsParserRuleCall_2_1() { return cHashPartitionsParserRuleCall_2_1; }

		//ListPartitions
		public RuleCall getListPartitionsParserRuleCall_2_2() { return cListPartitionsParserRuleCall_2_2; }

		//RefPartitions
		public RuleCall getRefPartitionsParserRuleCall_2_3() { return cRefPartitionsParserRuleCall_2_3; }
	}

	public class RangePartitionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RangePartitions");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cRangeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumnsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumnsColumnRefParserRuleCall_2_0 = (RuleCall)cColumnsAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cIntervalKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cIntervalExpressionAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cIntervalExpressionSTRINGTerminalRuleCall_4_2_0 = (RuleCall)cIntervalExpressionAssignment_4_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
		private final Alternatives cAlternatives_5 = (Alternatives)cGroup.eContents().get(5);
		private final Group cGroup_5_0 = (Group)cAlternatives_5.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_5_0_0 = (Keyword)cGroup_5_0.eContents().get(0);
		private final Assignment cPartitionListAssignment_5_0_1 = (Assignment)cGroup_5_0.eContents().get(1);
		private final RuleCall cPartitionListRangePartitionParserRuleCall_5_0_1_0 = (RuleCall)cPartitionListAssignment_5_0_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5_0_2 = (Keyword)cGroup_5_0.eContents().get(2);
		private final Group cGroup_5_1 = (Group)cAlternatives_5.eContents().get(1);
		private final Assignment cTableSubPartAssignment_5_1_0 = (Assignment)cGroup_5_1.eContents().get(0);
		private final RuleCall cTableSubPartTableSubPartParserRuleCall_5_1_0_0 = (RuleCall)cTableSubPartAssignment_5_1_0.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_5_1_1 = (Keyword)cGroup_5_1.eContents().get(1);
		private final Assignment cSubPartitionListAssignment_5_1_2 = (Assignment)cGroup_5_1.eContents().get(2);
		private final RuleCall cSubPartitionListRangeSubPartParserRuleCall_5_1_2_0 = (RuleCall)cSubPartitionListAssignment_5_1_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5_1_3 = (Keyword)cGroup_5_1.eContents().get(3);
		
		//RangePartitions:
		//	"range" "(" columns+=ColumnRef+ ")" ("interval" "(" intervalExpression=STRING ")")? ("("
		//	partitionList+=RangePartition+ ")" | tableSubPart=TableSubPart "(" subPartitionList+=RangeSubPart+ ")");
		public ParserRule getRule() { return rule; }

		//"range" "(" columns+=ColumnRef+ ")" ("interval" "(" intervalExpression=STRING ")")? ("(" partitionList+=RangePartition+
		//")" | tableSubPart=TableSubPart "(" subPartitionList+=RangeSubPart+ ")")
		public Group getGroup() { return cGroup; }

		//"range"
		public Keyword getRangeKeyword_0() { return cRangeKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//columns+=ColumnRef+
		public Assignment getColumnsAssignment_2() { return cColumnsAssignment_2; }

		//ColumnRef
		public RuleCall getColumnsColumnRefParserRuleCall_2_0() { return cColumnsColumnRefParserRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }

		//("interval" "(" intervalExpression=STRING ")")?
		public Group getGroup_4() { return cGroup_4; }

		//"interval"
		public Keyword getIntervalKeyword_4_0() { return cIntervalKeyword_4_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_4_1() { return cLeftParenthesisKeyword_4_1; }

		//intervalExpression=STRING
		public Assignment getIntervalExpressionAssignment_4_2() { return cIntervalExpressionAssignment_4_2; }

		//STRING
		public RuleCall getIntervalExpressionSTRINGTerminalRuleCall_4_2_0() { return cIntervalExpressionSTRINGTerminalRuleCall_4_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_4_3() { return cRightParenthesisKeyword_4_3; }

		//"(" partitionList+=RangePartition+ ")" | tableSubPart=TableSubPart "(" subPartitionList+=RangeSubPart+ ")"
		public Alternatives getAlternatives_5() { return cAlternatives_5; }

		//"(" partitionList+=RangePartition+ ")"
		public Group getGroup_5_0() { return cGroup_5_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_5_0_0() { return cLeftParenthesisKeyword_5_0_0; }

		//partitionList+=RangePartition+
		public Assignment getPartitionListAssignment_5_0_1() { return cPartitionListAssignment_5_0_1; }

		//RangePartition
		public RuleCall getPartitionListRangePartitionParserRuleCall_5_0_1_0() { return cPartitionListRangePartitionParserRuleCall_5_0_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5_0_2() { return cRightParenthesisKeyword_5_0_2; }

		//tableSubPart=TableSubPart "(" subPartitionList+=RangeSubPart+ ")"
		public Group getGroup_5_1() { return cGroup_5_1; }

		//tableSubPart=TableSubPart
		public Assignment getTableSubPartAssignment_5_1_0() { return cTableSubPartAssignment_5_1_0; }

		//TableSubPart
		public RuleCall getTableSubPartTableSubPartParserRuleCall_5_1_0_0() { return cTableSubPartTableSubPartParserRuleCall_5_1_0_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_5_1_1() { return cLeftParenthesisKeyword_5_1_1; }

		//subPartitionList+=RangeSubPart+
		public Assignment getSubPartitionListAssignment_5_1_2() { return cSubPartitionListAssignment_5_1_2; }

		//RangeSubPart
		public RuleCall getSubPartitionListRangeSubPartParserRuleCall_5_1_2_0() { return cSubPartitionListRangeSubPartParserRuleCall_5_1_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5_1_3() { return cRightParenthesisKeyword_5_1_3; }
	}

	public class TableSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableSubPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cSubpartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cByKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final RuleCall cRangeSubPartsParserRuleCall_2_0 = (RuleCall)cAlternatives_2.eContents().get(0);
		private final RuleCall cListSubPartsParserRuleCall_2_1 = (RuleCall)cAlternatives_2.eContents().get(1);
		private final RuleCall cHashSubPartsParserRuleCall_2_2 = (RuleCall)cAlternatives_2.eContents().get(2);
		
		//TableSubPart:
		//	"subpartition" "by" (RangeSubParts | ListSubParts | HashSubParts);
		public ParserRule getRule() { return rule; }

		//"subpartition" "by" (RangeSubParts | ListSubParts | HashSubParts)
		public Group getGroup() { return cGroup; }

		//"subpartition"
		public Keyword getSubpartitionKeyword_0() { return cSubpartitionKeyword_0; }

		//"by"
		public Keyword getByKeyword_1() { return cByKeyword_1; }

		//RangeSubParts | ListSubParts | HashSubParts
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//RangeSubParts
		public RuleCall getRangeSubPartsParserRuleCall_2_0() { return cRangeSubPartsParserRuleCall_2_0; }

		//ListSubParts
		public RuleCall getListSubPartsParserRuleCall_2_1() { return cListSubPartsParserRuleCall_2_1; }

		//HashSubParts
		public RuleCall getHashSubPartsParserRuleCall_2_2() { return cHashSubPartsParserRuleCall_2_2; }
	}

	public class RangeSubPartsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RangeSubParts");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cRangeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumnsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumnsColumnRefParserRuleCall_2_0 = (RuleCall)cColumnsAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//RangeSubParts:
		//	"range" "(" columns+=ColumnRef+ ")";
		public ParserRule getRule() { return rule; }

		//"range" "(" columns+=ColumnRef+ ")"
		public Group getGroup() { return cGroup; }

		//"range"
		public Keyword getRangeKeyword_0() { return cRangeKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//columns+=ColumnRef+
		public Assignment getColumnsAssignment_2() { return cColumnsAssignment_2; }

		//ColumnRef
		public RuleCall getColumnsColumnRefParserRuleCall_2_0() { return cColumnsColumnRefParserRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
	}

	public class ListSubPartsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ListSubParts");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cListKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumnAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumnColumnRefParserRuleCall_2_0 = (RuleCall)cColumnAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//ListSubParts:
		//	"list" "(" column=ColumnRef ")";
		public ParserRule getRule() { return rule; }

		//"list" "(" column=ColumnRef ")"
		public Group getGroup() { return cGroup; }

		//"list"
		public Keyword getListKeyword_0() { return cListKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//column=ColumnRef
		public Assignment getColumnAssignment_2() { return cColumnAssignment_2; }

		//ColumnRef
		public RuleCall getColumnColumnRefParserRuleCall_2_0() { return cColumnColumnRefParserRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
	}

	public class HashSubPartsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HashSubParts");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cHashKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumnAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumnColumnRefParserRuleCall_2_0 = (RuleCall)cColumnAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//HashSubParts:
		//	"hash" "(" column=ColumnRef ")";
		public ParserRule getRule() { return rule; }

		//"hash" "(" column=ColumnRef ")"
		public Group getGroup() { return cGroup; }

		//"hash"
		public Keyword getHashKeyword_0() { return cHashKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//column=ColumnRef
		public Assignment getColumnAssignment_2() { return cColumnAssignment_2; }

		//ColumnRef
		public RuleCall getColumnColumnRefParserRuleCall_2_0() { return cColumnColumnRefParserRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
	}

	public class RangeSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RangeSubPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cValuesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLessKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cThanKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cValueAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cValueRangePartitionValueParserRuleCall_6_0 = (RuleCall)cValueAssignment_6.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cLeftParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cSubPartListAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cSubPartListSubSubPartParserRuleCall_9_0 = (RuleCall)cSubPartListAssignment_9.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_10 = (Keyword)cGroup.eContents().get(10);
		private final Keyword cCommaKeyword_11 = (Keyword)cGroup.eContents().get(11);
		
		//RangeSubPart:
		//	"partition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" "(" subPartList+=SubSubPart+ ")"
		//	","?;
		public ParserRule getRule() { return rule; }

		//"partition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" "(" subPartList+=SubSubPart+ ")" ","?
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//"values"
		public Keyword getValuesKeyword_2() { return cValuesKeyword_2; }

		//"less"
		public Keyword getLessKeyword_3() { return cLessKeyword_3; }

		//"than"
		public Keyword getThanKeyword_4() { return cThanKeyword_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_5() { return cLeftParenthesisKeyword_5; }

		//value+=RangePartitionValue+
		public Assignment getValueAssignment_6() { return cValueAssignment_6; }

		//RangePartitionValue
		public RuleCall getValueRangePartitionValueParserRuleCall_6_0() { return cValueRangePartitionValueParserRuleCall_6_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7() { return cRightParenthesisKeyword_7; }

		//"("
		public Keyword getLeftParenthesisKeyword_8() { return cLeftParenthesisKeyword_8; }

		//subPartList+=SubSubPart+
		public Assignment getSubPartListAssignment_9() { return cSubPartListAssignment_9; }

		//SubSubPart
		public RuleCall getSubPartListSubSubPartParserRuleCall_9_0() { return cSubPartListSubSubPartParserRuleCall_9_0; }

		//")"
		public Keyword getRightParenthesisKeyword_10() { return cRightParenthesisKeyword_10; }

		//","?
		public Keyword getCommaKeyword_11() { return cCommaKeyword_11; }
	}

	public class ListSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ListSubPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cValuesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cValueListPartitionValueParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cLeftParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cSubPartListAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cSubPartListSubSubPartParserRuleCall_7_0 = (RuleCall)cSubPartListAssignment_7.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cCommaKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//ListSubPart:
		//	"partition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" "(" subPartList+=SubSubPart+ ")" ","?;
		public ParserRule getRule() { return rule; }

		//"partition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" "(" subPartList+=SubSubPart+ ")" ","?
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//"values"
		public Keyword getValuesKeyword_2() { return cValuesKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//value+=ListPartitionValue+
		public Assignment getValueAssignment_4() { return cValueAssignment_4; }

		//ListPartitionValue
		public RuleCall getValueListPartitionValueParserRuleCall_4_0() { return cValueListPartitionValueParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//"("
		public Keyword getLeftParenthesisKeyword_6() { return cLeftParenthesisKeyword_6; }

		//subPartList+=SubSubPart+
		public Assignment getSubPartListAssignment_7() { return cSubPartListAssignment_7; }

		//SubSubPart
		public RuleCall getSubPartListSubSubPartParserRuleCall_7_0() { return cSubPartListSubSubPartParserRuleCall_7_0; }

		//")"
		public Keyword getRightParenthesisKeyword_8() { return cRightParenthesisKeyword_8; }

		//","?
		public Keyword getCommaKeyword_9() { return cCommaKeyword_9; }
	}

	public class SubSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SubSubPart");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cRangeSubSubPartParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cListSubSubPartParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cHashSubSubPartParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		//SubSubPart:
		//	RangeSubSubPart | ListSubSubPart | HashSubSubPart;
		public ParserRule getRule() { return rule; }

		//RangeSubSubPart | ListSubSubPart | HashSubSubPart
		public Alternatives getAlternatives() { return cAlternatives; }

		//RangeSubSubPart
		public RuleCall getRangeSubSubPartParserRuleCall_0() { return cRangeSubSubPartParserRuleCall_0; }

		//ListSubSubPart
		public RuleCall getListSubSubPartParserRuleCall_1() { return cListSubSubPartParserRuleCall_1; }

		//HashSubSubPart
		public RuleCall getHashSubSubPartParserRuleCall_2() { return cHashSubSubPartParserRuleCall_2; }
	}

	public class RangeSubSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RangeSubSubPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cSubpartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cValuesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLessKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cThanKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cValueAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cValueRangePartitionValueParserRuleCall_6_0 = (RuleCall)cValueAssignment_6.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cTablespaceKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cTablespaceAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_8_1_0 = (RuleCall)cTablespaceAssignment_8_1.eContents().get(0);
		private final Keyword cCommaKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//RangeSubSubPart:
		//	"subpartition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" ("tablespace"
		//	tablespace=DBNAME)? ","?;
		public ParserRule getRule() { return rule; }

		//"subpartition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" ("tablespace" tablespace=DBNAME)?
		//","?
		public Group getGroup() { return cGroup; }

		//"subpartition"
		public Keyword getSubpartitionKeyword_0() { return cSubpartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//"values"
		public Keyword getValuesKeyword_2() { return cValuesKeyword_2; }

		//"less"
		public Keyword getLessKeyword_3() { return cLessKeyword_3; }

		//"than"
		public Keyword getThanKeyword_4() { return cThanKeyword_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_5() { return cLeftParenthesisKeyword_5; }

		//value+=RangePartitionValue+
		public Assignment getValueAssignment_6() { return cValueAssignment_6; }

		//RangePartitionValue
		public RuleCall getValueRangePartitionValueParserRuleCall_6_0() { return cValueRangePartitionValueParserRuleCall_6_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7() { return cRightParenthesisKeyword_7; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_8() { return cGroup_8; }

		//"tablespace"
		public Keyword getTablespaceKeyword_8_0() { return cTablespaceKeyword_8_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_8_1() { return cTablespaceAssignment_8_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_8_1_0() { return cTablespaceDBNAMETerminalRuleCall_8_1_0; }

		//","?
		public Keyword getCommaKeyword_9() { return cCommaKeyword_9; }
	}

	public class ListSubSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ListSubSubPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cSubpartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cValuesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cValueListPartitionValueParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cTablespaceKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cTablespaceAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_6_1_0 = (RuleCall)cTablespaceAssignment_6_1.eContents().get(0);
		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//ListSubSubPart:
		//	"subpartition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" ("tablespace" tablespace=DBNAME)? ","?;
		public ParserRule getRule() { return rule; }

		//"subpartition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" ("tablespace" tablespace=DBNAME)? ","?
		public Group getGroup() { return cGroup; }

		//"subpartition"
		public Keyword getSubpartitionKeyword_0() { return cSubpartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//"values"
		public Keyword getValuesKeyword_2() { return cValuesKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//value+=ListPartitionValue+
		public Assignment getValueAssignment_4() { return cValueAssignment_4; }

		//ListPartitionValue
		public RuleCall getValueListPartitionValueParserRuleCall_4_0() { return cValueListPartitionValueParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_6() { return cGroup_6; }

		//"tablespace"
		public Keyword getTablespaceKeyword_6_0() { return cTablespaceKeyword_6_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_6_1() { return cTablespaceAssignment_6_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_6_1_0() { return cTablespaceDBNAMETerminalRuleCall_6_1_0; }

		//","?
		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }
	}

	public class HashSubSubPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HashSubSubPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cSubpartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cTablespaceKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cTablespaceAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_2_1_0 = (RuleCall)cTablespaceAssignment_2_1.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//HashSubSubPart:
		//	"subpartition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?;
		public ParserRule getRule() { return rule; }

		//"subpartition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?
		public Group getGroup() { return cGroup; }

		//"subpartition"
		public Keyword getSubpartitionKeyword_0() { return cSubpartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_2() { return cGroup_2; }

		//"tablespace"
		public Keyword getTablespaceKeyword_2_0() { return cTablespaceKeyword_2_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_2_1() { return cTablespaceAssignment_2_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_2_1_0() { return cTablespaceDBNAMETerminalRuleCall_2_1_0; }

		//","?
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
	}

	public class RangePartitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RangePartition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cValuesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLessKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cThanKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cValueAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cValueRangePartitionValueParserRuleCall_6_0 = (RuleCall)cValueAssignment_6.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cTablespaceKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cTablespaceAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_8_1_0 = (RuleCall)cTablespaceAssignment_8_1.eContents().get(0);
		private final Keyword cCommaKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//RangePartition:
		//	"partition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" ("tablespace" tablespace=DBNAME)?
		//	","?;
		public ParserRule getRule() { return rule; }

		//"partition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" ("tablespace" tablespace=DBNAME)?
		//","?
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//"values"
		public Keyword getValuesKeyword_2() { return cValuesKeyword_2; }

		//"less"
		public Keyword getLessKeyword_3() { return cLessKeyword_3; }

		//"than"
		public Keyword getThanKeyword_4() { return cThanKeyword_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_5() { return cLeftParenthesisKeyword_5; }

		//value+=RangePartitionValue+
		public Assignment getValueAssignment_6() { return cValueAssignment_6; }

		//RangePartitionValue
		public RuleCall getValueRangePartitionValueParserRuleCall_6_0() { return cValueRangePartitionValueParserRuleCall_6_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7() { return cRightParenthesisKeyword_7; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_8() { return cGroup_8; }

		//"tablespace"
		public Keyword getTablespaceKeyword_8_0() { return cTablespaceKeyword_8_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_8_1() { return cTablespaceAssignment_8_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_8_1_0() { return cTablespaceDBNAMETerminalRuleCall_8_1_0; }

		//","?
		public Keyword getCommaKeyword_9() { return cCommaKeyword_9; }
	}

	public class RangePartitionValueElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RangePartitionValue");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Assignment cMaxvalueAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
		private final Keyword cMaxvalueMaxvalueKeyword_0_0_0 = (Keyword)cMaxvalueAssignment_0_0.eContents().get(0);
		private final Assignment cValueAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1);
		private final RuleCall cValueSTRINGTerminalRuleCall_0_1_0 = (RuleCall)cValueAssignment_0_1.eContents().get(0);
		private final Keyword cCommaKeyword_1 = (Keyword)cGroup.eContents().get(1);
		
		//RangePartitionValue:
		//	(maxvalue="maxvalue" | value=STRING) ","?;
		public ParserRule getRule() { return rule; }

		//(maxvalue="maxvalue" | value=STRING) ","?
		public Group getGroup() { return cGroup; }

		//maxvalue="maxvalue" | value=STRING
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//maxvalue="maxvalue"
		public Assignment getMaxvalueAssignment_0_0() { return cMaxvalueAssignment_0_0; }

		//"maxvalue"
		public Keyword getMaxvalueMaxvalueKeyword_0_0_0() { return cMaxvalueMaxvalueKeyword_0_0_0; }

		//value=STRING
		public Assignment getValueAssignment_0_1() { return cValueAssignment_0_1; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_0_1_0() { return cValueSTRINGTerminalRuleCall_0_1_0; }

		//","?
		public Keyword getCommaKeyword_1() { return cCommaKeyword_1; }
	}

	public class HashPartitionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HashPartitions");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cHashKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumnAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumnColumnRefParserRuleCall_2_0 = (RuleCall)cColumnAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cPartitionListAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cPartitionListHashPartitionParserRuleCall_5_0 = (RuleCall)cPartitionListAssignment_5.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//HashPartitions:
		//	"hash" "(" column=ColumnRef ")" "(" partitionList+=HashPartition+ ")";
		public ParserRule getRule() { return rule; }

		//"hash" "(" column=ColumnRef ")" "(" partitionList+=HashPartition+ ")"
		public Group getGroup() { return cGroup; }

		//"hash"
		public Keyword getHashKeyword_0() { return cHashKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//column=ColumnRef
		public Assignment getColumnAssignment_2() { return cColumnAssignment_2; }

		//ColumnRef
		public RuleCall getColumnColumnRefParserRuleCall_2_0() { return cColumnColumnRefParserRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }

		//"("
		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }

		//partitionList+=HashPartition+
		public Assignment getPartitionListAssignment_5() { return cPartitionListAssignment_5; }

		//HashPartition
		public RuleCall getPartitionListHashPartitionParserRuleCall_5_0() { return cPartitionListHashPartitionParserRuleCall_5_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
	}

	public class HashPartitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HashPartition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cTablespaceKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cTablespaceAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_2_1_0 = (RuleCall)cTablespaceAssignment_2_1.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//HashPartition:
		//	"partition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?;
		public ParserRule getRule() { return rule; }

		//"partition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_2() { return cGroup_2; }

		//"tablespace"
		public Keyword getTablespaceKeyword_2_0() { return cTablespaceKeyword_2_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_2_1() { return cTablespaceAssignment_2_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_2_1_0() { return cTablespaceDBNAMETerminalRuleCall_2_1_0; }

		//","?
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
	}

	public class RefPartitionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RefPartitions");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cReferenceKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cFkNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cFkNameDBNAMETerminalRuleCall_2_0 = (RuleCall)cFkNameAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cPartitionListAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cPartitionListRefPartitionParserRuleCall_5_0 = (RuleCall)cPartitionListAssignment_5.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//RefPartitions:
		//	"reference" "(" fkName=DBNAME ")" "(" partitionList+=RefPartition+ ")";
		public ParserRule getRule() { return rule; }

		//"reference" "(" fkName=DBNAME ")" "(" partitionList+=RefPartition+ ")"
		public Group getGroup() { return cGroup; }

		//"reference"
		public Keyword getReferenceKeyword_0() { return cReferenceKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//fkName=DBNAME
		public Assignment getFkNameAssignment_2() { return cFkNameAssignment_2; }

		//DBNAME
		public RuleCall getFkNameDBNAMETerminalRuleCall_2_0() { return cFkNameDBNAMETerminalRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }

		//"("
		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }

		//partitionList+=RefPartition+
		public Assignment getPartitionListAssignment_5() { return cPartitionListAssignment_5; }

		//RefPartition
		public RuleCall getPartitionListRefPartitionParserRuleCall_5_0() { return cPartitionListRefPartitionParserRuleCall_5_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
	}

	public class RefPartitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RefPartition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cTablespaceKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cTablespaceAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_2_1_0 = (RuleCall)cTablespaceAssignment_2_1.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//RefPartition:
		//	"partition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?;
		public ParserRule getRule() { return rule; }

		//"partition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_2() { return cGroup_2; }

		//"tablespace"
		public Keyword getTablespaceKeyword_2_0() { return cTablespaceKeyword_2_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_2_1() { return cTablespaceAssignment_2_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_2_1_0() { return cTablespaceDBNAMETerminalRuleCall_2_1_0; }

		//","?
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
	}

	public class ListPartitionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ListPartitions");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cListKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumnAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumnColumnRefParserRuleCall_2_0 = (RuleCall)cColumnAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
		private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
		private final Assignment cPartitionListAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
		private final RuleCall cPartitionListListPartitionParserRuleCall_4_0_1_0 = (RuleCall)cPartitionListAssignment_4_0_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_0_2 = (Keyword)cGroup_4_0.eContents().get(2);
		private final Group cGroup_4_1 = (Group)cAlternatives_4.eContents().get(1);
		private final Assignment cTableSubPartAssignment_4_1_0 = (Assignment)cGroup_4_1.eContents().get(0);
		private final RuleCall cTableSubPartTableSubPartParserRuleCall_4_1_0_0 = (RuleCall)cTableSubPartAssignment_4_1_0.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
		private final Assignment cSubPartitionListAssignment_4_1_2 = (Assignment)cGroup_4_1.eContents().get(2);
		private final RuleCall cSubPartitionListListSubPartParserRuleCall_4_1_2_0 = (RuleCall)cSubPartitionListAssignment_4_1_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_1_3 = (Keyword)cGroup_4_1.eContents().get(3);
		
		//ListPartitions:
		//	"list" "(" column=ColumnRef ")" ("(" partitionList+=ListPartition+ ")" | tableSubPart=TableSubPart "("
		//	subPartitionList+=ListSubPart+ ")");
		public ParserRule getRule() { return rule; }

		//"list" "(" column=ColumnRef ")" ("(" partitionList+=ListPartition+ ")" | tableSubPart=TableSubPart "("
		//subPartitionList+=ListSubPart+ ")")
		public Group getGroup() { return cGroup; }

		//"list"
		public Keyword getListKeyword_0() { return cListKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//column=ColumnRef
		public Assignment getColumnAssignment_2() { return cColumnAssignment_2; }

		//ColumnRef
		public RuleCall getColumnColumnRefParserRuleCall_2_0() { return cColumnColumnRefParserRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }

		//"(" partitionList+=ListPartition+ ")" | tableSubPart=TableSubPart "(" subPartitionList+=ListSubPart+ ")"
		public Alternatives getAlternatives_4() { return cAlternatives_4; }

		//"(" partitionList+=ListPartition+ ")"
		public Group getGroup_4_0() { return cGroup_4_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_4_0_0() { return cLeftParenthesisKeyword_4_0_0; }

		//partitionList+=ListPartition+
		public Assignment getPartitionListAssignment_4_0_1() { return cPartitionListAssignment_4_0_1; }

		//ListPartition
		public RuleCall getPartitionListListPartitionParserRuleCall_4_0_1_0() { return cPartitionListListPartitionParserRuleCall_4_0_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_4_0_2() { return cRightParenthesisKeyword_4_0_2; }

		//tableSubPart=TableSubPart "(" subPartitionList+=ListSubPart+ ")"
		public Group getGroup_4_1() { return cGroup_4_1; }

		//tableSubPart=TableSubPart
		public Assignment getTableSubPartAssignment_4_1_0() { return cTableSubPartAssignment_4_1_0; }

		//TableSubPart
		public RuleCall getTableSubPartTableSubPartParserRuleCall_4_1_0_0() { return cTableSubPartTableSubPartParserRuleCall_4_1_0_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_4_1_1() { return cLeftParenthesisKeyword_4_1_1; }

		//subPartitionList+=ListSubPart+
		public Assignment getSubPartitionListAssignment_4_1_2() { return cSubPartitionListAssignment_4_1_2; }

		//ListSubPart
		public RuleCall getSubPartitionListListSubPartParserRuleCall_4_1_2_0() { return cSubPartitionListListSubPartParserRuleCall_4_1_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_4_1_3() { return cRightParenthesisKeyword_4_1_3; }
	}

	public class ListPartitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ListPartition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cValuesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cValueListPartitionValueParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cTablespaceKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cTablespaceAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_6_1_0 = (RuleCall)cTablespaceAssignment_6_1.eContents().get(0);
		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//ListPartition:
		//	"partition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" ("tablespace" tablespace=DBNAME)? ","?;
		public ParserRule getRule() { return rule; }

		//"partition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" ("tablespace" tablespace=DBNAME)? ","?
		public Group getGroup() { return cGroup; }

		//"partition"
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=DBNAME
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_1_0() { return cNameDBNAMETerminalRuleCall_1_0; }

		//"values"
		public Keyword getValuesKeyword_2() { return cValuesKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//value+=ListPartitionValue+
		public Assignment getValueAssignment_4() { return cValueAssignment_4; }

		//ListPartitionValue
		public RuleCall getValueListPartitionValueParserRuleCall_4_0() { return cValueListPartitionValueParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_6() { return cGroup_6; }

		//"tablespace"
		public Keyword getTablespaceKeyword_6_0() { return cTablespaceKeyword_6_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_6_1() { return cTablespaceAssignment_6_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_6_1_0() { return cTablespaceDBNAMETerminalRuleCall_6_1_0; }

		//","?
		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }
	}

	public class ListPartitionValueElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ListPartitionValue");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Assignment cDefaultAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
		private final Keyword cDefaultDefaultKeyword_0_0_0 = (Keyword)cDefaultAssignment_0_0.eContents().get(0);
		private final Assignment cValueAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1);
		private final RuleCall cValueSTRINGTerminalRuleCall_0_1_0 = (RuleCall)cValueAssignment_0_1.eContents().get(0);
		private final Keyword cCommaKeyword_1 = (Keyword)cGroup.eContents().get(1);
		
		//ListPartitionValue:
		//	(default="default" | value=STRING) ","?;
		public ParserRule getRule() { return rule; }

		//(default="default" | value=STRING) ","?
		public Group getGroup() { return cGroup; }

		//default="default" | value=STRING
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//default="default"
		public Assignment getDefaultAssignment_0_0() { return cDefaultAssignment_0_0; }

		//"default"
		public Keyword getDefaultDefaultKeyword_0_0_0() { return cDefaultDefaultKeyword_0_0_0; }

		//value=STRING
		public Assignment getValueAssignment_0_1() { return cValueAssignment_0_1; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_0_1_0() { return cValueSTRINGTerminalRuleCall_0_1_0; }

		//","?
		public Keyword getCommaKeyword_1() { return cCommaKeyword_1; }
	}

	public class LobStorageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LobStorage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLobKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumn_nameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumn_nameDBNAMETerminalRuleCall_2_0 = (RuleCall)cColumn_nameAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cStoreKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cAsKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cLobStorageTypeAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cLobStorageTypeLobStorageTypeEnumRuleCall_6_0 = (RuleCall)cLobStorageTypeAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cLeftParenthesisKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cLobStorageParametersAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cLobStorageParametersLobStorageParametersParserRuleCall_7_1_0 = (RuleCall)cLobStorageParametersAssignment_7_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		
		//LobStorage:
		//	"lob" "(" column_name=DBNAME ")" "store" "as" lobStorageType=LobStorageType? ("("
		//	lobStorageParameters=LobStorageParameters ")")?;
		public ParserRule getRule() { return rule; }

		//"lob" "(" column_name=DBNAME ")" "store" "as" lobStorageType=LobStorageType? ("("
		//lobStorageParameters=LobStorageParameters ")")?
		public Group getGroup() { return cGroup; }

		//"lob"
		public Keyword getLobKeyword_0() { return cLobKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//column_name=DBNAME
		public Assignment getColumn_nameAssignment_2() { return cColumn_nameAssignment_2; }

		//DBNAME
		public RuleCall getColumn_nameDBNAMETerminalRuleCall_2_0() { return cColumn_nameDBNAMETerminalRuleCall_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }

		//"store"
		public Keyword getStoreKeyword_4() { return cStoreKeyword_4; }

		//"as"
		public Keyword getAsKeyword_5() { return cAsKeyword_5; }

		//lobStorageType=LobStorageType?
		public Assignment getLobStorageTypeAssignment_6() { return cLobStorageTypeAssignment_6; }

		//LobStorageType
		public RuleCall getLobStorageTypeLobStorageTypeEnumRuleCall_6_0() { return cLobStorageTypeLobStorageTypeEnumRuleCall_6_0; }

		//("(" lobStorageParameters=LobStorageParameters ")")?
		public Group getGroup_7() { return cGroup_7; }

		//"("
		public Keyword getLeftParenthesisKeyword_7_0() { return cLeftParenthesisKeyword_7_0; }

		//lobStorageParameters=LobStorageParameters
		public Assignment getLobStorageParametersAssignment_7_1() { return cLobStorageParametersAssignment_7_1; }

		//LobStorageParameters
		public RuleCall getLobStorageParametersLobStorageParametersParserRuleCall_7_1_0() { return cLobStorageParametersLobStorageParametersParserRuleCall_7_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7_2() { return cRightParenthesisKeyword_7_2; }
	}

	public class VarrayStorageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "VarrayStorage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cVarrayKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cColumn_nameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cColumn_nameDBNAMETerminalRuleCall_1_0 = (RuleCall)cColumn_nameAssignment_1.eContents().get(0);
		private final Keyword cStoreKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cAsKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cLobStorageTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cLobStorageTypeLobStorageTypeEnumRuleCall_4_0 = (RuleCall)cLobStorageTypeAssignment_4.eContents().get(0);
		private final Keyword cLobKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cLeftParenthesisKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cLobStorageParametersAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cLobStorageParametersLobStorageParametersParserRuleCall_6_1_0 = (RuleCall)cLobStorageParametersAssignment_6_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2);
		
		//VarrayStorage:
		//	"varray" column_name=DBNAME "store" "as" lobStorageType=LobStorageType "lob" ("("
		//	lobStorageParameters=LobStorageParameters ")")?;
		public ParserRule getRule() { return rule; }

		//"varray" column_name=DBNAME "store" "as" lobStorageType=LobStorageType "lob" ("("
		//lobStorageParameters=LobStorageParameters ")")?
		public Group getGroup() { return cGroup; }

		//"varray"
		public Keyword getVarrayKeyword_0() { return cVarrayKeyword_0; }

		//column_name=DBNAME
		public Assignment getColumn_nameAssignment_1() { return cColumn_nameAssignment_1; }

		//DBNAME
		public RuleCall getColumn_nameDBNAMETerminalRuleCall_1_0() { return cColumn_nameDBNAMETerminalRuleCall_1_0; }

		//"store"
		public Keyword getStoreKeyword_2() { return cStoreKeyword_2; }

		//"as"
		public Keyword getAsKeyword_3() { return cAsKeyword_3; }

		//lobStorageType=LobStorageType
		public Assignment getLobStorageTypeAssignment_4() { return cLobStorageTypeAssignment_4; }

		//LobStorageType
		public RuleCall getLobStorageTypeLobStorageTypeEnumRuleCall_4_0() { return cLobStorageTypeLobStorageTypeEnumRuleCall_4_0; }

		//"lob"
		public Keyword getLobKeyword_5() { return cLobKeyword_5; }

		//("(" lobStorageParameters=LobStorageParameters ")")?
		public Group getGroup_6() { return cGroup_6; }

		//"("
		public Keyword getLeftParenthesisKeyword_6_0() { return cLeftParenthesisKeyword_6_0; }

		//lobStorageParameters=LobStorageParameters
		public Assignment getLobStorageParametersAssignment_6_1() { return cLobStorageParametersAssignment_6_1; }

		//LobStorageParameters
		public RuleCall getLobStorageParametersLobStorageParametersParserRuleCall_6_1_0() { return cLobStorageParametersLobStorageParametersParserRuleCall_6_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6_2() { return cRightParenthesisKeyword_6_2; }
	}

	public class NestedTableStorageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NestedTableStorage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cNestedKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cTableKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cColumn_nameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cColumn_nameDBNAMETerminalRuleCall_2_0 = (RuleCall)cColumn_nameAssignment_2.eContents().get(0);
		private final Keyword cStoreKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cAsKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Alternatives cAlternatives_5 = (Alternatives)cGroup.eContents().get(5);
		private final Assignment cStorage_clauseAssignment_5_0 = (Assignment)cAlternatives_5.eContents().get(0);
		private final RuleCall cStorage_clauseDBNAMETerminalRuleCall_5_0_0 = (RuleCall)cStorage_clauseAssignment_5_0.eContents().get(0);
		private final Assignment cStorage_clause_stringAssignment_5_1 = (Assignment)cAlternatives_5.eContents().get(1);
		private final RuleCall cStorage_clause_stringSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cStorage_clause_stringAssignment_5_1.eContents().get(0);
		
		//NestedTableStorage:
		//	"nested" "table" column_name=DBNAME "store" "as" (storage_clause=DBNAME | storage_clause_string=STRING);
		public ParserRule getRule() { return rule; }

		//"nested" "table" column_name=DBNAME "store" "as" (storage_clause=DBNAME | storage_clause_string=STRING)
		public Group getGroup() { return cGroup; }

		//"nested"
		public Keyword getNestedKeyword_0() { return cNestedKeyword_0; }

		//"table"
		public Keyword getTableKeyword_1() { return cTableKeyword_1; }

		//column_name=DBNAME
		public Assignment getColumn_nameAssignment_2() { return cColumn_nameAssignment_2; }

		//DBNAME
		public RuleCall getColumn_nameDBNAMETerminalRuleCall_2_0() { return cColumn_nameDBNAMETerminalRuleCall_2_0; }

		//"store"
		public Keyword getStoreKeyword_3() { return cStoreKeyword_3; }

		//"as"
		public Keyword getAsKeyword_4() { return cAsKeyword_4; }

		//storage_clause=DBNAME | storage_clause_string=STRING
		public Alternatives getAlternatives_5() { return cAlternatives_5; }

		//storage_clause=DBNAME
		public Assignment getStorage_clauseAssignment_5_0() { return cStorage_clauseAssignment_5_0; }

		//DBNAME
		public RuleCall getStorage_clauseDBNAMETerminalRuleCall_5_0_0() { return cStorage_clauseDBNAMETerminalRuleCall_5_0_0; }

		//storage_clause_string=STRING
		public Assignment getStorage_clause_stringAssignment_5_1() { return cStorage_clause_stringAssignment_5_1; }

		//STRING
		public RuleCall getStorage_clause_stringSTRINGTerminalRuleCall_5_1_0() { return cStorage_clause_stringSTRINGTerminalRuleCall_5_1_0; }
	}

	public class LobStorageParametersElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LobStorageParameters");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
		private final Keyword cTablespaceKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
		private final Assignment cTablespaceAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_0_1_0 = (RuleCall)cTablespaceAssignment_0_1.eContents().get(0);
		private final Assignment cLobDeduplicateTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cLobDeduplicateTypeLobDeduplicateTypeEnumRuleCall_1_0 = (RuleCall)cLobDeduplicateTypeAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Assignment cCompressTypeAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
		private final RuleCall cCompressTypeCompressTypeEnumRuleCall_2_0_0 = (RuleCall)cCompressTypeAssignment_2_0.eContents().get(0);
		private final Assignment cLobCompressForTypeAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cLobCompressForTypeLobCompressForTypeEnumRuleCall_2_1_0 = (RuleCall)cLobCompressForTypeAssignment_2_1.eContents().get(0);
		
		//LobStorageParameters:
		//	("tablespace" tablespace=DBNAME)? lobDeduplicateType=LobDeduplicateType? (compressType=CompressType
		//	lobCompressForType=LobCompressForType?)?;
		public ParserRule getRule() { return rule; }

		//("tablespace" tablespace=DBNAME)? lobDeduplicateType=LobDeduplicateType? (compressType=CompressType
		//lobCompressForType=LobCompressForType?)?
		public Group getGroup() { return cGroup; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_0() { return cGroup_0; }

		//"tablespace"
		public Keyword getTablespaceKeyword_0_0() { return cTablespaceKeyword_0_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_0_1() { return cTablespaceAssignment_0_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_0_1_0() { return cTablespaceDBNAMETerminalRuleCall_0_1_0; }

		//lobDeduplicateType=LobDeduplicateType?
		public Assignment getLobDeduplicateTypeAssignment_1() { return cLobDeduplicateTypeAssignment_1; }

		//LobDeduplicateType
		public RuleCall getLobDeduplicateTypeLobDeduplicateTypeEnumRuleCall_1_0() { return cLobDeduplicateTypeLobDeduplicateTypeEnumRuleCall_1_0; }

		//(compressType=CompressType lobCompressForType=LobCompressForType?)?
		public Group getGroup_2() { return cGroup_2; }

		//compressType=CompressType
		public Assignment getCompressTypeAssignment_2_0() { return cCompressTypeAssignment_2_0; }

		//CompressType
		public RuleCall getCompressTypeCompressTypeEnumRuleCall_2_0_0() { return cCompressTypeCompressTypeEnumRuleCall_2_0_0; }

		//lobCompressForType=LobCompressForType?
		public Assignment getLobCompressForTypeAssignment_2_1() { return cLobCompressForTypeAssignment_2_1; }

		//LobCompressForType
		public RuleCall getLobCompressForTypeLobCompressForTypeEnumRuleCall_2_1_0() { return cLobCompressForTypeLobCompressForTypeEnumRuleCall_2_1_0; }
	}

	public class ColumnElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Column");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
		private final Assignment cNameAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
		private final RuleCall cNameDBNAMETerminalRuleCall_0_0_0_0 = (RuleCall)cNameAssignment_0_0_0.eContents().get(0);
		private final Group cGroup_0_0_1 = (Group)cGroup_0_0.eContents().get(1);
		private final Keyword cDomainKeyword_0_0_1_0 = (Keyword)cGroup_0_0_1.eContents().get(0);
		private final Assignment cDomainAssignment_0_0_1_1 = (Assignment)cGroup_0_0_1.eContents().get(1);
		private final RuleCall cDomainDBNAMETerminalRuleCall_0_0_1_1_0 = (RuleCall)cDomainAssignment_0_0_1_1.eContents().get(0);
		private final Assignment cName_stringAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1);
		private final RuleCall cName_stringSTRINGTerminalRuleCall_0_1_0 = (RuleCall)cName_stringAssignment_0_1.eContents().get(0);
		private final Assignment cData_typeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cData_typeDataTypeEnumRuleCall_1_0 = (RuleCall)cData_typeAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cPrecisionAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cPrecisionINTTerminalRuleCall_2_1_0 = (RuleCall)cPrecisionAssignment_2_1.eContents().get(0);
		private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2);
		private final Keyword cCommaKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0);
		private final Assignment cScaleAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1);
		private final RuleCall cScaleINTTerminalRuleCall_2_2_1_0 = (RuleCall)cScaleAssignment_2_2_1.eContents().get(0);
		private final Assignment cByteorcharAssignment_2_3 = (Assignment)cGroup_2.eContents().get(3);
		private final RuleCall cByteorcharCharTypeEnumRuleCall_2_3_0 = (RuleCall)cByteorcharAssignment_2_3.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_2_4 = (Keyword)cGroup_2.eContents().get(4);
		private final Assignment cUnsignedAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cUnsignedUnsignedKeyword_3_0 = (Keyword)cUnsignedAssignment_3.eContents().get(0);
		private final Assignment cWith_time_zoneAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Keyword cWith_time_zoneWith_time_zoneKeyword_4_0 = (Keyword)cWith_time_zoneAssignment_4.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cTypeKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cObject_typeAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cObject_typeSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cObject_typeAssignment_5_1.eContents().get(0);
		private final Alternatives cAlternatives_6 = (Alternatives)cGroup.eContents().get(6);
		private final Group cGroup_6_0 = (Group)cAlternatives_6.eContents().get(0);
		private final Keyword cDefaultKeyword_6_0_0 = (Keyword)cGroup_6_0.eContents().get(0);
		private final Assignment cDefault_valueAssignment_6_0_1 = (Assignment)cGroup_6_0.eContents().get(1);
		private final RuleCall cDefault_valueSTRINGTerminalRuleCall_6_0_1_0 = (RuleCall)cDefault_valueAssignment_6_0_1.eContents().get(0);
		private final Group cGroup_6_1 = (Group)cAlternatives_6.eContents().get(1);
		private final Keyword cAsKeyword_6_1_0 = (Keyword)cGroup_6_1.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_6_1_1 = (Keyword)cGroup_6_1.eContents().get(1);
		private final Assignment cDefault_valueAssignment_6_1_2 = (Assignment)cGroup_6_1.eContents().get(2);
		private final RuleCall cDefault_valueSTRINGTerminalRuleCall_6_1_2_0 = (RuleCall)cDefault_valueAssignment_6_1_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6_1_3 = (Keyword)cGroup_6_1.eContents().get(3);
		private final Assignment cVirtualAssignment_6_1_4 = (Assignment)cGroup_6_1.eContents().get(4);
		private final Keyword cVirtualVirtualKeyword_6_1_4_0 = (Keyword)cVirtualAssignment_6_1_4.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cDefaultnameKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cDefault_nameAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cDefault_nameDBNAMETerminalRuleCall_7_1_0 = (RuleCall)cDefault_nameAssignment_7_1.eContents().get(0);
		private final Assignment cIdentityAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cIdentityColumnIdentityParserRuleCall_8_0 = (RuleCall)cIdentityAssignment_8.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Assignment cNotnullAssignment_9_0 = (Assignment)cGroup_9.eContents().get(0);
		private final Keyword cNotnullNotKeyword_9_0_0 = (Keyword)cNotnullAssignment_9_0.eContents().get(0);
		private final Keyword cNullKeyword_9_1 = (Keyword)cGroup_9.eContents().get(1);
		private final Keyword cCommaKeyword_10 = (Keyword)cGroup.eContents().get(10);
		
		//Column:
		//	(name=DBNAME ("domain" domain=DBNAME)? | name_string=STRING) data_type=DataType? ("(" precision=INT ("," scale=INT)?
		//	byteorchar=CharType? ")")? unsigned?="unsigned"? with_time_zone="with_time_zone"? ("type" object_type=STRING)?
		//	("default" default_value=STRING | "as" "(" default_value=STRING ")" virtual="virtual")? ("defaultname"
		//	default_name=DBNAME)? identity=ColumnIdentity? (notnull?="not" "null")? ","?;
		public ParserRule getRule() { return rule; }

		//(name=DBNAME ("domain" domain=DBNAME)? | name_string=STRING) data_type=DataType? ("(" precision=INT ("," scale=INT)?
		//byteorchar=CharType? ")")? unsigned?="unsigned"? with_time_zone="with_time_zone"? ("type" object_type=STRING)?
		//("default" default_value=STRING | "as" "(" default_value=STRING ")" virtual="virtual")? ("defaultname"
		//default_name=DBNAME)? identity=ColumnIdentity? (notnull?="not" "null")? ","?
		public Group getGroup() { return cGroup; }

		//name=DBNAME ("domain" domain=DBNAME)? | name_string=STRING
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//name=DBNAME ("domain" domain=DBNAME)?
		public Group getGroup_0_0() { return cGroup_0_0; }

		//name=DBNAME
		public Assignment getNameAssignment_0_0_0() { return cNameAssignment_0_0_0; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_0_0_0_0() { return cNameDBNAMETerminalRuleCall_0_0_0_0; }

		//("domain" domain=DBNAME)?
		public Group getGroup_0_0_1() { return cGroup_0_0_1; }

		//"domain"
		public Keyword getDomainKeyword_0_0_1_0() { return cDomainKeyword_0_0_1_0; }

		//domain=DBNAME
		public Assignment getDomainAssignment_0_0_1_1() { return cDomainAssignment_0_0_1_1; }

		//DBNAME
		public RuleCall getDomainDBNAMETerminalRuleCall_0_0_1_1_0() { return cDomainDBNAMETerminalRuleCall_0_0_1_1_0; }

		//name_string=STRING
		public Assignment getName_stringAssignment_0_1() { return cName_stringAssignment_0_1; }

		//STRING
		public RuleCall getName_stringSTRINGTerminalRuleCall_0_1_0() { return cName_stringSTRINGTerminalRuleCall_0_1_0; }

		//data_type=DataType?
		public Assignment getData_typeAssignment_1() { return cData_typeAssignment_1; }

		//DataType
		public RuleCall getData_typeDataTypeEnumRuleCall_1_0() { return cData_typeDataTypeEnumRuleCall_1_0; }

		//("(" precision=INT ("," scale=INT)? byteorchar=CharType? ")")?
		public Group getGroup_2() { return cGroup_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; }

		//precision=INT
		public Assignment getPrecisionAssignment_2_1() { return cPrecisionAssignment_2_1; }

		//INT
		public RuleCall getPrecisionINTTerminalRuleCall_2_1_0() { return cPrecisionINTTerminalRuleCall_2_1_0; }

		//("," scale=INT)?
		public Group getGroup_2_2() { return cGroup_2_2; }

		//","
		public Keyword getCommaKeyword_2_2_0() { return cCommaKeyword_2_2_0; }

		//scale=INT
		public Assignment getScaleAssignment_2_2_1() { return cScaleAssignment_2_2_1; }

		//INT
		public RuleCall getScaleINTTerminalRuleCall_2_2_1_0() { return cScaleINTTerminalRuleCall_2_2_1_0; }

		//byteorchar=CharType?
		public Assignment getByteorcharAssignment_2_3() { return cByteorcharAssignment_2_3; }

		//CharType
		public RuleCall getByteorcharCharTypeEnumRuleCall_2_3_0() { return cByteorcharCharTypeEnumRuleCall_2_3_0; }

		//")"
		public Keyword getRightParenthesisKeyword_2_4() { return cRightParenthesisKeyword_2_4; }

		//unsigned?="unsigned"?
		public Assignment getUnsignedAssignment_3() { return cUnsignedAssignment_3; }

		//"unsigned"
		public Keyword getUnsignedUnsignedKeyword_3_0() { return cUnsignedUnsignedKeyword_3_0; }

		//with_time_zone="with_time_zone"?
		public Assignment getWith_time_zoneAssignment_4() { return cWith_time_zoneAssignment_4; }

		//"with_time_zone"
		public Keyword getWith_time_zoneWith_time_zoneKeyword_4_0() { return cWith_time_zoneWith_time_zoneKeyword_4_0; }

		//("type" object_type=STRING)?
		public Group getGroup_5() { return cGroup_5; }

		//"type"
		public Keyword getTypeKeyword_5_0() { return cTypeKeyword_5_0; }

		//object_type=STRING
		public Assignment getObject_typeAssignment_5_1() { return cObject_typeAssignment_5_1; }

		//STRING
		public RuleCall getObject_typeSTRINGTerminalRuleCall_5_1_0() { return cObject_typeSTRINGTerminalRuleCall_5_1_0; }

		//("default" default_value=STRING | "as" "(" default_value=STRING ")" virtual="virtual")?
		public Alternatives getAlternatives_6() { return cAlternatives_6; }

		//"default" default_value=STRING
		public Group getGroup_6_0() { return cGroup_6_0; }

		//"default"
		public Keyword getDefaultKeyword_6_0_0() { return cDefaultKeyword_6_0_0; }

		//default_value=STRING
		public Assignment getDefault_valueAssignment_6_0_1() { return cDefault_valueAssignment_6_0_1; }

		//STRING
		public RuleCall getDefault_valueSTRINGTerminalRuleCall_6_0_1_0() { return cDefault_valueSTRINGTerminalRuleCall_6_0_1_0; }

		//"as" "(" default_value=STRING ")" virtual="virtual"
		public Group getGroup_6_1() { return cGroup_6_1; }

		//"as"
		public Keyword getAsKeyword_6_1_0() { return cAsKeyword_6_1_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_6_1_1() { return cLeftParenthesisKeyword_6_1_1; }

		//default_value=STRING
		public Assignment getDefault_valueAssignment_6_1_2() { return cDefault_valueAssignment_6_1_2; }

		//STRING
		public RuleCall getDefault_valueSTRINGTerminalRuleCall_6_1_2_0() { return cDefault_valueSTRINGTerminalRuleCall_6_1_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6_1_3() { return cRightParenthesisKeyword_6_1_3; }

		//virtual="virtual"
		public Assignment getVirtualAssignment_6_1_4() { return cVirtualAssignment_6_1_4; }

		//"virtual"
		public Keyword getVirtualVirtualKeyword_6_1_4_0() { return cVirtualVirtualKeyword_6_1_4_0; }

		//("defaultname" default_name=DBNAME)?
		public Group getGroup_7() { return cGroup_7; }

		//"defaultname"
		public Keyword getDefaultnameKeyword_7_0() { return cDefaultnameKeyword_7_0; }

		//default_name=DBNAME
		public Assignment getDefault_nameAssignment_7_1() { return cDefault_nameAssignment_7_1; }

		//DBNAME
		public RuleCall getDefault_nameDBNAMETerminalRuleCall_7_1_0() { return cDefault_nameDBNAMETerminalRuleCall_7_1_0; }

		//identity=ColumnIdentity?
		public Assignment getIdentityAssignment_8() { return cIdentityAssignment_8; }

		//ColumnIdentity
		public RuleCall getIdentityColumnIdentityParserRuleCall_8_0() { return cIdentityColumnIdentityParserRuleCall_8_0; }

		//(notnull?="not" "null")?
		public Group getGroup_9() { return cGroup_9; }

		//notnull?="not"
		public Assignment getNotnullAssignment_9_0() { return cNotnullAssignment_9_0; }

		//"not"
		public Keyword getNotnullNotKeyword_9_0_0() { return cNotnullNotKeyword_9_0_0; }

		//"null"
		public Keyword getNullKeyword_9_1() { return cNullKeyword_9_1; }

		//","?
		public Keyword getCommaKeyword_10() { return cCommaKeyword_10; }
	}

	public class ConstraintElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Constraint");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cConstraintKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cConsNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cConsNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cConsNameAssignment_1.eContents().get(0);
		private final Keyword cCheckKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cRuleAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cRuleSTRINGTerminalRuleCall_4_0 = (RuleCall)cRuleAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cDeferrableKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cInitiallyKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cDeferrtypeAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final RuleCall cDeferrtypeDeferrTypeEnumRuleCall_6_2_0 = (RuleCall)cDeferrtypeAssignment_6_2.eContents().get(0);
		private final Assignment cStatusAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cStatusEnableTypeEnumRuleCall_7_0 = (RuleCall)cStatusAssignment_7.eContents().get(0);
		private final Keyword cCommaKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//Constraint:
		//	"constraint" consName=DBNAME "check" "(" rule=STRING ")" ("deferrable" "initially" deferrtype=DeferrType)?
		//	status=EnableType? ","?;
		public ParserRule getRule() { return rule; }

		//"constraint" consName=DBNAME "check" "(" rule=STRING ")" ("deferrable" "initially" deferrtype=DeferrType)?
		//status=EnableType? ","?
		public Group getGroup() { return cGroup; }

		//"constraint"
		public Keyword getConstraintKeyword_0() { return cConstraintKeyword_0; }

		//consName=DBNAME
		public Assignment getConsNameAssignment_1() { return cConsNameAssignment_1; }

		//DBNAME
		public RuleCall getConsNameDBNAMETerminalRuleCall_1_0() { return cConsNameDBNAMETerminalRuleCall_1_0; }

		//"check"
		public Keyword getCheckKeyword_2() { return cCheckKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//rule=STRING
		public Assignment getRuleAssignment_4() { return cRuleAssignment_4; }

		//STRING
		public RuleCall getRuleSTRINGTerminalRuleCall_4_0() { return cRuleSTRINGTerminalRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//("deferrable" "initially" deferrtype=DeferrType)?
		public Group getGroup_6() { return cGroup_6; }

		//"deferrable"
		public Keyword getDeferrableKeyword_6_0() { return cDeferrableKeyword_6_0; }

		//"initially"
		public Keyword getInitiallyKeyword_6_1() { return cInitiallyKeyword_6_1; }

		//deferrtype=DeferrType
		public Assignment getDeferrtypeAssignment_6_2() { return cDeferrtypeAssignment_6_2; }

		//DeferrType
		public RuleCall getDeferrtypeDeferrTypeEnumRuleCall_6_2_0() { return cDeferrtypeDeferrTypeEnumRuleCall_6_2_0; }

		//status=EnableType?
		public Assignment getStatusAssignment_7() { return cStatusAssignment_7; }

		//EnableType
		public RuleCall getStatusEnableTypeEnumRuleCall_7_0() { return cStatusEnableTypeEnumRuleCall_7_0; }

		//","?
		public Keyword getCommaKeyword_8() { return cCommaKeyword_8; }
	}

	public class IndexOrUniqueKeyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IndexOrUniqueKey");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cIndexParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cUniqueKeyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//IndexOrUniqueKey:
		//	Index | UniqueKey;
		public ParserRule getRule() { return rule; }

		//Index | UniqueKey
		public Alternatives getAlternatives() { return cAlternatives; }

		//Index
		public RuleCall getIndexParserRuleCall_0() { return cIndexParserRuleCall_0; }

		//UniqueKey
		public RuleCall getUniqueKeyParserRuleCall_1() { return cUniqueKeyParserRuleCall_1; }
	}

	public class ForeignKeyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ForeignKey");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cConstraintKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cConsNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cConsNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cConsNameAssignment_1.eContents().get(0);
		private final Keyword cForeignKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cKeyKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cSrcColumnsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cSrcColumnsColumnRefParserRuleCall_4_1_0 = (RuleCall)cSrcColumnsAssignment_4_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Keyword cReferencesKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cDestTableAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cDestTableDBNAME_WITH_SCHEMAParserRuleCall_6_0 = (RuleCall)cDestTableAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cLeftParenthesisKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cDestColumnsAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cDestColumnsColumnRefParserRuleCall_7_1_0 = (RuleCall)cDestColumnsAssignment_7_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cOnKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Keyword cDeleteKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
		private final Assignment cDelete_ruleAssignment_8_2 = (Assignment)cGroup_8.eContents().get(2);
		private final RuleCall cDelete_ruleFkDeleteRuleTypeEnumRuleCall_8_2_0 = (RuleCall)cDelete_ruleAssignment_8_2.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cDeferrableKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Keyword cInitiallyKeyword_9_1 = (Keyword)cGroup_9.eContents().get(1);
		private final Assignment cDeferrtypeAssignment_9_2 = (Assignment)cGroup_9.eContents().get(2);
		private final RuleCall cDeferrtypeDeferrTypeEnumRuleCall_9_2_0 = (RuleCall)cDeferrtypeAssignment_9_2.eContents().get(0);
		private final Assignment cStatusAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cStatusEnableTypeEnumRuleCall_10_0 = (RuleCall)cStatusAssignment_10.eContents().get(0);
		private final Keyword cCommaKeyword_11 = (Keyword)cGroup.eContents().get(11);
		
		//ForeignKey:
		//	"constraint" consName=DBNAME "foreign" "key" ("(" srcColumns+=ColumnRef* ")")? "references"
		//	destTable=DBNAME_WITH_SCHEMA ("(" destColumns+=ColumnRef+ ")")? ("on" "delete" delete_rule=FkDeleteRuleType)?
		//	("deferrable" "initially" deferrtype=DeferrType)? status=EnableType? ","?;
		public ParserRule getRule() { return rule; }

		//"constraint" consName=DBNAME "foreign" "key" ("(" srcColumns+=ColumnRef* ")")? "references" destTable=DBNAME_WITH_SCHEMA
		//("(" destColumns+=ColumnRef+ ")")? ("on" "delete" delete_rule=FkDeleteRuleType)? ("deferrable" "initially"
		//deferrtype=DeferrType)? status=EnableType? ","?
		public Group getGroup() { return cGroup; }

		//"constraint"
		public Keyword getConstraintKeyword_0() { return cConstraintKeyword_0; }

		//consName=DBNAME
		public Assignment getConsNameAssignment_1() { return cConsNameAssignment_1; }

		//DBNAME
		public RuleCall getConsNameDBNAMETerminalRuleCall_1_0() { return cConsNameDBNAMETerminalRuleCall_1_0; }

		//"foreign"
		public Keyword getForeignKeyword_2() { return cForeignKeyword_2; }

		//"key"
		public Keyword getKeyKeyword_3() { return cKeyKeyword_3; }

		//("(" srcColumns+=ColumnRef* ")")?
		public Group getGroup_4() { return cGroup_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_4_0() { return cLeftParenthesisKeyword_4_0; }

		//srcColumns+=ColumnRef*
		public Assignment getSrcColumnsAssignment_4_1() { return cSrcColumnsAssignment_4_1; }

		//ColumnRef
		public RuleCall getSrcColumnsColumnRefParserRuleCall_4_1_0() { return cSrcColumnsColumnRefParserRuleCall_4_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_4_2() { return cRightParenthesisKeyword_4_2; }

		//"references"
		public Keyword getReferencesKeyword_5() { return cReferencesKeyword_5; }

		//destTable=DBNAME_WITH_SCHEMA
		public Assignment getDestTableAssignment_6() { return cDestTableAssignment_6; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getDestTableDBNAME_WITH_SCHEMAParserRuleCall_6_0() { return cDestTableDBNAME_WITH_SCHEMAParserRuleCall_6_0; }

		//("(" destColumns+=ColumnRef+ ")")?
		public Group getGroup_7() { return cGroup_7; }

		//"("
		public Keyword getLeftParenthesisKeyword_7_0() { return cLeftParenthesisKeyword_7_0; }

		//destColumns+=ColumnRef+
		public Assignment getDestColumnsAssignment_7_1() { return cDestColumnsAssignment_7_1; }

		//ColumnRef
		public RuleCall getDestColumnsColumnRefParserRuleCall_7_1_0() { return cDestColumnsColumnRefParserRuleCall_7_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7_2() { return cRightParenthesisKeyword_7_2; }

		//("on" "delete" delete_rule=FkDeleteRuleType)?
		public Group getGroup_8() { return cGroup_8; }

		//"on"
		public Keyword getOnKeyword_8_0() { return cOnKeyword_8_0; }

		//"delete"
		public Keyword getDeleteKeyword_8_1() { return cDeleteKeyword_8_1; }

		//delete_rule=FkDeleteRuleType
		public Assignment getDelete_ruleAssignment_8_2() { return cDelete_ruleAssignment_8_2; }

		//FkDeleteRuleType
		public RuleCall getDelete_ruleFkDeleteRuleTypeEnumRuleCall_8_2_0() { return cDelete_ruleFkDeleteRuleTypeEnumRuleCall_8_2_0; }

		//("deferrable" "initially" deferrtype=DeferrType)?
		public Group getGroup_9() { return cGroup_9; }

		//"deferrable"
		public Keyword getDeferrableKeyword_9_0() { return cDeferrableKeyword_9_0; }

		//"initially"
		public Keyword getInitiallyKeyword_9_1() { return cInitiallyKeyword_9_1; }

		//deferrtype=DeferrType
		public Assignment getDeferrtypeAssignment_9_2() { return cDeferrtypeAssignment_9_2; }

		//DeferrType
		public RuleCall getDeferrtypeDeferrTypeEnumRuleCall_9_2_0() { return cDeferrtypeDeferrTypeEnumRuleCall_9_2_0; }

		//status=EnableType?
		public Assignment getStatusAssignment_10() { return cStatusAssignment_10; }

		//EnableType
		public RuleCall getStatusEnableTypeEnumRuleCall_10_0() { return cStatusEnableTypeEnumRuleCall_10_0; }

		//","?
		public Keyword getCommaKeyword_11() { return cCommaKeyword_11; }
	}

	public class PrimaryKeyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PrimaryKey");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
		private final Keyword cConstraintKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
		private final Assignment cConsNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
		private final RuleCall cConsNameDBNAMETerminalRuleCall_0_1_0 = (RuleCall)cConsNameAssignment_0_1.eContents().get(0);
		private final Keyword cPrimaryKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cKeyKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cPk_columnsAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cPk_columnsColumnRefParserRuleCall_4_0 = (RuleCall)cPk_columnsAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cStatusAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cStatusEnableTypeEnumRuleCall_6_0 = (RuleCall)cStatusAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cUsingKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cIndexKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Assignment cReverseAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
		private final Keyword cReverseReverseKeyword_7_2_0 = (Keyword)cReverseAssignment_7_2.eContents().get(0);
		private final Group cGroup_7_3 = (Group)cGroup_7.eContents().get(3);
		private final Keyword cTablespaceKeyword_7_3_0 = (Keyword)cGroup_7_3.eContents().get(0);
		private final Assignment cTablespaceAssignment_7_3_1 = (Assignment)cGroup_7_3.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_7_3_1_0 = (RuleCall)cTablespaceAssignment_7_3_1.eContents().get(0);
		private final Assignment cIndexnameAssignment_7_4 = (Assignment)cGroup_7.eContents().get(4);
		private final RuleCall cIndexnameDBNAME_WITH_SCHEMAParserRuleCall_7_4_0 = (RuleCall)cIndexnameAssignment_7_4.eContents().get(0);
		private final Keyword cCommaKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//PrimaryKey:
		//	("constraint" consName=DBNAME)? "primary" "key" "(" pk_columns+=ColumnRef+ ")" status=EnableType? ("using" "index"
		//	reverse="reverse"? ("tablespace" tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)? ","?;
		public ParserRule getRule() { return rule; }

		//("constraint" consName=DBNAME)? "primary" "key" "(" pk_columns+=ColumnRef+ ")" status=EnableType? ("using" "index"
		//reverse="reverse"? ("tablespace" tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)? ","?
		public Group getGroup() { return cGroup; }

		//("constraint" consName=DBNAME)?
		public Group getGroup_0() { return cGroup_0; }

		//"constraint"
		public Keyword getConstraintKeyword_0_0() { return cConstraintKeyword_0_0; }

		//consName=DBNAME
		public Assignment getConsNameAssignment_0_1() { return cConsNameAssignment_0_1; }

		//DBNAME
		public RuleCall getConsNameDBNAMETerminalRuleCall_0_1_0() { return cConsNameDBNAMETerminalRuleCall_0_1_0; }

		//"primary"
		public Keyword getPrimaryKeyword_1() { return cPrimaryKeyword_1; }

		//"key"
		public Keyword getKeyKeyword_2() { return cKeyKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//pk_columns+=ColumnRef+
		public Assignment getPk_columnsAssignment_4() { return cPk_columnsAssignment_4; }

		//ColumnRef
		public RuleCall getPk_columnsColumnRefParserRuleCall_4_0() { return cPk_columnsColumnRefParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//status=EnableType?
		public Assignment getStatusAssignment_6() { return cStatusAssignment_6; }

		//EnableType
		public RuleCall getStatusEnableTypeEnumRuleCall_6_0() { return cStatusEnableTypeEnumRuleCall_6_0; }

		//("using" "index" reverse="reverse"? ("tablespace" tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)?
		public Group getGroup_7() { return cGroup_7; }

		//"using"
		public Keyword getUsingKeyword_7_0() { return cUsingKeyword_7_0; }

		//"index"
		public Keyword getIndexKeyword_7_1() { return cIndexKeyword_7_1; }

		//reverse="reverse"?
		public Assignment getReverseAssignment_7_2() { return cReverseAssignment_7_2; }

		//"reverse"
		public Keyword getReverseReverseKeyword_7_2_0() { return cReverseReverseKeyword_7_2_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_7_3() { return cGroup_7_3; }

		//"tablespace"
		public Keyword getTablespaceKeyword_7_3_0() { return cTablespaceKeyword_7_3_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_7_3_1() { return cTablespaceAssignment_7_3_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_7_3_1_0() { return cTablespaceDBNAMETerminalRuleCall_7_3_1_0; }

		//indexname=DBNAME_WITH_SCHEMA?
		public Assignment getIndexnameAssignment_7_4() { return cIndexnameAssignment_7_4; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getIndexnameDBNAME_WITH_SCHEMAParserRuleCall_7_4_0() { return cIndexnameDBNAME_WITH_SCHEMAParserRuleCall_7_4_0; }

		//","?
		public Keyword getCommaKeyword_8() { return cCommaKeyword_8; }
	}

	public class UniqueKeyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UniqueKey");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cConstraintKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cConsNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cConsNameDBNAMETerminalRuleCall_1_0 = (RuleCall)cConsNameAssignment_1.eContents().get(0);
		private final Keyword cUniqueKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cUk_columnsAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cUk_columnsColumnRefParserRuleCall_4_0 = (RuleCall)cUk_columnsAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cUsingKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cIndexKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Group cGroup_6_2 = (Group)cGroup_6.eContents().get(2);
		private final Keyword cTablespaceKeyword_6_2_0 = (Keyword)cGroup_6_2.eContents().get(0);
		private final Assignment cTablespaceAssignment_6_2_1 = (Assignment)cGroup_6_2.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_6_2_1_0 = (RuleCall)cTablespaceAssignment_6_2_1.eContents().get(0);
		private final Assignment cIndexnameAssignment_6_3 = (Assignment)cGroup_6.eContents().get(3);
		private final RuleCall cIndexnameDBNAME_WITH_SCHEMAParserRuleCall_6_3_0 = (RuleCall)cIndexnameAssignment_6_3.eContents().get(0);
		private final Assignment cStatusAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cStatusEnableTypeEnumRuleCall_7_0 = (RuleCall)cStatusAssignment_7.eContents().get(0);
		private final Keyword cCommaKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//UniqueKey:
		//	"constraint" consName=DBNAME "unique" "(" uk_columns+=ColumnRef+ ")" ("using" "index" ("tablespace"
		//	tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)? status=EnableType? ","?;
		public ParserRule getRule() { return rule; }

		//"constraint" consName=DBNAME "unique" "(" uk_columns+=ColumnRef+ ")" ("using" "index" ("tablespace" tablespace=DBNAME)?
		//indexname=DBNAME_WITH_SCHEMA?)? status=EnableType? ","?
		public Group getGroup() { return cGroup; }

		//"constraint"
		public Keyword getConstraintKeyword_0() { return cConstraintKeyword_0; }

		//consName=DBNAME
		public Assignment getConsNameAssignment_1() { return cConsNameAssignment_1; }

		//DBNAME
		public RuleCall getConsNameDBNAMETerminalRuleCall_1_0() { return cConsNameDBNAMETerminalRuleCall_1_0; }

		//"unique"
		public Keyword getUniqueKeyword_2() { return cUniqueKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//uk_columns+=ColumnRef+
		public Assignment getUk_columnsAssignment_4() { return cUk_columnsAssignment_4; }

		//ColumnRef
		public RuleCall getUk_columnsColumnRefParserRuleCall_4_0() { return cUk_columnsColumnRefParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//("using" "index" ("tablespace" tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)?
		public Group getGroup_6() { return cGroup_6; }

		//"using"
		public Keyword getUsingKeyword_6_0() { return cUsingKeyword_6_0; }

		//"index"
		public Keyword getIndexKeyword_6_1() { return cIndexKeyword_6_1; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_6_2() { return cGroup_6_2; }

		//"tablespace"
		public Keyword getTablespaceKeyword_6_2_0() { return cTablespaceKeyword_6_2_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_6_2_1() { return cTablespaceAssignment_6_2_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_6_2_1_0() { return cTablespaceDBNAMETerminalRuleCall_6_2_1_0; }

		//indexname=DBNAME_WITH_SCHEMA?
		public Assignment getIndexnameAssignment_6_3() { return cIndexnameAssignment_6_3; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getIndexnameDBNAME_WITH_SCHEMAParserRuleCall_6_3_0() { return cIndexnameDBNAME_WITH_SCHEMAParserRuleCall_6_3_0; }

		//status=EnableType?
		public Assignment getStatusAssignment_7() { return cStatusAssignment_7; }

		//EnableType
		public RuleCall getStatusEnableTypeEnumRuleCall_7_0() { return cStatusEnableTypeEnumRuleCall_7_0; }

		//","?
		public Keyword getCommaKeyword_8() { return cCommaKeyword_8; }
	}

	public class IndexElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Index");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cIndexKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cConsNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cConsNameDBNAME_WITH_SCHEMAParserRuleCall_1_0 = (RuleCall)cConsNameAssignment_1.eContents().get(0);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
		private final Assignment cIndex_columnsAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
		private final RuleCall cIndex_columnsColumnRefParserRuleCall_2_0_1_0 = (RuleCall)cIndex_columnsAssignment_2_0_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2);
		private final Group cGroup_2_0_3 = (Group)cGroup_2_0.eContents().get(3);
		private final Keyword cDomain_indexKeyword_2_0_3_0 = (Keyword)cGroup_2_0_3.eContents().get(0);
		private final Assignment cDomain_index_expressionAssignment_2_0_3_1 = (Assignment)cGroup_2_0_3.eContents().get(1);
		private final RuleCall cDomain_index_expressionSTRINGTerminalRuleCall_2_0_3_1_0 = (RuleCall)cDomain_index_expressionAssignment_2_0_3_1.eContents().get(0);
		private final Assignment cFunction_based_expressionAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1);
		private final RuleCall cFunction_based_expressionSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cFunction_based_expressionAssignment_2_1.eContents().get(0);
		private final Assignment cBitmapAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cBitmapBitmapKeyword_3_0 = (Keyword)cBitmapAssignment_3.eContents().get(0);
		private final Assignment cUniqueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Keyword cUniqueUniqueKeyword_4_0 = (Keyword)cUniqueAssignment_4.eContents().get(0);
		private final Assignment cLoggingAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cLoggingLoggingTypeEnumRuleCall_5_0 = (RuleCall)cLoggingAssignment_5.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cTablespaceKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cTablespaceAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_6_1_0 = (RuleCall)cTablespaceAssignment_6_1.eContents().get(0);
		private final Assignment cCompressionAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cCompressionCompressTypeEnumRuleCall_7_0 = (RuleCall)cCompressionAssignment_7.eContents().get(0);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Assignment cParallelAssignment_8_0 = (Assignment)cGroup_8.eContents().get(0);
		private final RuleCall cParallelParallelTypeEnumRuleCall_8_0_0 = (RuleCall)cParallelAssignment_8_0.eContents().get(0);
		private final Assignment cParallel_degreeAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cParallel_degreeINTTerminalRuleCall_8_1_0 = (RuleCall)cParallel_degreeAssignment_8_1.eContents().get(0);
		private final Assignment cGlobalAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cGlobalIndexGlobalTypeEnumRuleCall_9_0 = (RuleCall)cGlobalAssignment_9.eContents().get(0);
		private final Keyword cCommaKeyword_10 = (Keyword)cGroup.eContents().get(10);
		
		//Index:
		//	"index" consName=DBNAME_WITH_SCHEMA ("(" index_columns+=ColumnRef+ ")" ("domain_index"
		//	domain_index_expression=STRING)? | function_based_expression=STRING) bitmap="bitmap"? unique="unique"?
		//	logging=LoggingType? ("tablespace" tablespace=DBNAME)? compression=CompressType? (parallel=ParallelType
		//	parallel_degree=INT?)? global=IndexGlobalType? ","?;
		public ParserRule getRule() { return rule; }

		//"index" consName=DBNAME_WITH_SCHEMA ("(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)?
		//| function_based_expression=STRING) bitmap="bitmap"? unique="unique"? logging=LoggingType? ("tablespace"
		//tablespace=DBNAME)? compression=CompressType? (parallel=ParallelType parallel_degree=INT?)? global=IndexGlobalType?
		//","?
		public Group getGroup() { return cGroup; }

		//"index"
		public Keyword getIndexKeyword_0() { return cIndexKeyword_0; }

		//consName=DBNAME_WITH_SCHEMA
		public Assignment getConsNameAssignment_1() { return cConsNameAssignment_1; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getConsNameDBNAME_WITH_SCHEMAParserRuleCall_1_0() { return cConsNameDBNAME_WITH_SCHEMAParserRuleCall_1_0; }

		//"(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)? | function_based_expression=STRING
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//"(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)?
		public Group getGroup_2_0() { return cGroup_2_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_2_0_0() { return cLeftParenthesisKeyword_2_0_0; }

		//index_columns+=ColumnRef+
		public Assignment getIndex_columnsAssignment_2_0_1() { return cIndex_columnsAssignment_2_0_1; }

		//ColumnRef
		public RuleCall getIndex_columnsColumnRefParserRuleCall_2_0_1_0() { return cIndex_columnsColumnRefParserRuleCall_2_0_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_2_0_2() { return cRightParenthesisKeyword_2_0_2; }

		//("domain_index" domain_index_expression=STRING)?
		public Group getGroup_2_0_3() { return cGroup_2_0_3; }

		//"domain_index"
		public Keyword getDomain_indexKeyword_2_0_3_0() { return cDomain_indexKeyword_2_0_3_0; }

		//domain_index_expression=STRING
		public Assignment getDomain_index_expressionAssignment_2_0_3_1() { return cDomain_index_expressionAssignment_2_0_3_1; }

		//STRING
		public RuleCall getDomain_index_expressionSTRINGTerminalRuleCall_2_0_3_1_0() { return cDomain_index_expressionSTRINGTerminalRuleCall_2_0_3_1_0; }

		//function_based_expression=STRING
		public Assignment getFunction_based_expressionAssignment_2_1() { return cFunction_based_expressionAssignment_2_1; }

		//STRING
		public RuleCall getFunction_based_expressionSTRINGTerminalRuleCall_2_1_0() { return cFunction_based_expressionSTRINGTerminalRuleCall_2_1_0; }

		//bitmap="bitmap"?
		public Assignment getBitmapAssignment_3() { return cBitmapAssignment_3; }

		//"bitmap"
		public Keyword getBitmapBitmapKeyword_3_0() { return cBitmapBitmapKeyword_3_0; }

		//unique="unique"?
		public Assignment getUniqueAssignment_4() { return cUniqueAssignment_4; }

		//"unique"
		public Keyword getUniqueUniqueKeyword_4_0() { return cUniqueUniqueKeyword_4_0; }

		//logging=LoggingType?
		public Assignment getLoggingAssignment_5() { return cLoggingAssignment_5; }

		//LoggingType
		public RuleCall getLoggingLoggingTypeEnumRuleCall_5_0() { return cLoggingLoggingTypeEnumRuleCall_5_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_6() { return cGroup_6; }

		//"tablespace"
		public Keyword getTablespaceKeyword_6_0() { return cTablespaceKeyword_6_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_6_1() { return cTablespaceAssignment_6_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_6_1_0() { return cTablespaceDBNAMETerminalRuleCall_6_1_0; }

		//compression=CompressType?
		public Assignment getCompressionAssignment_7() { return cCompressionAssignment_7; }

		//CompressType
		public RuleCall getCompressionCompressTypeEnumRuleCall_7_0() { return cCompressionCompressTypeEnumRuleCall_7_0; }

		//(parallel=ParallelType parallel_degree=INT?)?
		public Group getGroup_8() { return cGroup_8; }

		//parallel=ParallelType
		public Assignment getParallelAssignment_8_0() { return cParallelAssignment_8_0; }

		//ParallelType
		public RuleCall getParallelParallelTypeEnumRuleCall_8_0_0() { return cParallelParallelTypeEnumRuleCall_8_0_0; }

		//parallel_degree=INT?
		public Assignment getParallel_degreeAssignment_8_1() { return cParallel_degreeAssignment_8_1; }

		//INT
		public RuleCall getParallel_degreeINTTerminalRuleCall_8_1_0() { return cParallel_degreeINTTerminalRuleCall_8_1_0; }

		//global=IndexGlobalType?
		public Assignment getGlobalAssignment_9() { return cGlobalAssignment_9; }

		//IndexGlobalType
		public RuleCall getGlobalIndexGlobalTypeEnumRuleCall_9_0() { return cGlobalIndexGlobalTypeEnumRuleCall_9_0; }

		//","?
		public Keyword getCommaKeyword_10() { return cCommaKeyword_10; }
	}

	public class IndexExTableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IndexExTable");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCreateKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Assignment cUniquenessAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
		private final Keyword cUniquenessUniqueKeyword_1_0_0 = (Keyword)cUniquenessAssignment_1_0.eContents().get(0);
		private final Assignment cUniquenessAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
		private final Keyword cUniquenessNonuniqueKeyword_1_1_0 = (Keyword)cUniquenessAssignment_1_1.eContents().get(0);
		private final Assignment cBitmapAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cBitmapBitmapKeyword_2_0 = (Keyword)cBitmapAssignment_2.eContents().get(0);
		private final Keyword cIndexKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cIndex_nameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cIndex_nameDBNAME_WITH_SCHEMAParserRuleCall_4_0 = (RuleCall)cIndex_nameAssignment_4.eContents().get(0);
		private final Keyword cOnKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cTable_nameAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cTable_nameDBNAMETerminalRuleCall_6_0 = (RuleCall)cTable_nameAssignment_6.eContents().get(0);
		private final Alternatives cAlternatives_7 = (Alternatives)cGroup.eContents().get(7);
		private final Group cGroup_7_0 = (Group)cAlternatives_7.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_7_0_0 = (Keyword)cGroup_7_0.eContents().get(0);
		private final Assignment cIndex_columnsAssignment_7_0_1 = (Assignment)cGroup_7_0.eContents().get(1);
		private final RuleCall cIndex_columnsColumnRefParserRuleCall_7_0_1_0 = (RuleCall)cIndex_columnsAssignment_7_0_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7_0_2 = (Keyword)cGroup_7_0.eContents().get(2);
		private final Group cGroup_7_0_3 = (Group)cGroup_7_0.eContents().get(3);
		private final Keyword cDomain_indexKeyword_7_0_3_0 = (Keyword)cGroup_7_0_3.eContents().get(0);
		private final Assignment cDomain_index_expressionAssignment_7_0_3_1 = (Assignment)cGroup_7_0_3.eContents().get(1);
		private final RuleCall cDomain_index_expressionSTRINGTerminalRuleCall_7_0_3_1_0 = (RuleCall)cDomain_index_expressionAssignment_7_0_3_1.eContents().get(0);
		private final Assignment cFunction_based_expressionAssignment_7_1 = (Assignment)cAlternatives_7.eContents().get(1);
		private final RuleCall cFunction_based_expressionSTRINGTerminalRuleCall_7_1_0 = (RuleCall)cFunction_based_expressionAssignment_7_1.eContents().get(0);
		private final Assignment cLoggingAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cLoggingLoggingTypeEnumRuleCall_8_0 = (RuleCall)cLoggingAssignment_8.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cTablespaceKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cTablespaceAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_9_1_0 = (RuleCall)cTablespaceAssignment_9_1.eContents().get(0);
		private final Assignment cCompressionAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cCompressionCompressTypeEnumRuleCall_10_0 = (RuleCall)cCompressionAssignment_10.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Assignment cParallelAssignment_11_0 = (Assignment)cGroup_11.eContents().get(0);
		private final RuleCall cParallelParallelTypeEnumRuleCall_11_0_0 = (RuleCall)cParallelAssignment_11_0.eContents().get(0);
		private final Assignment cParallel_degreeAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
		private final RuleCall cParallel_degreeINTTerminalRuleCall_11_1_0 = (RuleCall)cParallel_degreeAssignment_11_1.eContents().get(0);
		private final Assignment cGlobalAssignment_12 = (Assignment)cGroup.eContents().get(12);
		private final RuleCall cGlobalIndexGlobalTypeEnumRuleCall_12_0 = (RuleCall)cGlobalAssignment_12.eContents().get(0);
		private final Keyword cSemicolonKeyword_13 = (Keyword)cGroup.eContents().get(13);
		
		//IndexExTable:
		//	"create" (uniqueness="unique" | uniqueness="nonunique")? bitmap="bitmap"? "index" index_name=DBNAME_WITH_SCHEMA "on"?
		//	table_name=DBNAME ("(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)? |
		//	function_based_expression=STRING) logging=LoggingType? ("tablespace" tablespace=DBNAME)? compression=CompressType?
		//	(parallel=ParallelType parallel_degree=INT?)? global=IndexGlobalType? ";";
		public ParserRule getRule() { return rule; }

		//"create" (uniqueness="unique" | uniqueness="nonunique")? bitmap="bitmap"? "index" index_name=DBNAME_WITH_SCHEMA "on"?
		//table_name=DBNAME ("(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)? |
		//function_based_expression=STRING) logging=LoggingType? ("tablespace" tablespace=DBNAME)? compression=CompressType?
		//(parallel=ParallelType parallel_degree=INT?)? global=IndexGlobalType? ";"
		public Group getGroup() { return cGroup; }

		//"create"
		public Keyword getCreateKeyword_0() { return cCreateKeyword_0; }

		//(uniqueness="unique" | uniqueness="nonunique")?
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//uniqueness="unique"
		public Assignment getUniquenessAssignment_1_0() { return cUniquenessAssignment_1_0; }

		//"unique"
		public Keyword getUniquenessUniqueKeyword_1_0_0() { return cUniquenessUniqueKeyword_1_0_0; }

		//uniqueness="nonunique"
		public Assignment getUniquenessAssignment_1_1() { return cUniquenessAssignment_1_1; }

		//"nonunique"
		public Keyword getUniquenessNonuniqueKeyword_1_1_0() { return cUniquenessNonuniqueKeyword_1_1_0; }

		//bitmap="bitmap"?
		public Assignment getBitmapAssignment_2() { return cBitmapAssignment_2; }

		//"bitmap"
		public Keyword getBitmapBitmapKeyword_2_0() { return cBitmapBitmapKeyword_2_0; }

		//"index"
		public Keyword getIndexKeyword_3() { return cIndexKeyword_3; }

		//index_name=DBNAME_WITH_SCHEMA
		public Assignment getIndex_nameAssignment_4() { return cIndex_nameAssignment_4; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getIndex_nameDBNAME_WITH_SCHEMAParserRuleCall_4_0() { return cIndex_nameDBNAME_WITH_SCHEMAParserRuleCall_4_0; }

		//"on"?
		public Keyword getOnKeyword_5() { return cOnKeyword_5; }

		//table_name=DBNAME
		public Assignment getTable_nameAssignment_6() { return cTable_nameAssignment_6; }

		//DBNAME
		public RuleCall getTable_nameDBNAMETerminalRuleCall_6_0() { return cTable_nameDBNAMETerminalRuleCall_6_0; }

		//"(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)? | function_based_expression=STRING
		public Alternatives getAlternatives_7() { return cAlternatives_7; }

		//"(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)?
		public Group getGroup_7_0() { return cGroup_7_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_7_0_0() { return cLeftParenthesisKeyword_7_0_0; }

		//index_columns+=ColumnRef+
		public Assignment getIndex_columnsAssignment_7_0_1() { return cIndex_columnsAssignment_7_0_1; }

		//ColumnRef
		public RuleCall getIndex_columnsColumnRefParserRuleCall_7_0_1_0() { return cIndex_columnsColumnRefParserRuleCall_7_0_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7_0_2() { return cRightParenthesisKeyword_7_0_2; }

		//("domain_index" domain_index_expression=STRING)?
		public Group getGroup_7_0_3() { return cGroup_7_0_3; }

		//"domain_index"
		public Keyword getDomain_indexKeyword_7_0_3_0() { return cDomain_indexKeyword_7_0_3_0; }

		//domain_index_expression=STRING
		public Assignment getDomain_index_expressionAssignment_7_0_3_1() { return cDomain_index_expressionAssignment_7_0_3_1; }

		//STRING
		public RuleCall getDomain_index_expressionSTRINGTerminalRuleCall_7_0_3_1_0() { return cDomain_index_expressionSTRINGTerminalRuleCall_7_0_3_1_0; }

		//function_based_expression=STRING
		public Assignment getFunction_based_expressionAssignment_7_1() { return cFunction_based_expressionAssignment_7_1; }

		//STRING
		public RuleCall getFunction_based_expressionSTRINGTerminalRuleCall_7_1_0() { return cFunction_based_expressionSTRINGTerminalRuleCall_7_1_0; }

		//logging=LoggingType?
		public Assignment getLoggingAssignment_8() { return cLoggingAssignment_8; }

		//LoggingType
		public RuleCall getLoggingLoggingTypeEnumRuleCall_8_0() { return cLoggingLoggingTypeEnumRuleCall_8_0; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_9() { return cGroup_9; }

		//"tablespace"
		public Keyword getTablespaceKeyword_9_0() { return cTablespaceKeyword_9_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_9_1() { return cTablespaceAssignment_9_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_9_1_0() { return cTablespaceDBNAMETerminalRuleCall_9_1_0; }

		//compression=CompressType?
		public Assignment getCompressionAssignment_10() { return cCompressionAssignment_10; }

		//CompressType
		public RuleCall getCompressionCompressTypeEnumRuleCall_10_0() { return cCompressionCompressTypeEnumRuleCall_10_0; }

		//(parallel=ParallelType parallel_degree=INT?)?
		public Group getGroup_11() { return cGroup_11; }

		//parallel=ParallelType
		public Assignment getParallelAssignment_11_0() { return cParallelAssignment_11_0; }

		//ParallelType
		public RuleCall getParallelParallelTypeEnumRuleCall_11_0_0() { return cParallelParallelTypeEnumRuleCall_11_0_0; }

		//parallel_degree=INT?
		public Assignment getParallel_degreeAssignment_11_1() { return cParallel_degreeAssignment_11_1; }

		//INT
		public RuleCall getParallel_degreeINTTerminalRuleCall_11_1_0() { return cParallel_degreeINTTerminalRuleCall_11_1_0; }

		//global=IndexGlobalType?
		public Assignment getGlobalAssignment_12() { return cGlobalAssignment_12; }

		//IndexGlobalType
		public RuleCall getGlobalIndexGlobalTypeEnumRuleCall_12_0() { return cGlobalIndexGlobalTypeEnumRuleCall_12_0; }

		//";"
		public Keyword getSemicolonKeyword_13() { return cSemicolonKeyword_13; }
	}

	public class ColumnRefElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ColumnRef");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Assignment cColumn_nameAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
		private final RuleCall cColumn_nameDBNAMETerminalRuleCall_0_0_0 = (RuleCall)cColumn_nameAssignment_0_0.eContents().get(0);
		private final Assignment cColumn_name_stringAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1);
		private final RuleCall cColumn_name_stringSTRINGTerminalRuleCall_0_1_0 = (RuleCall)cColumn_name_stringAssignment_0_1.eContents().get(0);
		private final Keyword cCommaKeyword_1 = (Keyword)cGroup.eContents().get(1);
		
		//ColumnRef:
		//	(column_name=DBNAME | column_name_string=STRING) ","?;
		public ParserRule getRule() { return rule; }

		//(column_name=DBNAME | column_name_string=STRING) ","?
		public Group getGroup() { return cGroup; }

		//column_name=DBNAME | column_name_string=STRING
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//column_name=DBNAME
		public Assignment getColumn_nameAssignment_0_0() { return cColumn_nameAssignment_0_0; }

		//DBNAME
		public RuleCall getColumn_nameDBNAMETerminalRuleCall_0_0_0() { return cColumn_nameDBNAMETerminalRuleCall_0_0_0; }

		//column_name_string=STRING
		public Assignment getColumn_name_stringAssignment_0_1() { return cColumn_name_stringAssignment_0_1; }

		//STRING
		public RuleCall getColumn_name_stringSTRINGTerminalRuleCall_0_1_0() { return cColumn_name_stringSTRINGTerminalRuleCall_0_1_0; }

		//","?
		public Keyword getCommaKeyword_1() { return cCommaKeyword_1; }
	}

	public class SequenceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Sequence");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCreateKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cSequenceKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cSequence_nameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cSequence_nameDBNAME_WITH_SCHEMAParserRuleCall_2_0 = (RuleCall)cSequence_nameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cStartKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cWithKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Assignment cStartwithAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final RuleCall cStartwithSIGNED_BIGINTParserRuleCall_3_2_0 = (RuleCall)cStartwithAssignment_3_2.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cIncrementKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cByKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cIncrement_byAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cIncrement_bySIGNED_BIGINTParserRuleCall_4_2_0 = (RuleCall)cIncrement_byAssignment_4_2.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cMaxvalueKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cMaxvalueAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cMaxvalueSIGNED_BIGINTParserRuleCall_5_1_0 = (RuleCall)cMaxvalueAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cMinvalueKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cMinvalueAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cMinvalueSIGNED_BIGINTParserRuleCall_6_1_0 = (RuleCall)cMinvalueAssignment_6_1.eContents().get(0);
		private final Assignment cCycleAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cCycleCycleTypeEnumRuleCall_7_0 = (RuleCall)cCycleAssignment_7.eContents().get(0);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cCacheKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cCacheAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cCacheBIGINTParserRuleCall_8_1_0 = (RuleCall)cCacheAssignment_8_1.eContents().get(0);
		private final Assignment cOrderAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cOrderOrderTypeEnumRuleCall_9_0 = (RuleCall)cOrderAssignment_9.eContents().get(0);
		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
		private final Keyword cOrcas_ext_max_value_selectKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
		private final Assignment cMax_value_selectAssignment_10_1 = (Assignment)cGroup_10.eContents().get(1);
		private final RuleCall cMax_value_selectSTRINGTerminalRuleCall_10_1_0 = (RuleCall)cMax_value_selectAssignment_10_1.eContents().get(0);
		private final Keyword cSemicolonKeyword_11 = (Keyword)cGroup.eContents().get(11);
		
		//Sequence:
		//	"create" "sequence" sequence_name=DBNAME_WITH_SCHEMA ("start" "with" startwith=SIGNED_BIGINT)? ("increment" "by"
		//	increment_by=SIGNED_BIGINT)? ("maxvalue" maxvalue=SIGNED_BIGINT)? ("minvalue" minvalue=SIGNED_BIGINT)?
		//	cycle=CycleType? ("cache" cache=BIGINT)? order=OrderType? ("orcas_ext_max_value_select" max_value_select=STRING)?
		//	";";
		public ParserRule getRule() { return rule; }

		//"create" "sequence" sequence_name=DBNAME_WITH_SCHEMA ("start" "with" startwith=SIGNED_BIGINT)? ("increment" "by"
		//increment_by=SIGNED_BIGINT)? ("maxvalue" maxvalue=SIGNED_BIGINT)? ("minvalue" minvalue=SIGNED_BIGINT)?
		//cycle=CycleType? ("cache" cache=BIGINT)? order=OrderType? ("orcas_ext_max_value_select" max_value_select=STRING)? ";"
		public Group getGroup() { return cGroup; }

		//"create"
		public Keyword getCreateKeyword_0() { return cCreateKeyword_0; }

		//"sequence"
		public Keyword getSequenceKeyword_1() { return cSequenceKeyword_1; }

		//sequence_name=DBNAME_WITH_SCHEMA
		public Assignment getSequence_nameAssignment_2() { return cSequence_nameAssignment_2; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getSequence_nameDBNAME_WITH_SCHEMAParserRuleCall_2_0() { return cSequence_nameDBNAME_WITH_SCHEMAParserRuleCall_2_0; }

		//("start" "with" startwith=SIGNED_BIGINT)?
		public Group getGroup_3() { return cGroup_3; }

		//"start"
		public Keyword getStartKeyword_3_0() { return cStartKeyword_3_0; }

		//"with"
		public Keyword getWithKeyword_3_1() { return cWithKeyword_3_1; }

		//startwith=SIGNED_BIGINT
		public Assignment getStartwithAssignment_3_2() { return cStartwithAssignment_3_2; }

		//SIGNED_BIGINT
		public RuleCall getStartwithSIGNED_BIGINTParserRuleCall_3_2_0() { return cStartwithSIGNED_BIGINTParserRuleCall_3_2_0; }

		//("increment" "by" increment_by=SIGNED_BIGINT)?
		public Group getGroup_4() { return cGroup_4; }

		//"increment"
		public Keyword getIncrementKeyword_4_0() { return cIncrementKeyword_4_0; }

		//"by"
		public Keyword getByKeyword_4_1() { return cByKeyword_4_1; }

		//increment_by=SIGNED_BIGINT
		public Assignment getIncrement_byAssignment_4_2() { return cIncrement_byAssignment_4_2; }

		//SIGNED_BIGINT
		public RuleCall getIncrement_bySIGNED_BIGINTParserRuleCall_4_2_0() { return cIncrement_bySIGNED_BIGINTParserRuleCall_4_2_0; }

		//("maxvalue" maxvalue=SIGNED_BIGINT)?
		public Group getGroup_5() { return cGroup_5; }

		//"maxvalue"
		public Keyword getMaxvalueKeyword_5_0() { return cMaxvalueKeyword_5_0; }

		//maxvalue=SIGNED_BIGINT
		public Assignment getMaxvalueAssignment_5_1() { return cMaxvalueAssignment_5_1; }

		//SIGNED_BIGINT
		public RuleCall getMaxvalueSIGNED_BIGINTParserRuleCall_5_1_0() { return cMaxvalueSIGNED_BIGINTParserRuleCall_5_1_0; }

		//("minvalue" minvalue=SIGNED_BIGINT)?
		public Group getGroup_6() { return cGroup_6; }

		//"minvalue"
		public Keyword getMinvalueKeyword_6_0() { return cMinvalueKeyword_6_0; }

		//minvalue=SIGNED_BIGINT
		public Assignment getMinvalueAssignment_6_1() { return cMinvalueAssignment_6_1; }

		//SIGNED_BIGINT
		public RuleCall getMinvalueSIGNED_BIGINTParserRuleCall_6_1_0() { return cMinvalueSIGNED_BIGINTParserRuleCall_6_1_0; }

		//cycle=CycleType?
		public Assignment getCycleAssignment_7() { return cCycleAssignment_7; }

		//CycleType
		public RuleCall getCycleCycleTypeEnumRuleCall_7_0() { return cCycleCycleTypeEnumRuleCall_7_0; }

		//("cache" cache=BIGINT)?
		public Group getGroup_8() { return cGroup_8; }

		//"cache"
		public Keyword getCacheKeyword_8_0() { return cCacheKeyword_8_0; }

		//cache=BIGINT
		public Assignment getCacheAssignment_8_1() { return cCacheAssignment_8_1; }

		//BIGINT
		public RuleCall getCacheBIGINTParserRuleCall_8_1_0() { return cCacheBIGINTParserRuleCall_8_1_0; }

		//order=OrderType?
		public Assignment getOrderAssignment_9() { return cOrderAssignment_9; }

		//OrderType
		public RuleCall getOrderOrderTypeEnumRuleCall_9_0() { return cOrderOrderTypeEnumRuleCall_9_0; }

		//("orcas_ext_max_value_select" max_value_select=STRING)?
		public Group getGroup_10() { return cGroup_10; }

		//"orcas_ext_max_value_select"
		public Keyword getOrcas_ext_max_value_selectKeyword_10_0() { return cOrcas_ext_max_value_selectKeyword_10_0; }

		//max_value_select=STRING
		public Assignment getMax_value_selectAssignment_10_1() { return cMax_value_selectAssignment_10_1; }

		//STRING
		public RuleCall getMax_value_selectSTRINGTerminalRuleCall_10_1_0() { return cMax_value_selectSTRINGTerminalRuleCall_10_1_0; }

		//";"
		public Keyword getSemicolonKeyword_11() { return cSemicolonKeyword_11; }
	}

	public class ColumnIdentityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ColumnIdentity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGeneratedKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Assignment cAlwaysAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
		private final Keyword cAlwaysAlwaysKeyword_1_0_0 = (Keyword)cAlwaysAssignment_1_0.eContents().get(0);
		private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
		private final Keyword cByKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
		private final Assignment cBy_defaultAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
		private final Keyword cBy_defaultDefaultKeyword_1_1_1_0 = (Keyword)cBy_defaultAssignment_1_1_1.eContents().get(0);
		private final Group cGroup_1_1_2 = (Group)cGroup_1_1.eContents().get(2);
		private final Keyword cOnKeyword_1_1_2_0 = (Keyword)cGroup_1_1_2.eContents().get(0);
		private final Assignment cOn_nullAssignment_1_1_2_1 = (Assignment)cGroup_1_1_2.eContents().get(1);
		private final Keyword cOn_nullNullKeyword_1_1_2_1_0 = (Keyword)cOn_nullAssignment_1_1_2_1.eContents().get(0);
		private final Keyword cAsKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cIdentityKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cIncrementKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Keyword cByKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
		private final Assignment cIncrement_byAssignment_4_1_2 = (Assignment)cGroup_4_1.eContents().get(2);
		private final RuleCall cIncrement_byINTTerminalRuleCall_4_1_2_0 = (RuleCall)cIncrement_byAssignment_4_1_2.eContents().get(0);
		private final Group cGroup_4_2 = (Group)cGroup_4.eContents().get(2);
		private final Keyword cMaxvalueKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
		private final Assignment cMaxvalueAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
		private final RuleCall cMaxvalueINTTerminalRuleCall_4_2_1_0 = (RuleCall)cMaxvalueAssignment_4_2_1.eContents().get(0);
		private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3);
		private final Keyword cMinvalueKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0);
		private final Assignment cMinvalueAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1);
		private final RuleCall cMinvalueINTTerminalRuleCall_4_3_1_0 = (RuleCall)cMinvalueAssignment_4_3_1.eContents().get(0);
		private final Assignment cCycleAssignment_4_4 = (Assignment)cGroup_4.eContents().get(4);
		private final RuleCall cCycleCycleTypeEnumRuleCall_4_4_0 = (RuleCall)cCycleAssignment_4_4.eContents().get(0);
		private final Group cGroup_4_5 = (Group)cGroup_4.eContents().get(5);
		private final Keyword cCacheKeyword_4_5_0 = (Keyword)cGroup_4_5.eContents().get(0);
		private final Assignment cCacheAssignment_4_5_1 = (Assignment)cGroup_4_5.eContents().get(1);
		private final RuleCall cCacheINTTerminalRuleCall_4_5_1_0 = (RuleCall)cCacheAssignment_4_5_1.eContents().get(0);
		private final Assignment cOrderAssignment_4_6 = (Assignment)cGroup_4.eContents().get(6);
		private final RuleCall cOrderOrderTypeEnumRuleCall_4_6_0 = (RuleCall)cOrderAssignment_4_6.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_7 = (Keyword)cGroup_4.eContents().get(7);
		
		//ColumnIdentity:
		//	"generated" (always="always" | "by" by_default="default" ("on" on_null="null")?) "as" "identity" ("(" ("increment"
		//	"by" increment_by=INT)? ("maxvalue" maxvalue=INT)? ("minvalue" minvalue=INT)? cycle=CycleType? ("cache" cache=INT)?
		//	order=OrderType? ")")?;
		public ParserRule getRule() { return rule; }

		//"generated" (always="always" | "by" by_default="default" ("on" on_null="null")?) "as" "identity" ("(" ("increment" "by"
		//increment_by=INT)? ("maxvalue" maxvalue=INT)? ("minvalue" minvalue=INT)? cycle=CycleType? ("cache" cache=INT)?
		//order=OrderType? ")")?
		public Group getGroup() { return cGroup; }

		//"generated"
		public Keyword getGeneratedKeyword_0() { return cGeneratedKeyword_0; }

		//always="always" | "by" by_default="default" ("on" on_null="null")?
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//always="always"
		public Assignment getAlwaysAssignment_1_0() { return cAlwaysAssignment_1_0; }

		//"always"
		public Keyword getAlwaysAlwaysKeyword_1_0_0() { return cAlwaysAlwaysKeyword_1_0_0; }

		//"by" by_default="default" ("on" on_null="null")?
		public Group getGroup_1_1() { return cGroup_1_1; }

		//"by"
		public Keyword getByKeyword_1_1_0() { return cByKeyword_1_1_0; }

		//by_default="default"
		public Assignment getBy_defaultAssignment_1_1_1() { return cBy_defaultAssignment_1_1_1; }

		//"default"
		public Keyword getBy_defaultDefaultKeyword_1_1_1_0() { return cBy_defaultDefaultKeyword_1_1_1_0; }

		//("on" on_null="null")?
		public Group getGroup_1_1_2() { return cGroup_1_1_2; }

		//"on"
		public Keyword getOnKeyword_1_1_2_0() { return cOnKeyword_1_1_2_0; }

		//on_null="null"
		public Assignment getOn_nullAssignment_1_1_2_1() { return cOn_nullAssignment_1_1_2_1; }

		//"null"
		public Keyword getOn_nullNullKeyword_1_1_2_1_0() { return cOn_nullNullKeyword_1_1_2_1_0; }

		//"as"
		public Keyword getAsKeyword_2() { return cAsKeyword_2; }

		//"identity"
		public Keyword getIdentityKeyword_3() { return cIdentityKeyword_3; }

		//("(" ("increment" "by" increment_by=INT)? ("maxvalue" maxvalue=INT)? ("minvalue" minvalue=INT)? cycle=CycleType?
		//("cache" cache=INT)? order=OrderType? ")")?
		public Group getGroup_4() { return cGroup_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_4_0() { return cLeftParenthesisKeyword_4_0; }

		//("increment" "by" increment_by=INT)?
		public Group getGroup_4_1() { return cGroup_4_1; }

		//"increment"
		public Keyword getIncrementKeyword_4_1_0() { return cIncrementKeyword_4_1_0; }

		//"by"
		public Keyword getByKeyword_4_1_1() { return cByKeyword_4_1_1; }

		//increment_by=INT
		public Assignment getIncrement_byAssignment_4_1_2() { return cIncrement_byAssignment_4_1_2; }

		//INT
		public RuleCall getIncrement_byINTTerminalRuleCall_4_1_2_0() { return cIncrement_byINTTerminalRuleCall_4_1_2_0; }

		//("maxvalue" maxvalue=INT)?
		public Group getGroup_4_2() { return cGroup_4_2; }

		//"maxvalue"
		public Keyword getMaxvalueKeyword_4_2_0() { return cMaxvalueKeyword_4_2_0; }

		//maxvalue=INT
		public Assignment getMaxvalueAssignment_4_2_1() { return cMaxvalueAssignment_4_2_1; }

		//INT
		public RuleCall getMaxvalueINTTerminalRuleCall_4_2_1_0() { return cMaxvalueINTTerminalRuleCall_4_2_1_0; }

		//("minvalue" minvalue=INT)?
		public Group getGroup_4_3() { return cGroup_4_3; }

		//"minvalue"
		public Keyword getMinvalueKeyword_4_3_0() { return cMinvalueKeyword_4_3_0; }

		//minvalue=INT
		public Assignment getMinvalueAssignment_4_3_1() { return cMinvalueAssignment_4_3_1; }

		//INT
		public RuleCall getMinvalueINTTerminalRuleCall_4_3_1_0() { return cMinvalueINTTerminalRuleCall_4_3_1_0; }

		//cycle=CycleType?
		public Assignment getCycleAssignment_4_4() { return cCycleAssignment_4_4; }

		//CycleType
		public RuleCall getCycleCycleTypeEnumRuleCall_4_4_0() { return cCycleCycleTypeEnumRuleCall_4_4_0; }

		//("cache" cache=INT)?
		public Group getGroup_4_5() { return cGroup_4_5; }

		//"cache"
		public Keyword getCacheKeyword_4_5_0() { return cCacheKeyword_4_5_0; }

		//cache=INT
		public Assignment getCacheAssignment_4_5_1() { return cCacheAssignment_4_5_1; }

		//INT
		public RuleCall getCacheINTTerminalRuleCall_4_5_1_0() { return cCacheINTTerminalRuleCall_4_5_1_0; }

		//order=OrderType?
		public Assignment getOrderAssignment_4_6() { return cOrderAssignment_4_6; }

		//OrderType
		public RuleCall getOrderOrderTypeEnumRuleCall_4_6_0() { return cOrderOrderTypeEnumRuleCall_4_6_0; }

		//")"
		public Keyword getRightParenthesisKeyword_4_7() { return cRightParenthesisKeyword_4_7; }
	}

	public class MviewElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Mview");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCreateKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cMaterializedKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cViewKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cMview_nameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cMview_nameDBNAME_WITH_SCHEMAParserRuleCall_3_0 = (RuleCall)cMview_nameAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cMview_columnsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cMview_columnsColumnRefParserRuleCall_4_1_0 = (RuleCall)cMview_columnsAssignment_4_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cTablespaceKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cTablespaceAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_5_1_0 = (RuleCall)cTablespaceAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Assignment cCompressionAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
		private final RuleCall cCompressionCompressTypeEnumRuleCall_6_0_0 = (RuleCall)cCompressionAssignment_6_0.eContents().get(0);
		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
		private final Keyword cForKeyword_6_1_0 = (Keyword)cGroup_6_1.eContents().get(0);
		private final Assignment cCompressionForAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
		private final RuleCall cCompressionForCompressForTypeEnumRuleCall_6_1_1_0 = (RuleCall)cCompressionForAssignment_6_1_1.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Assignment cParallelAssignment_7_0 = (Assignment)cGroup_7.eContents().get(0);
		private final RuleCall cParallelParallelTypeEnumRuleCall_7_0_0 = (RuleCall)cParallelAssignment_7_0.eContents().get(0);
		private final Assignment cParallel_degreeAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cParallel_degreeINTTerminalRuleCall_7_1_0 = (RuleCall)cParallel_degreeAssignment_7_1.eContents().get(0);
		private final Assignment cBuildModeAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cBuildModeBuildModeTypeEnumRuleCall_8_0 = (RuleCall)cBuildModeAssignment_8.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Assignment cRefreshMethodAssignment_9_0 = (Assignment)cGroup_9.eContents().get(0);
		private final RuleCall cRefreshMethodRefreshMethodTypeEnumRuleCall_9_0_0 = (RuleCall)cRefreshMethodAssignment_9_0.eContents().get(0);
		private final Group cGroup_9_1 = (Group)cGroup_9.eContents().get(1);
		private final Keyword cOnKeyword_9_1_0 = (Keyword)cGroup_9_1.eContents().get(0);
		private final Assignment cRefreshModeAssignment_9_1_1 = (Assignment)cGroup_9_1.eContents().get(1);
		private final RuleCall cRefreshModeRefreshModeTypeEnumRuleCall_9_1_1_0 = (RuleCall)cRefreshModeAssignment_9_1_1.eContents().get(0);
		private final Group cGroup_9_2 = (Group)cGroup_9.eContents().get(2);
		private final Keyword cWithKeyword_9_2_0 = (Keyword)cGroup_9_2.eContents().get(0);
		private final Alternatives cAlternatives_9_2_1 = (Alternatives)cGroup_9_2.eContents().get(1);
		private final Group cGroup_9_2_1_0 = (Group)cAlternatives_9_2_1.eContents().get(0);
		private final Assignment cRefreshWithPrimaryKeyAssignment_9_2_1_0_0 = (Assignment)cGroup_9_2_1_0.eContents().get(0);
		private final Keyword cRefreshWithPrimaryKeyPrimaryKeyword_9_2_1_0_0_0 = (Keyword)cRefreshWithPrimaryKeyAssignment_9_2_1_0_0.eContents().get(0);
		private final Keyword cKeyKeyword_9_2_1_0_1 = (Keyword)cGroup_9_2_1_0.eContents().get(1);
		private final Assignment cRefreshWithPrimaryKeyAssignment_9_2_1_1 = (Assignment)cAlternatives_9_2_1.eContents().get(1);
		private final Keyword cRefreshWithPrimaryKeyRowidKeyword_9_2_1_1_0 = (Keyword)cRefreshWithPrimaryKeyAssignment_9_2_1_1.eContents().get(0);
		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
		private final Assignment cQueryRewriteAssignment_10_0 = (Assignment)cGroup_10.eContents().get(0);
		private final RuleCall cQueryRewriteEnableTypeEnumRuleCall_10_0_0 = (RuleCall)cQueryRewriteAssignment_10_0.eContents().get(0);
		private final Keyword cQueryKeyword_10_1 = (Keyword)cGroup_10.eContents().get(1);
		private final Keyword cRewriteKeyword_10_2 = (Keyword)cGroup_10.eContents().get(2);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cAsKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Assignment cViewSelectCLOBAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
		private final RuleCall cViewSelectCLOBSTRINGTerminalRuleCall_11_1_0 = (RuleCall)cViewSelectCLOBAssignment_11_1.eContents().get(0);
		private final Keyword cSemicolonKeyword_12 = (Keyword)cGroup.eContents().get(12);
		
		//Mview:
		//	"create" "materialized" "view" mview_name=DBNAME_WITH_SCHEMA ("(" mview_columns+=ColumnRef+ ")")? ("tablespace"
		//	tablespace=DBNAME)? (compression=CompressType ("for" compressionFor=CompressForType)?)? (parallel=ParallelType
		//	parallel_degree=INT?)? buildMode=BuildModeType? (refreshMethod=RefreshMethodType ("on" refreshMode=RefreshModeType)?
		//	("with" (refreshWithPrimaryKey="primary" "key" | refreshWithPrimaryKey="rowid"))?)? (queryRewrite=EnableType "query"
		//	"rewrite")? ("as" viewSelectCLOB=STRING) ";";
		public ParserRule getRule() { return rule; }

		//"create" "materialized" "view" mview_name=DBNAME_WITH_SCHEMA ("(" mview_columns+=ColumnRef+ ")")? ("tablespace"
		//tablespace=DBNAME)? (compression=CompressType ("for" compressionFor=CompressForType)?)? (parallel=ParallelType
		//parallel_degree=INT?)? buildMode=BuildModeType? (refreshMethod=RefreshMethodType ("on" refreshMode=RefreshModeType)?
		//("with" (refreshWithPrimaryKey="primary" "key" | refreshWithPrimaryKey="rowid"))?)? (queryRewrite=EnableType "query"
		//"rewrite")? ("as" viewSelectCLOB=STRING) ";"
		public Group getGroup() { return cGroup; }

		//"create"
		public Keyword getCreateKeyword_0() { return cCreateKeyword_0; }

		//"materialized"
		public Keyword getMaterializedKeyword_1() { return cMaterializedKeyword_1; }

		//"view"
		public Keyword getViewKeyword_2() { return cViewKeyword_2; }

		//mview_name=DBNAME_WITH_SCHEMA
		public Assignment getMview_nameAssignment_3() { return cMview_nameAssignment_3; }

		//DBNAME_WITH_SCHEMA
		public RuleCall getMview_nameDBNAME_WITH_SCHEMAParserRuleCall_3_0() { return cMview_nameDBNAME_WITH_SCHEMAParserRuleCall_3_0; }

		//("(" mview_columns+=ColumnRef+ ")")?
		public Group getGroup_4() { return cGroup_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_4_0() { return cLeftParenthesisKeyword_4_0; }

		//mview_columns+=ColumnRef+
		public Assignment getMview_columnsAssignment_4_1() { return cMview_columnsAssignment_4_1; }

		//ColumnRef
		public RuleCall getMview_columnsColumnRefParserRuleCall_4_1_0() { return cMview_columnsColumnRefParserRuleCall_4_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_4_2() { return cRightParenthesisKeyword_4_2; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_5() { return cGroup_5; }

		//"tablespace"
		public Keyword getTablespaceKeyword_5_0() { return cTablespaceKeyword_5_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_5_1() { return cTablespaceAssignment_5_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_5_1_0() { return cTablespaceDBNAMETerminalRuleCall_5_1_0; }

		//(compression=CompressType ("for" compressionFor=CompressForType)?)?
		public Group getGroup_6() { return cGroup_6; }

		//compression=CompressType
		public Assignment getCompressionAssignment_6_0() { return cCompressionAssignment_6_0; }

		//CompressType
		public RuleCall getCompressionCompressTypeEnumRuleCall_6_0_0() { return cCompressionCompressTypeEnumRuleCall_6_0_0; }

		//("for" compressionFor=CompressForType)?
		public Group getGroup_6_1() { return cGroup_6_1; }

		//"for"
		public Keyword getForKeyword_6_1_0() { return cForKeyword_6_1_0; }

		//compressionFor=CompressForType
		public Assignment getCompressionForAssignment_6_1_1() { return cCompressionForAssignment_6_1_1; }

		//CompressForType
		public RuleCall getCompressionForCompressForTypeEnumRuleCall_6_1_1_0() { return cCompressionForCompressForTypeEnumRuleCall_6_1_1_0; }

		//(parallel=ParallelType parallel_degree=INT?)?
		public Group getGroup_7() { return cGroup_7; }

		//parallel=ParallelType
		public Assignment getParallelAssignment_7_0() { return cParallelAssignment_7_0; }

		//ParallelType
		public RuleCall getParallelParallelTypeEnumRuleCall_7_0_0() { return cParallelParallelTypeEnumRuleCall_7_0_0; }

		//parallel_degree=INT?
		public Assignment getParallel_degreeAssignment_7_1() { return cParallel_degreeAssignment_7_1; }

		//INT
		public RuleCall getParallel_degreeINTTerminalRuleCall_7_1_0() { return cParallel_degreeINTTerminalRuleCall_7_1_0; }

		//buildMode=BuildModeType?
		public Assignment getBuildModeAssignment_8() { return cBuildModeAssignment_8; }

		//BuildModeType
		public RuleCall getBuildModeBuildModeTypeEnumRuleCall_8_0() { return cBuildModeBuildModeTypeEnumRuleCall_8_0; }

		//(refreshMethod=RefreshMethodType ("on" refreshMode=RefreshModeType)? ("with" (refreshWithPrimaryKey="primary" "key" |
		//refreshWithPrimaryKey="rowid"))?)?
		public Group getGroup_9() { return cGroup_9; }

		//refreshMethod=RefreshMethodType
		public Assignment getRefreshMethodAssignment_9_0() { return cRefreshMethodAssignment_9_0; }

		//RefreshMethodType
		public RuleCall getRefreshMethodRefreshMethodTypeEnumRuleCall_9_0_0() { return cRefreshMethodRefreshMethodTypeEnumRuleCall_9_0_0; }

		//("on" refreshMode=RefreshModeType)?
		public Group getGroup_9_1() { return cGroup_9_1; }

		//"on"
		public Keyword getOnKeyword_9_1_0() { return cOnKeyword_9_1_0; }

		//refreshMode=RefreshModeType
		public Assignment getRefreshModeAssignment_9_1_1() { return cRefreshModeAssignment_9_1_1; }

		//RefreshModeType
		public RuleCall getRefreshModeRefreshModeTypeEnumRuleCall_9_1_1_0() { return cRefreshModeRefreshModeTypeEnumRuleCall_9_1_1_0; }

		//("with" (refreshWithPrimaryKey="primary" "key" | refreshWithPrimaryKey="rowid"))?
		public Group getGroup_9_2() { return cGroup_9_2; }

		//"with"
		public Keyword getWithKeyword_9_2_0() { return cWithKeyword_9_2_0; }

		//refreshWithPrimaryKey="primary" "key" | refreshWithPrimaryKey="rowid"
		public Alternatives getAlternatives_9_2_1() { return cAlternatives_9_2_1; }

		//refreshWithPrimaryKey="primary" "key"
		public Group getGroup_9_2_1_0() { return cGroup_9_2_1_0; }

		//refreshWithPrimaryKey="primary"
		public Assignment getRefreshWithPrimaryKeyAssignment_9_2_1_0_0() { return cRefreshWithPrimaryKeyAssignment_9_2_1_0_0; }

		//"primary"
		public Keyword getRefreshWithPrimaryKeyPrimaryKeyword_9_2_1_0_0_0() { return cRefreshWithPrimaryKeyPrimaryKeyword_9_2_1_0_0_0; }

		//"key"
		public Keyword getKeyKeyword_9_2_1_0_1() { return cKeyKeyword_9_2_1_0_1; }

		//refreshWithPrimaryKey="rowid"
		public Assignment getRefreshWithPrimaryKeyAssignment_9_2_1_1() { return cRefreshWithPrimaryKeyAssignment_9_2_1_1; }

		//"rowid"
		public Keyword getRefreshWithPrimaryKeyRowidKeyword_9_2_1_1_0() { return cRefreshWithPrimaryKeyRowidKeyword_9_2_1_1_0; }

		//(queryRewrite=EnableType "query" "rewrite")?
		public Group getGroup_10() { return cGroup_10; }

		//queryRewrite=EnableType
		public Assignment getQueryRewriteAssignment_10_0() { return cQueryRewriteAssignment_10_0; }

		//EnableType
		public RuleCall getQueryRewriteEnableTypeEnumRuleCall_10_0_0() { return cQueryRewriteEnableTypeEnumRuleCall_10_0_0; }

		//"query"
		public Keyword getQueryKeyword_10_1() { return cQueryKeyword_10_1; }

		//"rewrite"
		public Keyword getRewriteKeyword_10_2() { return cRewriteKeyword_10_2; }

		//"as" viewSelectCLOB=STRING
		public Group getGroup_11() { return cGroup_11; }

		//"as"
		public Keyword getAsKeyword_11_0() { return cAsKeyword_11_0; }

		//viewSelectCLOB=STRING
		public Assignment getViewSelectCLOBAssignment_11_1() { return cViewSelectCLOBAssignment_11_1; }

		//STRING
		public RuleCall getViewSelectCLOBSTRINGTerminalRuleCall_11_1_0() { return cViewSelectCLOBSTRINGTerminalRuleCall_11_1_0; }

		//";"
		public Keyword getSemicolonKeyword_12() { return cSemicolonKeyword_12; }
	}

	public class MviewLogElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MviewLog");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMaterializedKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cViewKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLogKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cTablespaceKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cTablespaceAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cTablespaceDBNAMETerminalRuleCall_3_1_0 = (RuleCall)cTablespaceAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cParallelAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cParallelParallelTypeEnumRuleCall_4_0_0 = (RuleCall)cParallelAssignment_4_0.eContents().get(0);
		private final Assignment cParallel_degreeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cParallel_degreeINTTerminalRuleCall_4_1_0 = (RuleCall)cParallel_degreeAssignment_4_1.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Assignment cNewValuesAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
		private final RuleCall cNewValuesNewValuesTypeEnumRuleCall_5_0_0 = (RuleCall)cNewValuesAssignment_5_0.eContents().get(0);
		private final Keyword cNewKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Keyword cValuesKeyword_5_2 = (Keyword)cGroup_5.eContents().get(2);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cWithKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
		private final Assignment cPrimaryKeyAssignment_6_1_0 = (Assignment)cGroup_6_1.eContents().get(0);
		private final Keyword cPrimaryKeyPrimaryKeyword_6_1_0_0 = (Keyword)cPrimaryKeyAssignment_6_1_0.eContents().get(0);
		private final Keyword cKeyKeyword_6_1_1 = (Keyword)cGroup_6_1.eContents().get(1);
		private final Keyword cCommaKeyword_6_1_2 = (Keyword)cGroup_6_1.eContents().get(2);
		private final Group cGroup_6_2 = (Group)cGroup_6.eContents().get(2);
		private final Assignment cRowidAssignment_6_2_0 = (Assignment)cGroup_6_2.eContents().get(0);
		private final Keyword cRowidRowidKeyword_6_2_0_0 = (Keyword)cRowidAssignment_6_2_0.eContents().get(0);
		private final Keyword cCommaKeyword_6_2_1 = (Keyword)cGroup_6_2.eContents().get(1);
		private final Group cGroup_6_3 = (Group)cGroup_6.eContents().get(3);
		private final Assignment cWithSequenceAssignment_6_3_0 = (Assignment)cGroup_6_3.eContents().get(0);
		private final Keyword cWithSequenceSequenceKeyword_6_3_0_0 = (Keyword)cWithSequenceAssignment_6_3_0.eContents().get(0);
		private final Keyword cCommaKeyword_6_3_1 = (Keyword)cGroup_6_3.eContents().get(1);
		private final Group cGroup_6_4 = (Group)cGroup_6.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_6_4_0 = (Keyword)cGroup_6_4.eContents().get(0);
		private final Assignment cColumnsAssignment_6_4_1 = (Assignment)cGroup_6_4.eContents().get(1);
		private final RuleCall cColumnsColumnRefParserRuleCall_6_4_1_0 = (RuleCall)cColumnsAssignment_6_4_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6_4_2 = (Keyword)cGroup_6_4.eContents().get(2);
		private final Keyword cCommaKeyword_6_4_3 = (Keyword)cGroup_6_4.eContents().get(3);
		private final Assignment cCommitScnAssignment_6_5 = (Assignment)cGroup_6.eContents().get(5);
		private final Keyword cCommitScnCommit_scnKeyword_6_5_0 = (Keyword)cCommitScnAssignment_6_5.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Assignment cPurgeAssignment_7_0 = (Assignment)cGroup_7.eContents().get(0);
		private final Keyword cPurgePurgeKeyword_7_0_0 = (Keyword)cPurgeAssignment_7_0.eContents().get(0);
		private final Group cGroup_7_1 = (Group)cGroup_7.eContents().get(1);
		private final Keyword cImmediateKeyword_7_1_0 = (Keyword)cGroup_7_1.eContents().get(0);
		private final Assignment cSynchronousAssignment_7_1_1 = (Assignment)cGroup_7_1.eContents().get(1);
		private final RuleCall cSynchronousSynchronousTypeEnumRuleCall_7_1_1_0 = (RuleCall)cSynchronousAssignment_7_1_1.eContents().get(0);
		private final Group cGroup_7_2 = (Group)cGroup_7.eContents().get(2);
		private final Keyword cStartKeyword_7_2_0 = (Keyword)cGroup_7_2.eContents().get(0);
		private final Keyword cWithKeyword_7_2_1 = (Keyword)cGroup_7_2.eContents().get(1);
		private final Assignment cStartWithAssignment_7_2_2 = (Assignment)cGroup_7_2.eContents().get(2);
		private final RuleCall cStartWithSTRINGTerminalRuleCall_7_2_2_0 = (RuleCall)cStartWithAssignment_7_2_2.eContents().get(0);
		private final Group cGroup_7_3 = (Group)cGroup_7.eContents().get(3);
		private final Keyword cNextKeyword_7_3_0 = (Keyword)cGroup_7_3.eContents().get(0);
		private final Assignment cNextAssignment_7_3_1 = (Assignment)cGroup_7_3.eContents().get(1);
		private final RuleCall cNextSTRINGTerminalRuleCall_7_3_1_0 = (RuleCall)cNextAssignment_7_3_1.eContents().get(0);
		private final Group cGroup_7_4 = (Group)cGroup_7.eContents().get(4);
		private final Keyword cRepeatKeyword_7_4_0 = (Keyword)cGroup_7_4.eContents().get(0);
		private final Keyword cIntervalKeyword_7_4_1 = (Keyword)cGroup_7_4.eContents().get(1);
		private final Assignment cRepeatIntervalAssignment_7_4_2 = (Assignment)cGroup_7_4.eContents().get(2);
		private final RuleCall cRepeatIntervalINTTerminalRuleCall_7_4_2_0 = (RuleCall)cRepeatIntervalAssignment_7_4_2.eContents().get(0);
		
		//MviewLog:
		//	"materialized" "view" "log" ("tablespace" tablespace=DBNAME)? (parallel=ParallelType parallel_degree=INT?)?
		//	(newValues=NewValuesType "new" "values")? ("with" (primaryKey="primary" "key" ","?)? (rowid="rowid" ","?)?
		//	(withSequence="sequence" ","?)? ("(" columns+=ColumnRef+ ")" ","?)? commitScn="commit_scn"?)? (purge="purge"
		//	("immediate" synchronous=SynchronousType?)? ("start" "with" startWith=STRING)? ("next" next=STRING)? ("repeat"
		//	"interval" repeatInterval=INT)?)?;
		public ParserRule getRule() { return rule; }

		//"materialized" "view" "log" ("tablespace" tablespace=DBNAME)? (parallel=ParallelType parallel_degree=INT?)?
		//(newValues=NewValuesType "new" "values")? ("with" (primaryKey="primary" "key" ","?)? (rowid="rowid" ","?)?
		//(withSequence="sequence" ","?)? ("(" columns+=ColumnRef+ ")" ","?)? commitScn="commit_scn"?)? (purge="purge"
		//("immediate" synchronous=SynchronousType?)? ("start" "with" startWith=STRING)? ("next" next=STRING)? ("repeat"
		//"interval" repeatInterval=INT)?)?
		public Group getGroup() { return cGroup; }

		//"materialized"
		public Keyword getMaterializedKeyword_0() { return cMaterializedKeyword_0; }

		//"view"
		public Keyword getViewKeyword_1() { return cViewKeyword_1; }

		//"log"
		public Keyword getLogKeyword_2() { return cLogKeyword_2; }

		//("tablespace" tablespace=DBNAME)?
		public Group getGroup_3() { return cGroup_3; }

		//"tablespace"
		public Keyword getTablespaceKeyword_3_0() { return cTablespaceKeyword_3_0; }

		//tablespace=DBNAME
		public Assignment getTablespaceAssignment_3_1() { return cTablespaceAssignment_3_1; }

		//DBNAME
		public RuleCall getTablespaceDBNAMETerminalRuleCall_3_1_0() { return cTablespaceDBNAMETerminalRuleCall_3_1_0; }

		//(parallel=ParallelType parallel_degree=INT?)?
		public Group getGroup_4() { return cGroup_4; }

		//parallel=ParallelType
		public Assignment getParallelAssignment_4_0() { return cParallelAssignment_4_0; }

		//ParallelType
		public RuleCall getParallelParallelTypeEnumRuleCall_4_0_0() { return cParallelParallelTypeEnumRuleCall_4_0_0; }

		//parallel_degree=INT?
		public Assignment getParallel_degreeAssignment_4_1() { return cParallel_degreeAssignment_4_1; }

		//INT
		public RuleCall getParallel_degreeINTTerminalRuleCall_4_1_0() { return cParallel_degreeINTTerminalRuleCall_4_1_0; }

		//(newValues=NewValuesType "new" "values")?
		public Group getGroup_5() { return cGroup_5; }

		//newValues=NewValuesType
		public Assignment getNewValuesAssignment_5_0() { return cNewValuesAssignment_5_0; }

		//NewValuesType
		public RuleCall getNewValuesNewValuesTypeEnumRuleCall_5_0_0() { return cNewValuesNewValuesTypeEnumRuleCall_5_0_0; }

		//"new"
		public Keyword getNewKeyword_5_1() { return cNewKeyword_5_1; }

		//"values"
		public Keyword getValuesKeyword_5_2() { return cValuesKeyword_5_2; }

		//("with" (primaryKey="primary" "key" ","?)? (rowid="rowid" ","?)? (withSequence="sequence" ","?)? ("("
		//columns+=ColumnRef+ ")" ","?)? commitScn="commit_scn"?)?
		public Group getGroup_6() { return cGroup_6; }

		//"with"
		public Keyword getWithKeyword_6_0() { return cWithKeyword_6_0; }

		//(primaryKey="primary" "key" ","?)?
		public Group getGroup_6_1() { return cGroup_6_1; }

		//primaryKey="primary"
		public Assignment getPrimaryKeyAssignment_6_1_0() { return cPrimaryKeyAssignment_6_1_0; }

		//"primary"
		public Keyword getPrimaryKeyPrimaryKeyword_6_1_0_0() { return cPrimaryKeyPrimaryKeyword_6_1_0_0; }

		//"key"
		public Keyword getKeyKeyword_6_1_1() { return cKeyKeyword_6_1_1; }

		//","?
		public Keyword getCommaKeyword_6_1_2() { return cCommaKeyword_6_1_2; }

		//(rowid="rowid" ","?)?
		public Group getGroup_6_2() { return cGroup_6_2; }

		//rowid="rowid"
		public Assignment getRowidAssignment_6_2_0() { return cRowidAssignment_6_2_0; }

		//"rowid"
		public Keyword getRowidRowidKeyword_6_2_0_0() { return cRowidRowidKeyword_6_2_0_0; }

		//","?
		public Keyword getCommaKeyword_6_2_1() { return cCommaKeyword_6_2_1; }

		//(withSequence="sequence" ","?)?
		public Group getGroup_6_3() { return cGroup_6_3; }

		//withSequence="sequence"
		public Assignment getWithSequenceAssignment_6_3_0() { return cWithSequenceAssignment_6_3_0; }

		//"sequence"
		public Keyword getWithSequenceSequenceKeyword_6_3_0_0() { return cWithSequenceSequenceKeyword_6_3_0_0; }

		//","?
		public Keyword getCommaKeyword_6_3_1() { return cCommaKeyword_6_3_1; }

		//("(" columns+=ColumnRef+ ")" ","?)?
		public Group getGroup_6_4() { return cGroup_6_4; }

		//"("
		public Keyword getLeftParenthesisKeyword_6_4_0() { return cLeftParenthesisKeyword_6_4_0; }

		//columns+=ColumnRef+
		public Assignment getColumnsAssignment_6_4_1() { return cColumnsAssignment_6_4_1; }

		//ColumnRef
		public RuleCall getColumnsColumnRefParserRuleCall_6_4_1_0() { return cColumnsColumnRefParserRuleCall_6_4_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6_4_2() { return cRightParenthesisKeyword_6_4_2; }

		//","?
		public Keyword getCommaKeyword_6_4_3() { return cCommaKeyword_6_4_3; }

		//commitScn="commit_scn"?
		public Assignment getCommitScnAssignment_6_5() { return cCommitScnAssignment_6_5; }

		//"commit_scn"
		public Keyword getCommitScnCommit_scnKeyword_6_5_0() { return cCommitScnCommit_scnKeyword_6_5_0; }

		//(purge="purge" ("immediate" synchronous=SynchronousType?)? ("start" "with" startWith=STRING)? ("next" next=STRING)?
		//("repeat" "interval" repeatInterval=INT)?)?
		public Group getGroup_7() { return cGroup_7; }

		//purge="purge"
		public Assignment getPurgeAssignment_7_0() { return cPurgeAssignment_7_0; }

		//"purge"
		public Keyword getPurgePurgeKeyword_7_0_0() { return cPurgePurgeKeyword_7_0_0; }

		//("immediate" synchronous=SynchronousType?)?
		public Group getGroup_7_1() { return cGroup_7_1; }

		//"immediate"
		public Keyword getImmediateKeyword_7_1_0() { return cImmediateKeyword_7_1_0; }

		//synchronous=SynchronousType?
		public Assignment getSynchronousAssignment_7_1_1() { return cSynchronousAssignment_7_1_1; }

		//SynchronousType
		public RuleCall getSynchronousSynchronousTypeEnumRuleCall_7_1_1_0() { return cSynchronousSynchronousTypeEnumRuleCall_7_1_1_0; }

		//("start" "with" startWith=STRING)?
		public Group getGroup_7_2() { return cGroup_7_2; }

		//"start"
		public Keyword getStartKeyword_7_2_0() { return cStartKeyword_7_2_0; }

		//"with"
		public Keyword getWithKeyword_7_2_1() { return cWithKeyword_7_2_1; }

		//startWith=STRING
		public Assignment getStartWithAssignment_7_2_2() { return cStartWithAssignment_7_2_2; }

		//STRING
		public RuleCall getStartWithSTRINGTerminalRuleCall_7_2_2_0() { return cStartWithSTRINGTerminalRuleCall_7_2_2_0; }

		//("next" next=STRING)?
		public Group getGroup_7_3() { return cGroup_7_3; }

		//"next"
		public Keyword getNextKeyword_7_3_0() { return cNextKeyword_7_3_0; }

		//next=STRING
		public Assignment getNextAssignment_7_3_1() { return cNextAssignment_7_3_1; }

		//STRING
		public RuleCall getNextSTRINGTerminalRuleCall_7_3_1_0() { return cNextSTRINGTerminalRuleCall_7_3_1_0; }

		//("repeat" "interval" repeatInterval=INT)?
		public Group getGroup_7_4() { return cGroup_7_4; }

		//"repeat"
		public Keyword getRepeatKeyword_7_4_0() { return cRepeatKeyword_7_4_0; }

		//"interval"
		public Keyword getIntervalKeyword_7_4_1() { return cIntervalKeyword_7_4_1; }

		//repeatInterval=INT
		public Assignment getRepeatIntervalAssignment_7_4_2() { return cRepeatIntervalAssignment_7_4_2; }

		//INT
		public RuleCall getRepeatIntervalINTTerminalRuleCall_7_4_2_0() { return cRepeatIntervalINTTerminalRuleCall_7_4_2_0; }
	}

	public class CommentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Comment");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCommentKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cOnKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cComment_objectAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cComment_objectCommentObjectTypeEnumRuleCall_2_0 = (RuleCall)cComment_objectAssignment_2.eContents().get(0);
		private final Assignment cTable_nameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cTable_nameDBNAMETerminalRuleCall_3_0 = (RuleCall)cTable_nameAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cFullStopKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cColumn_nameAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cColumn_nameDBNAMETerminalRuleCall_4_1_0 = (RuleCall)cColumn_nameAssignment_4_1.eContents().get(0);
		private final Keyword cIsKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cCommentAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cCommentSTRINGTerminalRuleCall_6_0 = (RuleCall)cCommentAssignment_6.eContents().get(0);
		private final Keyword cSemicolonKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//Comment:
		//	"comment" "on" comment_object=CommentObjectType table_name=DBNAME ("." column_name=DBNAME)? "is" comment=STRING ";";
		public ParserRule getRule() { return rule; }

		//"comment" "on" comment_object=CommentObjectType table_name=DBNAME ("." column_name=DBNAME)? "is" comment=STRING ";"
		public Group getGroup() { return cGroup; }

		//"comment"
		public Keyword getCommentKeyword_0() { return cCommentKeyword_0; }

		//"on"
		public Keyword getOnKeyword_1() { return cOnKeyword_1; }

		//comment_object=CommentObjectType
		public Assignment getComment_objectAssignment_2() { return cComment_objectAssignment_2; }

		//CommentObjectType
		public RuleCall getComment_objectCommentObjectTypeEnumRuleCall_2_0() { return cComment_objectCommentObjectTypeEnumRuleCall_2_0; }

		//table_name=DBNAME
		public Assignment getTable_nameAssignment_3() { return cTable_nameAssignment_3; }

		//DBNAME
		public RuleCall getTable_nameDBNAMETerminalRuleCall_3_0() { return cTable_nameDBNAMETerminalRuleCall_3_0; }

		//("." column_name=DBNAME)?
		public Group getGroup_4() { return cGroup_4; }

		//"."
		public Keyword getFullStopKeyword_4_0() { return cFullStopKeyword_4_0; }

		//column_name=DBNAME
		public Assignment getColumn_nameAssignment_4_1() { return cColumn_nameAssignment_4_1; }

		//DBNAME
		public RuleCall getColumn_nameDBNAMETerminalRuleCall_4_1_0() { return cColumn_nameDBNAMETerminalRuleCall_4_1_0; }

		//"is"
		public Keyword getIsKeyword_5() { return cIsKeyword_5; }

		//comment=STRING
		public Assignment getCommentAssignment_6() { return cCommentAssignment_6; }

		//STRING
		public RuleCall getCommentSTRINGTerminalRuleCall_6_0() { return cCommentSTRINGTerminalRuleCall_6_0; }

		//";"
		public Keyword getSemicolonKeyword_7() { return cSemicolonKeyword_7; }
	}

	public class InlineCommentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InlineComment");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCommentKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cOnKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cComment_objectAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cComment_objectCommentObjectTypeEnumRuleCall_2_0 = (RuleCall)cComment_objectAssignment_2.eContents().get(0);
		private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
		private final Assignment cColumn_nameAssignment_3_0 = (Assignment)cAlternatives_3.eContents().get(0);
		private final RuleCall cColumn_nameDBNAMETerminalRuleCall_3_0_0 = (RuleCall)cColumn_nameAssignment_3_0.eContents().get(0);
		private final Assignment cColumn_name_stringAssignment_3_1 = (Assignment)cAlternatives_3.eContents().get(1);
		private final RuleCall cColumn_name_stringSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cColumn_name_stringAssignment_3_1.eContents().get(0);
		private final Keyword cIsKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCommentAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cCommentSTRINGTerminalRuleCall_5_0 = (RuleCall)cCommentAssignment_5.eContents().get(0);
		private final Keyword cSemicolonKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//InlineComment:
		//	"comment" "on" comment_object=CommentObjectType (column_name=DBNAME | column_name_string=STRING)? "is" comment=STRING
		//	";";
		public ParserRule getRule() { return rule; }

		//"comment" "on" comment_object=CommentObjectType (column_name=DBNAME | column_name_string=STRING)? "is" comment=STRING
		//";"
		public Group getGroup() { return cGroup; }

		//"comment"
		public Keyword getCommentKeyword_0() { return cCommentKeyword_0; }

		//"on"
		public Keyword getOnKeyword_1() { return cOnKeyword_1; }

		//comment_object=CommentObjectType
		public Assignment getComment_objectAssignment_2() { return cComment_objectAssignment_2; }

		//CommentObjectType
		public RuleCall getComment_objectCommentObjectTypeEnumRuleCall_2_0() { return cComment_objectCommentObjectTypeEnumRuleCall_2_0; }

		//(column_name=DBNAME | column_name_string=STRING)?
		public Alternatives getAlternatives_3() { return cAlternatives_3; }

		//column_name=DBNAME
		public Assignment getColumn_nameAssignment_3_0() { return cColumn_nameAssignment_3_0; }

		//DBNAME
		public RuleCall getColumn_nameDBNAMETerminalRuleCall_3_0_0() { return cColumn_nameDBNAMETerminalRuleCall_3_0_0; }

		//column_name_string=STRING
		public Assignment getColumn_name_stringAssignment_3_1() { return cColumn_name_stringAssignment_3_1; }

		//STRING
		public RuleCall getColumn_name_stringSTRINGTerminalRuleCall_3_1_0() { return cColumn_name_stringSTRINGTerminalRuleCall_3_1_0; }

		//"is"
		public Keyword getIsKeyword_4() { return cIsKeyword_4; }

		//comment=STRING
		public Assignment getCommentAssignment_5() { return cCommentAssignment_5; }

		//STRING
		public RuleCall getCommentSTRINGTerminalRuleCall_5_0() { return cCommentSTRINGTerminalRuleCall_5_0; }

		//";"
		public Keyword getSemicolonKeyword_6() { return cSemicolonKeyword_6; }
	}

	public class DBNAME_WITH_SCHEMAElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DBNAME_WITH_SCHEMA");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cDBNAMETerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final RuleCall cDBNAMETerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		
		//DBNAME_WITH_SCHEMA:
		//	DBNAME ("." DBNAME)?;
		public ParserRule getRule() { return rule; }

		//DBNAME ("." DBNAME)?
		public Group getGroup() { return cGroup; }

		//DBNAME
		public RuleCall getDBNAMETerminalRuleCall_0() { return cDBNAMETerminalRuleCall_0; }

		//("." DBNAME)?
		public Group getGroup_1() { return cGroup_1; }

		//"."
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//DBNAME
		public RuleCall getDBNAMETerminalRuleCall_1_1() { return cDBNAMETerminalRuleCall_1_1; }
	}

	public class NULLABLE_INTElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NULLABLE_INT");
		private final RuleCall cINTTerminalRuleCall = (RuleCall)rule.eContents().get(1);
		
		//NULLABLE_INT returns ecore::EIntegerObject:
		//	INT;
		public ParserRule getRule() { return rule; }

		//INT
		public RuleCall getINTTerminalRuleCall() { return cINTTerminalRuleCall; }
	}

	public class SIGNED_BIGINTElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SIGNED_BIGINT");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
		
		//SIGNED_BIGINT returns ecore::EBigInteger:
		//	"-"? INT;
		public ParserRule getRule() { return rule; }

		//"-"? INT
		public Group getGroup() { return cGroup; }

		//"-"?
		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }

		//INT
		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
	}

	public class BIGINTElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BIGINT");
		private final RuleCall cINTTerminalRuleCall = (RuleCall)rule.eContents().get(1);
		
		//BIGINT returns ecore::EBigInteger:
		//	INT;
		public ParserRule getRule() { return rule; }

		//INT
		public RuleCall getINTTerminalRuleCall() { return cINTTerminalRuleCall; }
	}

	public class DomainColumnElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DomainColumn");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cAddKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColumnKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cAppend_lastAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cAppend_lastAppend_lastKeyword_2_0 = (Keyword)cAppend_lastAssignment_2.eContents().get(0);
		private final Keyword cColumnNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cColumnNameRulesAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cColumnNameRulesGenNameRuleParserRuleCall_5_0 = (RuleCall)cColumnNameRulesAssignment_5.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cLeftParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Assignment cColumnAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cColumnColumnParserRuleCall_8_0 = (RuleCall)cColumnAssignment_8.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Keyword cCommaKeyword_10 = (Keyword)cGroup.eContents().get(10);
		
		//DomainColumn:
		//	"add" "column" append_last?="append_last"? "column-name" "(" columnNameRules+=GenNameRule* ")" "(" column=Column ")"
		//	","?;
		public ParserRule getRule() { return rule; }

		//"add" "column" append_last?="append_last"? "column-name" "(" columnNameRules+=GenNameRule* ")" "(" column=Column ")"
		//","?
		public Group getGroup() { return cGroup; }

		//"add"
		public Keyword getAddKeyword_0() { return cAddKeyword_0; }

		//"column"
		public Keyword getColumnKeyword_1() { return cColumnKeyword_1; }

		//append_last?="append_last"?
		public Assignment getAppend_lastAssignment_2() { return cAppend_lastAssignment_2; }

		//"append_last"
		public Keyword getAppend_lastAppend_lastKeyword_2_0() { return cAppend_lastAppend_lastKeyword_2_0; }

		//"column-name"
		public Keyword getColumnNameKeyword_3() { return cColumnNameKeyword_3; }

		//"("
		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }

		//columnNameRules+=GenNameRule*
		public Assignment getColumnNameRulesAssignment_5() { return cColumnNameRulesAssignment_5; }

		//GenNameRule
		public RuleCall getColumnNameRulesGenNameRuleParserRuleCall_5_0() { return cColumnNameRulesGenNameRuleParserRuleCall_5_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }

		//"("
		public Keyword getLeftParenthesisKeyword_7() { return cLeftParenthesisKeyword_7; }

		//column=Column
		public Assignment getColumnAssignment_8() { return cColumnAssignment_8; }

		//Column
		public RuleCall getColumnColumnParserRuleCall_8_0() { return cColumnColumnParserRuleCall_8_0; }

		//")"
		public Keyword getRightParenthesisKeyword_9() { return cRightParenthesisKeyword_9; }

		//","?
		public Keyword getCommaKeyword_10() { return cCommaKeyword_10; }
	}

	public class HistoryTableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HistoryTable");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cAddKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cHistoryTableKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cTableNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTableNameRulesAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTableNameRulesGenNameRuleParserRuleCall_5_0 = (RuleCall)cTableNameRulesAssignment_5.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cAliasNameKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cLeftParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cAliasNameRulesAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cAliasNameRulesGenNameRuleParserRuleCall_9_0 = (RuleCall)cAliasNameRulesAssignment_9.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_10 = (Keyword)cGroup.eContents().get(10);
		private final Keyword cPrimaryKeyModeKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Alternatives cAlternatives_12 = (Alternatives)cGroup.eContents().get(12);
		private final Group cGroup_12_0 = (Group)cAlternatives_12.eContents().get(0);
		private final Keyword cAppendKeyword_12_0_0 = (Keyword)cGroup_12_0.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_12_0_1 = (Keyword)cGroup_12_0.eContents().get(1);
		private final Assignment cAppendToPkDomainAssignment_12_0_2 = (Assignment)cGroup_12_0.eContents().get(2);
		private final RuleCall cAppendToPkDomainDBNAMETerminalRuleCall_12_0_2_0 = (RuleCall)cAppendToPkDomainAssignment_12_0_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_12_0_3 = (Keyword)cGroup_12_0.eContents().get(3);
		private final Keyword cRemoveKeyword_12_1 = (Keyword)cAlternatives_12.eContents().get(1);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cDomainKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Assignment cDomainAssignment_13_1 = (Assignment)cGroup_13.eContents().get(1);
		private final RuleCall cDomainDBNAMETerminalRuleCall_13_1_0 = (RuleCall)cDomainAssignment_13_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_14 = (Keyword)cGroup.eContents().get(14);
		
		//HistoryTable:
		//	"add" "history-table" "(" "table-name" "(" tableNameRules+=GenNameRule* ")" "alias-name" "("
		//	aliasNameRules+=GenNameRule* ")" "primary-key-mode" ("append" "(" appendToPkDomain=DBNAME ")" | "remove") ("domain"
		//	domain=DBNAME)? ")";
		public ParserRule getRule() { return rule; }

		//"add" "history-table" "(" "table-name" "(" tableNameRules+=GenNameRule* ")" "alias-name" "("
		//aliasNameRules+=GenNameRule* ")" "primary-key-mode" ("append" "(" appendToPkDomain=DBNAME ")" | "remove") ("domain"
		//domain=DBNAME)? ")"
		public Group getGroup() { return cGroup; }

		//"add"
		public Keyword getAddKeyword_0() { return cAddKeyword_0; }

		//"history-table"
		public Keyword getHistoryTableKeyword_1() { return cHistoryTableKeyword_1; }

		//"("
		public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }

		//"table-name"
		public Keyword getTableNameKeyword_3() { return cTableNameKeyword_3; }

		//"("
		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }

		//tableNameRules+=GenNameRule*
		public Assignment getTableNameRulesAssignment_5() { return cTableNameRulesAssignment_5; }

		//GenNameRule
		public RuleCall getTableNameRulesGenNameRuleParserRuleCall_5_0() { return cTableNameRulesGenNameRuleParserRuleCall_5_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }

		//"alias-name"
		public Keyword getAliasNameKeyword_7() { return cAliasNameKeyword_7; }

		//"("
		public Keyword getLeftParenthesisKeyword_8() { return cLeftParenthesisKeyword_8; }

		//aliasNameRules+=GenNameRule*
		public Assignment getAliasNameRulesAssignment_9() { return cAliasNameRulesAssignment_9; }

		//GenNameRule
		public RuleCall getAliasNameRulesGenNameRuleParserRuleCall_9_0() { return cAliasNameRulesGenNameRuleParserRuleCall_9_0; }

		//")"
		public Keyword getRightParenthesisKeyword_10() { return cRightParenthesisKeyword_10; }

		//"primary-key-mode"
		public Keyword getPrimaryKeyModeKeyword_11() { return cPrimaryKeyModeKeyword_11; }

		//"append" "(" appendToPkDomain=DBNAME ")" | "remove"
		public Alternatives getAlternatives_12() { return cAlternatives_12; }

		//"append" "(" appendToPkDomain=DBNAME ")"
		public Group getGroup_12_0() { return cGroup_12_0; }

		//"append"
		public Keyword getAppendKeyword_12_0_0() { return cAppendKeyword_12_0_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_12_0_1() { return cLeftParenthesisKeyword_12_0_1; }

		//appendToPkDomain=DBNAME
		public Assignment getAppendToPkDomainAssignment_12_0_2() { return cAppendToPkDomainAssignment_12_0_2; }

		//DBNAME
		public RuleCall getAppendToPkDomainDBNAMETerminalRuleCall_12_0_2_0() { return cAppendToPkDomainDBNAMETerminalRuleCall_12_0_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_12_0_3() { return cRightParenthesisKeyword_12_0_3; }

		//"remove"
		public Keyword getRemoveKeyword_12_1() { return cRemoveKeyword_12_1; }

		//("domain" domain=DBNAME)?
		public Group getGroup_13() { return cGroup_13; }

		//"domain"
		public Keyword getDomainKeyword_13_0() { return cDomainKeyword_13_0; }

		//domain=DBNAME
		public Assignment getDomainAssignment_13_1() { return cDomainAssignment_13_1; }

		//DBNAME
		public RuleCall getDomainDBNAMETerminalRuleCall_13_1_0() { return cDomainDBNAMETerminalRuleCall_13_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_14() { return cRightParenthesisKeyword_14; }
	}

	public class DomainElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Domain");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDefineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cTableKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cDomainKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameDBNAMETerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cExtendsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cExtendsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cExtendsDBNAMETerminalRuleCall_4_1_0 = (RuleCall)cExtendsAssignment_4_1.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cColumnsAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cColumnsDomainColumnParserRuleCall_6_0 = (RuleCall)cColumnsAssignment_6.eContents().get(0);
		private final Assignment cHistoryTableAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cHistoryTableHistoryTableParserRuleCall_7_0 = (RuleCall)cHistoryTableAssignment_7.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cSemicolonKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//Domain:
		//	"define" "table" "domain" name=DBNAME ("extends" extends=DBNAME)? "(" columns+=DomainColumn*
		//	historyTable=HistoryTable? ")" ";";
		public ParserRule getRule() { return rule; }

		//"define" "table" "domain" name=DBNAME ("extends" extends=DBNAME)? "(" columns+=DomainColumn* historyTable=HistoryTable?
		//")" ";"
		public Group getGroup() { return cGroup; }

		//"define"
		public Keyword getDefineKeyword_0() { return cDefineKeyword_0; }

		//"table"
		public Keyword getTableKeyword_1() { return cTableKeyword_1; }

		//"domain"
		public Keyword getDomainKeyword_2() { return cDomainKeyword_2; }

		//name=DBNAME
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_3_0() { return cNameDBNAMETerminalRuleCall_3_0; }

		//("extends" extends=DBNAME)?
		public Group getGroup_4() { return cGroup_4; }

		//"extends"
		public Keyword getExtendsKeyword_4_0() { return cExtendsKeyword_4_0; }

		//extends=DBNAME
		public Assignment getExtendsAssignment_4_1() { return cExtendsAssignment_4_1; }

		//DBNAME
		public RuleCall getExtendsDBNAMETerminalRuleCall_4_1_0() { return cExtendsDBNAMETerminalRuleCall_4_1_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_5() { return cLeftParenthesisKeyword_5; }

		//columns+=DomainColumn*
		public Assignment getColumnsAssignment_6() { return cColumnsAssignment_6; }

		//DomainColumn
		public RuleCall getColumnsDomainColumnParserRuleCall_6_0() { return cColumnsDomainColumnParserRuleCall_6_0; }

		//historyTable=HistoryTable?
		public Assignment getHistoryTableAssignment_7() { return cHistoryTableAssignment_7; }

		//HistoryTable
		public RuleCall getHistoryTableHistoryTableParserRuleCall_7_0() { return cHistoryTableHistoryTableParserRuleCall_7_0; }

		//")"
		public Keyword getRightParenthesisKeyword_8() { return cRightParenthesisKeyword_8; }

		//";"
		public Keyword getSemicolonKeyword_9() { return cSemicolonKeyword_9; }
	}

	public class GenNameRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GenNameRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Assignment cConstant_nameAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
		private final RuleCall cConstant_nameSTRINGTerminalRuleCall_0_0_0 = (RuleCall)cConstant_nameAssignment_0_0.eContents().get(0);
		private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
		private final Assignment cConstant_partAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
		private final RuleCall cConstant_partGenNameRulePartEnumRuleCall_0_1_0_0 = (RuleCall)cConstant_partAssignment_0_1_0.eContents().get(0);
		private final Group cGroup_0_1_1 = (Group)cGroup_0_1.eContents().get(1);
		private final Keyword cRegexpKeyword_0_1_1_0 = (Keyword)cGroup_0_1_1.eContents().get(0);
		private final Assignment cRegexpAssignment_0_1_1_1 = (Assignment)cGroup_0_1_1.eContents().get(1);
		private final RuleCall cRegexpSTRINGTerminalRuleCall_0_1_1_1_0 = (RuleCall)cRegexpAssignment_0_1_1_1.eContents().get(0);
		private final Group cGroup_0_1_1_2 = (Group)cGroup_0_1_1.eContents().get(2);
		private final Keyword cReplaceKeyword_0_1_1_2_0 = (Keyword)cGroup_0_1_1_2.eContents().get(0);
		private final Assignment cReplaceAssignment_0_1_1_2_1 = (Assignment)cGroup_0_1_1_2.eContents().get(1);
		private final RuleCall cReplaceSTRINGTerminalRuleCall_0_1_1_2_1_0 = (RuleCall)cReplaceAssignment_0_1_1_2_1.eContents().get(0);
		private final Keyword cVerticalLineVerticalLineKeyword_1 = (Keyword)cGroup.eContents().get(1);
		
		//GenNameRule:
		//	(constant_name=STRING | constant_part=GenNameRulePart ("regexp" regexp=STRING ("replace" replace=STRING)?)?) "||"?;
		public ParserRule getRule() { return rule; }

		//(constant_name=STRING | constant_part=GenNameRulePart ("regexp" regexp=STRING ("replace" replace=STRING)?)?) "||"?
		public Group getGroup() { return cGroup; }

		//constant_name=STRING | constant_part=GenNameRulePart ("regexp" regexp=STRING ("replace" replace=STRING)?)?
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//constant_name=STRING
		public Assignment getConstant_nameAssignment_0_0() { return cConstant_nameAssignment_0_0; }

		//STRING
		public RuleCall getConstant_nameSTRINGTerminalRuleCall_0_0_0() { return cConstant_nameSTRINGTerminalRuleCall_0_0_0; }

		//constant_part=GenNameRulePart ("regexp" regexp=STRING ("replace" replace=STRING)?)?
		public Group getGroup_0_1() { return cGroup_0_1; }

		//constant_part=GenNameRulePart
		public Assignment getConstant_partAssignment_0_1_0() { return cConstant_partAssignment_0_1_0; }

		//GenNameRulePart
		public RuleCall getConstant_partGenNameRulePartEnumRuleCall_0_1_0_0() { return cConstant_partGenNameRulePartEnumRuleCall_0_1_0_0; }

		//("regexp" regexp=STRING ("replace" replace=STRING)?)?
		public Group getGroup_0_1_1() { return cGroup_0_1_1; }

		//"regexp"
		public Keyword getRegexpKeyword_0_1_1_0() { return cRegexpKeyword_0_1_1_0; }

		//regexp=STRING
		public Assignment getRegexpAssignment_0_1_1_1() { return cRegexpAssignment_0_1_1_1; }

		//STRING
		public RuleCall getRegexpSTRINGTerminalRuleCall_0_1_1_1_0() { return cRegexpSTRINGTerminalRuleCall_0_1_1_1_0; }

		//("replace" replace=STRING)?
		public Group getGroup_0_1_1_2() { return cGroup_0_1_1_2; }

		//"replace"
		public Keyword getReplaceKeyword_0_1_1_2_0() { return cReplaceKeyword_0_1_1_2_0; }

		//replace=STRING
		public Assignment getReplaceAssignment_0_1_1_2_1() { return cReplaceAssignment_0_1_1_2_1; }

		//STRING
		public RuleCall getReplaceSTRINGTerminalRuleCall_0_1_1_2_1_0() { return cReplaceSTRINGTerminalRuleCall_0_1_1_2_1_0; }

		//"||"?
		public Keyword getVerticalLineVerticalLineKeyword_1() { return cVerticalLineVerticalLineKeyword_1; }
	}

	public class GeneratePkElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GeneratePk");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGeneratePrimaryKeyKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cConstraintNameKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cConstraintNameRulesAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cConstraintNameRulesGenNameRuleParserRuleCall_4_0 = (RuleCall)cConstraintNameRulesAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cSequenceNameKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cSequenceNameRulesAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final RuleCall cSequenceNameRulesGenNameRuleParserRuleCall_6_2_0 = (RuleCall)cSequenceNameRulesAssignment_6_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6_3 = (Keyword)cGroup_6.eContents().get(3);
		private final Keyword cRightParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//GeneratePk:
		//	"generate-primary-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ("sequence-name" "("
		//	sequenceNameRules+=GenNameRule* ")")? ")";
		public ParserRule getRule() { return rule; }

		//"generate-primary-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ("sequence-name" "("
		//sequenceNameRules+=GenNameRule* ")")? ")"
		public Group getGroup() { return cGroup; }

		//"generate-primary-key"
		public Keyword getGeneratePrimaryKeyKeyword_0() { return cGeneratePrimaryKeyKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//"constraint-name"
		public Keyword getConstraintNameKeyword_2() { return cConstraintNameKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//constraintNameRules+=GenNameRule*
		public Assignment getConstraintNameRulesAssignment_4() { return cConstraintNameRulesAssignment_4; }

		//GenNameRule
		public RuleCall getConstraintNameRulesGenNameRuleParserRuleCall_4_0() { return cConstraintNameRulesGenNameRuleParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//("sequence-name" "(" sequenceNameRules+=GenNameRule* ")")?
		public Group getGroup_6() { return cGroup_6; }

		//"sequence-name"
		public Keyword getSequenceNameKeyword_6_0() { return cSequenceNameKeyword_6_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_6_1() { return cLeftParenthesisKeyword_6_1; }

		//sequenceNameRules+=GenNameRule*
		public Assignment getSequenceNameRulesAssignment_6_2() { return cSequenceNameRulesAssignment_6_2; }

		//GenNameRule
		public RuleCall getSequenceNameRulesGenNameRuleParserRuleCall_6_2_0() { return cSequenceNameRulesGenNameRuleParserRuleCall_6_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6_3() { return cRightParenthesisKeyword_6_3; }

		//")"
		public Keyword getRightParenthesisKeyword_7() { return cRightParenthesisKeyword_7; }
	}

	public class GenerateUkElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GenerateUk");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGenerateUniqueKeyKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cConstraintNameKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cConstraintNameRulesAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cConstraintNameRulesGenNameRuleParserRuleCall_4_0 = (RuleCall)cConstraintNameRulesAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//GenerateUk:
		//	"generate-unique-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ")";
		public ParserRule getRule() { return rule; }

		//"generate-unique-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ")"
		public Group getGroup() { return cGroup; }

		//"generate-unique-key"
		public Keyword getGenerateUniqueKeyKeyword_0() { return cGenerateUniqueKeyKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//"constraint-name"
		public Keyword getConstraintNameKeyword_2() { return cConstraintNameKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//constraintNameRules+=GenNameRule*
		public Assignment getConstraintNameRulesAssignment_4() { return cConstraintNameRulesAssignment_4; }

		//GenNameRule
		public RuleCall getConstraintNameRulesGenNameRuleParserRuleCall_4_0() { return cConstraintNameRulesGenNameRuleParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
	}

	public class GenerateIndexElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GenerateIndex");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGenerateIndexKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cIndexNameKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cIndexNameRulesAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cIndexNameRulesGenNameRuleParserRuleCall_4_0 = (RuleCall)cIndexNameRulesAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//GenerateIndex:
		//	"generate-index" "(" "index-name" "(" indexNameRules+=GenNameRule* ")" ")";
		public ParserRule getRule() { return rule; }

		//"generate-index" "(" "index-name" "(" indexNameRules+=GenNameRule* ")" ")"
		public Group getGroup() { return cGroup; }

		//"generate-index"
		public Keyword getGenerateIndexKeyword_0() { return cGenerateIndexKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//"index-name"
		public Keyword getIndexNameKeyword_2() { return cIndexNameKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//indexNameRules+=GenNameRule*
		public Assignment getIndexNameRulesAssignment_4() { return cIndexNameRulesAssignment_4; }

		//GenNameRule
		public RuleCall getIndexNameRulesGenNameRuleParserRuleCall_4_0() { return cIndexNameRulesGenNameRuleParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
	}

	public class GenerateCcElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GenerateCc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGenerateCheckConstraintKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cConstraintNameKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cConstraintNameRulesAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cConstraintNameRulesGenNameRuleParserRuleCall_4_0 = (RuleCall)cConstraintNameRulesAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cCheckRuleKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cLeftParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Assignment cCheckRuleNameRulesAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cCheckRuleNameRulesGenNameRuleParserRuleCall_8_0 = (RuleCall)cCheckRuleNameRulesAssignment_8.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Keyword cRightParenthesisKeyword_10 = (Keyword)cGroup.eContents().get(10);
		
		//GenerateCc:
		//	"generate-check-constraint" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" "check-rule" "("
		//	checkRuleNameRules+=GenNameRule* ")" ")";
		public ParserRule getRule() { return rule; }

		//"generate-check-constraint" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" "check-rule" "("
		//checkRuleNameRules+=GenNameRule* ")" ")"
		public Group getGroup() { return cGroup; }

		//"generate-check-constraint"
		public Keyword getGenerateCheckConstraintKeyword_0() { return cGenerateCheckConstraintKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//"constraint-name"
		public Keyword getConstraintNameKeyword_2() { return cConstraintNameKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//constraintNameRules+=GenNameRule*
		public Assignment getConstraintNameRulesAssignment_4() { return cConstraintNameRulesAssignment_4; }

		//GenNameRule
		public RuleCall getConstraintNameRulesGenNameRuleParserRuleCall_4_0() { return cConstraintNameRulesGenNameRuleParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//"check-rule"
		public Keyword getCheckRuleKeyword_6() { return cCheckRuleKeyword_6; }

		//"("
		public Keyword getLeftParenthesisKeyword_7() { return cLeftParenthesisKeyword_7; }

		//checkRuleNameRules+=GenNameRule*
		public Assignment getCheckRuleNameRulesAssignment_8() { return cCheckRuleNameRulesAssignment_8; }

		//GenNameRule
		public RuleCall getCheckRuleNameRulesGenNameRuleParserRuleCall_8_0() { return cCheckRuleNameRulesGenNameRuleParserRuleCall_8_0; }

		//")"
		public Keyword getRightParenthesisKeyword_9() { return cRightParenthesisKeyword_9; }

		//")"
		public Keyword getRightParenthesisKeyword_10() { return cRightParenthesisKeyword_10; }
	}

	public class GenerateFkElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GenerateFk");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGenerateForeignKeyKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cConstraintNameKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cConstraintNameRulesAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cConstraintNameRulesGenNameRuleParserRuleCall_4_0 = (RuleCall)cConstraintNameRulesAssignment_4.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cPkColumnNameKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cPkColumnNameRulesAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final RuleCall cPkColumnNameRulesGenNameRuleParserRuleCall_6_2_0 = (RuleCall)cPkColumnNameRulesAssignment_6_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6_3 = (Keyword)cGroup_6.eContents().get(3);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cAliasNameKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Assignment cAliasNameRulesAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
		private final RuleCall cAliasNameRulesGenNameRuleParserRuleCall_7_2_0 = (RuleCall)cAliasNameRulesAssignment_7_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7_3 = (Keyword)cGroup_7.eContents().get(3);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cTableNameKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
		private final Assignment cTableNameRulesAssignment_8_2 = (Assignment)cGroup_8.eContents().get(2);
		private final RuleCall cTableNameRulesGenNameRuleParserRuleCall_8_2_0 = (RuleCall)cTableNameRulesAssignment_8_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_8_3 = (Keyword)cGroup_8.eContents().get(3);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cOnKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Keyword cDeleteKeyword_9_1 = (Keyword)cGroup_9.eContents().get(1);
		private final Assignment cDelete_ruleAssignment_9_2 = (Assignment)cGroup_9.eContents().get(2);
		private final RuleCall cDelete_ruleFkDeleteRuleTypeEnumRuleCall_9_2_0 = (RuleCall)cDelete_ruleAssignment_9_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_10 = (Keyword)cGroup.eContents().get(10);
		
		//GenerateFk:
		//	"generate-foreign-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ("pk-column-name" "("
		//	pkColumnNameRules+=GenNameRule* ")")? ("alias-name" "(" aliasNameRules+=GenNameRule* ")")? ("table-name" "("
		//	tableNameRules+=GenNameRule* ")")? ("on" "delete" delete_rule=FkDeleteRuleType)? ")";
		public ParserRule getRule() { return rule; }

		//"generate-foreign-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ("pk-column-name" "("
		//pkColumnNameRules+=GenNameRule* ")")? ("alias-name" "(" aliasNameRules+=GenNameRule* ")")? ("table-name" "("
		//tableNameRules+=GenNameRule* ")")? ("on" "delete" delete_rule=FkDeleteRuleType)? ")"
		public Group getGroup() { return cGroup; }

		//"generate-foreign-key"
		public Keyword getGenerateForeignKeyKeyword_0() { return cGenerateForeignKeyKeyword_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//"constraint-name"
		public Keyword getConstraintNameKeyword_2() { return cConstraintNameKeyword_2; }

		//"("
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }

		//constraintNameRules+=GenNameRule*
		public Assignment getConstraintNameRulesAssignment_4() { return cConstraintNameRulesAssignment_4; }

		//GenNameRule
		public RuleCall getConstraintNameRulesGenNameRuleParserRuleCall_4_0() { return cConstraintNameRulesGenNameRuleParserRuleCall_4_0; }

		//")"
		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }

		//("pk-column-name" "(" pkColumnNameRules+=GenNameRule* ")")?
		public Group getGroup_6() { return cGroup_6; }

		//"pk-column-name"
		public Keyword getPkColumnNameKeyword_6_0() { return cPkColumnNameKeyword_6_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_6_1() { return cLeftParenthesisKeyword_6_1; }

		//pkColumnNameRules+=GenNameRule*
		public Assignment getPkColumnNameRulesAssignment_6_2() { return cPkColumnNameRulesAssignment_6_2; }

		//GenNameRule
		public RuleCall getPkColumnNameRulesGenNameRuleParserRuleCall_6_2_0() { return cPkColumnNameRulesGenNameRuleParserRuleCall_6_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6_3() { return cRightParenthesisKeyword_6_3; }

		//("alias-name" "(" aliasNameRules+=GenNameRule* ")")?
		public Group getGroup_7() { return cGroup_7; }

		//"alias-name"
		public Keyword getAliasNameKeyword_7_0() { return cAliasNameKeyword_7_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_7_1() { return cLeftParenthesisKeyword_7_1; }

		//aliasNameRules+=GenNameRule*
		public Assignment getAliasNameRulesAssignment_7_2() { return cAliasNameRulesAssignment_7_2; }

		//GenNameRule
		public RuleCall getAliasNameRulesGenNameRuleParserRuleCall_7_2_0() { return cAliasNameRulesGenNameRuleParserRuleCall_7_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_7_3() { return cRightParenthesisKeyword_7_3; }

		//("table-name" "(" tableNameRules+=GenNameRule* ")")?
		public Group getGroup_8() { return cGroup_8; }

		//"table-name"
		public Keyword getTableNameKeyword_8_0() { return cTableNameKeyword_8_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_8_1() { return cLeftParenthesisKeyword_8_1; }

		//tableNameRules+=GenNameRule*
		public Assignment getTableNameRulesAssignment_8_2() { return cTableNameRulesAssignment_8_2; }

		//GenNameRule
		public RuleCall getTableNameRulesGenNameRuleParserRuleCall_8_2_0() { return cTableNameRulesGenNameRuleParserRuleCall_8_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_8_3() { return cRightParenthesisKeyword_8_3; }

		//("on" "delete" delete_rule=FkDeleteRuleType)?
		public Group getGroup_9() { return cGroup_9; }

		//"on"
		public Keyword getOnKeyword_9_0() { return cOnKeyword_9_0; }

		//"delete"
		public Keyword getDeleteKeyword_9_1() { return cDeleteKeyword_9_1; }

		//delete_rule=FkDeleteRuleType
		public Assignment getDelete_ruleAssignment_9_2() { return cDelete_ruleAssignment_9_2; }

		//FkDeleteRuleType
		public RuleCall getDelete_ruleFkDeleteRuleTypeEnumRuleCall_9_2_0() { return cDelete_ruleFkDeleteRuleTypeEnumRuleCall_9_2_0; }

		//")"
		public Keyword getRightParenthesisKeyword_10() { return cRightParenthesisKeyword_10; }
	}

	public class ColumnDomainElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ColumnDomain");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDefineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColumnKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cDomainKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameDBNAMETerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		private final Assignment cGeneratePkAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cGeneratePkGeneratePkParserRuleCall_4_0 = (RuleCall)cGeneratePkAssignment_4.eContents().get(0);
		private final Assignment cGenerateUkAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cGenerateUkGenerateUkParserRuleCall_5_0 = (RuleCall)cGenerateUkAssignment_5.eContents().get(0);
		private final Assignment cGenerateIndexAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cGenerateIndexGenerateIndexParserRuleCall_6_0 = (RuleCall)cGenerateIndexAssignment_6.eContents().get(0);
		private final Assignment cGenerateCcAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cGenerateCcGenerateCcParserRuleCall_7_0 = (RuleCall)cGenerateCcAssignment_7.eContents().get(0);
		private final Assignment cGenerateFkAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cGenerateFkGenerateFkParserRuleCall_8_0 = (RuleCall)cGenerateFkAssignment_8.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cData_typeAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cData_typeDataTypeEnumRuleCall_10_0 = (RuleCall)cData_typeAssignment_10.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cLeftParenthesisKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Assignment cPrecisionAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
		private final RuleCall cPrecisionINTTerminalRuleCall_11_1_0 = (RuleCall)cPrecisionAssignment_11_1.eContents().get(0);
		private final Group cGroup_11_2 = (Group)cGroup_11.eContents().get(2);
		private final Keyword cCommaKeyword_11_2_0 = (Keyword)cGroup_11_2.eContents().get(0);
		private final Assignment cScaleAssignment_11_2_1 = (Assignment)cGroup_11_2.eContents().get(1);
		private final RuleCall cScaleINTTerminalRuleCall_11_2_1_0 = (RuleCall)cScaleAssignment_11_2_1.eContents().get(0);
		private final Assignment cByteorcharAssignment_11_3 = (Assignment)cGroup_11.eContents().get(3);
		private final RuleCall cByteorcharCharTypeEnumRuleCall_11_3_0 = (RuleCall)cByteorcharAssignment_11_3.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_11_4 = (Keyword)cGroup_11.eContents().get(4);
		private final Assignment cUnsignedAssignment_12 = (Assignment)cGroup.eContents().get(12);
		private final Keyword cUnsignedUnsignedKeyword_12_0 = (Keyword)cUnsignedAssignment_12.eContents().get(0);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cDefaultKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Assignment cDefault_valueAssignment_13_1 = (Assignment)cGroup_13.eContents().get(1);
		private final RuleCall cDefault_valueSTRINGTerminalRuleCall_13_1_0 = (RuleCall)cDefault_valueAssignment_13_1.eContents().get(0);
		private final Assignment cIdentityAssignment_14 = (Assignment)cGroup.eContents().get(14);
		private final RuleCall cIdentityColumnIdentityParserRuleCall_14_0 = (RuleCall)cIdentityAssignment_14.eContents().get(0);
		private final Assignment cNotnullAssignment_15 = (Assignment)cGroup.eContents().get(15);
		private final Keyword cNotnullNotKeyword_15_0 = (Keyword)cNotnullAssignment_15.eContents().get(0);
		private final Keyword cNullKeyword_16 = (Keyword)cGroup.eContents().get(16);
		private final Keyword cRightParenthesisKeyword_17 = (Keyword)cGroup.eContents().get(17);
		private final Keyword cSemicolonKeyword_18 = (Keyword)cGroup.eContents().get(18);
		
		//ColumnDomain:
		//	"define" "column" "domain" name=DBNAME generatePk=GeneratePk? generateUk=GenerateUk? generateIndex=GenerateIndex?
		//	generateCc=GenerateCc? generateFk=GenerateFk? "(" data_type=DataType ("(" precision=INT ("," scale=INT)?
		//	byteorchar=CharType? ")")? unsigned?="unsigned"? ("default" default_value=STRING)? identity=ColumnIdentity?
		//	notnull?="not"? "null"* ")" ";";
		public ParserRule getRule() { return rule; }

		//"define" "column" "domain" name=DBNAME generatePk=GeneratePk? generateUk=GenerateUk? generateIndex=GenerateIndex?
		//generateCc=GenerateCc? generateFk=GenerateFk? "(" data_type=DataType ("(" precision=INT ("," scale=INT)?
		//byteorchar=CharType? ")")? unsigned?="unsigned"? ("default" default_value=STRING)? identity=ColumnIdentity?
		//notnull?="not"? "null"* ")" ";"
		public Group getGroup() { return cGroup; }

		//"define"
		public Keyword getDefineKeyword_0() { return cDefineKeyword_0; }

		//"column"
		public Keyword getColumnKeyword_1() { return cColumnKeyword_1; }

		//"domain"
		public Keyword getDomainKeyword_2() { return cDomainKeyword_2; }

		//name=DBNAME
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//DBNAME
		public RuleCall getNameDBNAMETerminalRuleCall_3_0() { return cNameDBNAMETerminalRuleCall_3_0; }

		//generatePk=GeneratePk?
		public Assignment getGeneratePkAssignment_4() { return cGeneratePkAssignment_4; }

		//GeneratePk
		public RuleCall getGeneratePkGeneratePkParserRuleCall_4_0() { return cGeneratePkGeneratePkParserRuleCall_4_0; }

		//generateUk=GenerateUk?
		public Assignment getGenerateUkAssignment_5() { return cGenerateUkAssignment_5; }

		//GenerateUk
		public RuleCall getGenerateUkGenerateUkParserRuleCall_5_0() { return cGenerateUkGenerateUkParserRuleCall_5_0; }

		//generateIndex=GenerateIndex?
		public Assignment getGenerateIndexAssignment_6() { return cGenerateIndexAssignment_6; }

		//GenerateIndex
		public RuleCall getGenerateIndexGenerateIndexParserRuleCall_6_0() { return cGenerateIndexGenerateIndexParserRuleCall_6_0; }

		//generateCc=GenerateCc?
		public Assignment getGenerateCcAssignment_7() { return cGenerateCcAssignment_7; }

		//GenerateCc
		public RuleCall getGenerateCcGenerateCcParserRuleCall_7_0() { return cGenerateCcGenerateCcParserRuleCall_7_0; }

		//generateFk=GenerateFk?
		public Assignment getGenerateFkAssignment_8() { return cGenerateFkAssignment_8; }

		//GenerateFk
		public RuleCall getGenerateFkGenerateFkParserRuleCall_8_0() { return cGenerateFkGenerateFkParserRuleCall_8_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_9() { return cLeftParenthesisKeyword_9; }

		//data_type=DataType
		public Assignment getData_typeAssignment_10() { return cData_typeAssignment_10; }

		//DataType
		public RuleCall getData_typeDataTypeEnumRuleCall_10_0() { return cData_typeDataTypeEnumRuleCall_10_0; }

		//("(" precision=INT ("," scale=INT)? byteorchar=CharType? ")")?
		public Group getGroup_11() { return cGroup_11; }

		//"("
		public Keyword getLeftParenthesisKeyword_11_0() { return cLeftParenthesisKeyword_11_0; }

		//precision=INT
		public Assignment getPrecisionAssignment_11_1() { return cPrecisionAssignment_11_1; }

		//INT
		public RuleCall getPrecisionINTTerminalRuleCall_11_1_0() { return cPrecisionINTTerminalRuleCall_11_1_0; }

		//("," scale=INT)?
		public Group getGroup_11_2() { return cGroup_11_2; }

		//","
		public Keyword getCommaKeyword_11_2_0() { return cCommaKeyword_11_2_0; }

		//scale=INT
		public Assignment getScaleAssignment_11_2_1() { return cScaleAssignment_11_2_1; }

		//INT
		public RuleCall getScaleINTTerminalRuleCall_11_2_1_0() { return cScaleINTTerminalRuleCall_11_2_1_0; }

		//byteorchar=CharType?
		public Assignment getByteorcharAssignment_11_3() { return cByteorcharAssignment_11_3; }

		//CharType
		public RuleCall getByteorcharCharTypeEnumRuleCall_11_3_0() { return cByteorcharCharTypeEnumRuleCall_11_3_0; }

		//")"
		public Keyword getRightParenthesisKeyword_11_4() { return cRightParenthesisKeyword_11_4; }

		//unsigned?="unsigned"?
		public Assignment getUnsignedAssignment_12() { return cUnsignedAssignment_12; }

		//"unsigned"
		public Keyword getUnsignedUnsignedKeyword_12_0() { return cUnsignedUnsignedKeyword_12_0; }

		//("default" default_value=STRING)?
		public Group getGroup_13() { return cGroup_13; }

		//"default"
		public Keyword getDefaultKeyword_13_0() { return cDefaultKeyword_13_0; }

		//default_value=STRING
		public Assignment getDefault_valueAssignment_13_1() { return cDefault_valueAssignment_13_1; }

		//STRING
		public RuleCall getDefault_valueSTRINGTerminalRuleCall_13_1_0() { return cDefault_valueSTRINGTerminalRuleCall_13_1_0; }

		//identity=ColumnIdentity?
		public Assignment getIdentityAssignment_14() { return cIdentityAssignment_14; }

		//ColumnIdentity
		public RuleCall getIdentityColumnIdentityParserRuleCall_14_0() { return cIdentityColumnIdentityParserRuleCall_14_0; }

		//notnull?="not"?
		public Assignment getNotnullAssignment_15() { return cNotnullAssignment_15; }

		//"not"
		public Keyword getNotnullNotKeyword_15_0() { return cNotnullNotKeyword_15_0; }

		//"null"*
		public Keyword getNullKeyword_16() { return cNullKeyword_16; }

		//")"
		public Keyword getRightParenthesisKeyword_17() { return cRightParenthesisKeyword_17; }

		//";"
		public Keyword getSemicolonKeyword_18() { return cSemicolonKeyword_18; }
	}
	
	
	public class LobStorageTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "LobStorageType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_LobStorageTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cBasicfileEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cBasicfileBasicfileKeyword_1_0 = (Keyword)cBasicfileEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cSecurefileEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cSecurefileSecurefileKeyword_2_0 = (Keyword)cSecurefileEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum LobStorageType:
		//	null="null_LobStorageType" | basicfile | securefile;
		public EnumRule getRule() { return rule; }

		//null="null_LobStorageType" | basicfile | securefile
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_LobStorageType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_LobStorageType"
		public Keyword getNullNull_LobStorageTypeKeyword_0_0() { return cNullNull_LobStorageTypeKeyword_0_0; }

		//basicfile
		public EnumLiteralDeclaration getBasicfileEnumLiteralDeclaration_1() { return cBasicfileEnumLiteralDeclaration_1; }

		//"basicfile"
		public Keyword getBasicfileBasicfileKeyword_1_0() { return cBasicfileBasicfileKeyword_1_0; }

		//securefile
		public EnumLiteralDeclaration getSecurefileEnumLiteralDeclaration_2() { return cSecurefileEnumLiteralDeclaration_2; }

		//"securefile"
		public Keyword getSecurefileSecurefileKeyword_2_0() { return cSecurefileSecurefileKeyword_2_0; }
	}

	public class LobDeduplicateTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "LobDeduplicateType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_LobDeduplicateTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cDeduplicateEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cDeduplicateDeduplicateKeyword_1_0 = (Keyword)cDeduplicateEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cKeep_duplicatesEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cKeep_duplicatesKeep_duplicatesKeyword_2_0 = (Keyword)cKeep_duplicatesEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum LobDeduplicateType:
		//	null="null_LobDeduplicateType" | deduplicate | keep_duplicates;
		public EnumRule getRule() { return rule; }

		//null="null_LobDeduplicateType" | deduplicate | keep_duplicates
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_LobDeduplicateType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_LobDeduplicateType"
		public Keyword getNullNull_LobDeduplicateTypeKeyword_0_0() { return cNullNull_LobDeduplicateTypeKeyword_0_0; }

		//deduplicate
		public EnumLiteralDeclaration getDeduplicateEnumLiteralDeclaration_1() { return cDeduplicateEnumLiteralDeclaration_1; }

		//"deduplicate"
		public Keyword getDeduplicateDeduplicateKeyword_1_0() { return cDeduplicateDeduplicateKeyword_1_0; }

		//keep_duplicates
		public EnumLiteralDeclaration getKeep_duplicatesEnumLiteralDeclaration_2() { return cKeep_duplicatesEnumLiteralDeclaration_2; }

		//"keep_duplicates"
		public Keyword getKeep_duplicatesKeep_duplicatesKeyword_2_0() { return cKeep_duplicatesKeep_duplicatesKeyword_2_0; }
	}

	public class DataTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "DataType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_DataTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cNumberEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cNumberNumberKeyword_1_0 = (Keyword)cNumberEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cBlobEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cBlobBlobKeyword_2_0 = (Keyword)cBlobEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cClobEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cClobClobKeyword_3_0 = (Keyword)cClobEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cNclobEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cNclobNclobKeyword_4_0 = (Keyword)cNclobEnumLiteralDeclaration_4.eContents().get(0);
		private final EnumLiteralDeclaration cVarchar2EnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
		private final Keyword cVarchar2Varchar2Keyword_5_0 = (Keyword)cVarchar2EnumLiteralDeclaration_5.eContents().get(0);
		private final EnumLiteralDeclaration cNvarchar2EnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
		private final Keyword cNvarchar2Nvarchar2Keyword_6_0 = (Keyword)cNvarchar2EnumLiteralDeclaration_6.eContents().get(0);
		private final EnumLiteralDeclaration cCharEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
		private final Keyword cCharCharKeyword_7_0 = (Keyword)cCharEnumLiteralDeclaration_7.eContents().get(0);
		private final EnumLiteralDeclaration cDateEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
		private final Keyword cDateDateKeyword_8_0 = (Keyword)cDateEnumLiteralDeclaration_8.eContents().get(0);
		private final EnumLiteralDeclaration cXmltypeEnumLiteralDeclaration_9 = (EnumLiteralDeclaration)cAlternatives.eContents().get(9);
		private final Keyword cXmltypeXmltypeKeyword_9_0 = (Keyword)cXmltypeEnumLiteralDeclaration_9.eContents().get(0);
		private final EnumLiteralDeclaration cTimestampEnumLiteralDeclaration_10 = (EnumLiteralDeclaration)cAlternatives.eContents().get(10);
		private final Keyword cTimestampTimestampKeyword_10_0 = (Keyword)cTimestampEnumLiteralDeclaration_10.eContents().get(0);
		private final EnumLiteralDeclaration cRowidEnumLiteralDeclaration_11 = (EnumLiteralDeclaration)cAlternatives.eContents().get(11);
		private final Keyword cRowidRowidKeyword_11_0 = (Keyword)cRowidEnumLiteralDeclaration_11.eContents().get(0);
		private final EnumLiteralDeclaration cRawEnumLiteralDeclaration_12 = (EnumLiteralDeclaration)cAlternatives.eContents().get(12);
		private final Keyword cRawRawKeyword_12_0 = (Keyword)cRawEnumLiteralDeclaration_12.eContents().get(0);
		private final EnumLiteralDeclaration cLong_rawEnumLiteralDeclaration_13 = (EnumLiteralDeclaration)cAlternatives.eContents().get(13);
		private final Keyword cLong_rawLong_rawKeyword_13_0 = (Keyword)cLong_rawEnumLiteralDeclaration_13.eContents().get(0);
		private final EnumLiteralDeclaration cFloatEnumLiteralDeclaration_14 = (EnumLiteralDeclaration)cAlternatives.eContents().get(14);
		private final Keyword cFloatFloatKeyword_14_0 = (Keyword)cFloatEnumLiteralDeclaration_14.eContents().get(0);
		private final EnumLiteralDeclaration cLongEnumLiteralDeclaration_15 = (EnumLiteralDeclaration)cAlternatives.eContents().get(15);
		private final Keyword cLongLongKeyword_15_0 = (Keyword)cLongEnumLiteralDeclaration_15.eContents().get(0);
		private final EnumLiteralDeclaration cObjectEnumLiteralDeclaration_16 = (EnumLiteralDeclaration)cAlternatives.eContents().get(16);
		private final Keyword cObjectObjectKeyword_16_0 = (Keyword)cObjectEnumLiteralDeclaration_16.eContents().get(0);
		private final EnumLiteralDeclaration cTinyintEnumLiteralDeclaration_17 = (EnumLiteralDeclaration)cAlternatives.eContents().get(17);
		private final Keyword cTinyintTinyintKeyword_17_0 = (Keyword)cTinyintEnumLiteralDeclaration_17.eContents().get(0);
		private final EnumLiteralDeclaration cSmallintEnumLiteralDeclaration_18 = (EnumLiteralDeclaration)cAlternatives.eContents().get(18);
		private final Keyword cSmallintSmallintKeyword_18_0 = (Keyword)cSmallintEnumLiteralDeclaration_18.eContents().get(0);
		private final EnumLiteralDeclaration cMediumintEnumLiteralDeclaration_19 = (EnumLiteralDeclaration)cAlternatives.eContents().get(19);
		private final Keyword cMediumintMediumintKeyword_19_0 = (Keyword)cMediumintEnumLiteralDeclaration_19.eContents().get(0);
		private final EnumLiteralDeclaration cIntEnumLiteralDeclaration_20 = (EnumLiteralDeclaration)cAlternatives.eContents().get(20);
		private final Keyword cIntIntKeyword_20_0 = (Keyword)cIntEnumLiteralDeclaration_20.eContents().get(0);
		private final EnumLiteralDeclaration cBigintEnumLiteralDeclaration_21 = (EnumLiteralDeclaration)cAlternatives.eContents().get(21);
		private final Keyword cBigintBigintKeyword_21_0 = (Keyword)cBigintEnumLiteralDeclaration_21.eContents().get(0);
		private final EnumLiteralDeclaration cBitEnumLiteralDeclaration_22 = (EnumLiteralDeclaration)cAlternatives.eContents().get(22);
		private final Keyword cBitBitKeyword_22_0 = (Keyword)cBitEnumLiteralDeclaration_22.eContents().get(0);
		private final EnumLiteralDeclaration cUrowidEnumLiteralDeclaration_23 = (EnumLiteralDeclaration)cAlternatives.eContents().get(23);
		private final Keyword cUrowidUrowidKeyword_23_0 = (Keyword)cUrowidEnumLiteralDeclaration_23.eContents().get(0);
		private final EnumLiteralDeclaration cBooleanEnumLiteralDeclaration_24 = (EnumLiteralDeclaration)cAlternatives.eContents().get(24);
		private final Keyword cBooleanBooleanKeyword_24_0 = (Keyword)cBooleanEnumLiteralDeclaration_24.eContents().get(0);
		
		//enum DataType:
		//	null="null_DataType" | number | blob | clob | nclob | varchar2 | nvarchar2 | char | date | xmltype | timestamp |
		//	rowid | raw | long_raw | float | long | object | tinyint | smallint | mediumint | int | bigint | bit | urowid |
		//	boolean;
		public EnumRule getRule() { return rule; }

		//null="null_DataType" | number | blob | clob | nclob | varchar2 | nvarchar2 | char | date | xmltype | timestamp | rowid |
		//raw | long_raw | float | long | object | tinyint | smallint | mediumint | int | bigint | bit | urowid | boolean
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_DataType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_DataType"
		public Keyword getNullNull_DataTypeKeyword_0_0() { return cNullNull_DataTypeKeyword_0_0; }

		//number
		public EnumLiteralDeclaration getNumberEnumLiteralDeclaration_1() { return cNumberEnumLiteralDeclaration_1; }

		//"number"
		public Keyword getNumberNumberKeyword_1_0() { return cNumberNumberKeyword_1_0; }

		//blob
		public EnumLiteralDeclaration getBlobEnumLiteralDeclaration_2() { return cBlobEnumLiteralDeclaration_2; }

		//"blob"
		public Keyword getBlobBlobKeyword_2_0() { return cBlobBlobKeyword_2_0; }

		//clob
		public EnumLiteralDeclaration getClobEnumLiteralDeclaration_3() { return cClobEnumLiteralDeclaration_3; }

		//"clob"
		public Keyword getClobClobKeyword_3_0() { return cClobClobKeyword_3_0; }

		//nclob
		public EnumLiteralDeclaration getNclobEnumLiteralDeclaration_4() { return cNclobEnumLiteralDeclaration_4; }

		//"nclob"
		public Keyword getNclobNclobKeyword_4_0() { return cNclobNclobKeyword_4_0; }

		//varchar2
		public EnumLiteralDeclaration getVarchar2EnumLiteralDeclaration_5() { return cVarchar2EnumLiteralDeclaration_5; }

		//"varchar2"
		public Keyword getVarchar2Varchar2Keyword_5_0() { return cVarchar2Varchar2Keyword_5_0; }

		//nvarchar2
		public EnumLiteralDeclaration getNvarchar2EnumLiteralDeclaration_6() { return cNvarchar2EnumLiteralDeclaration_6; }

		//"nvarchar2"
		public Keyword getNvarchar2Nvarchar2Keyword_6_0() { return cNvarchar2Nvarchar2Keyword_6_0; }

		//char
		public EnumLiteralDeclaration getCharEnumLiteralDeclaration_7() { return cCharEnumLiteralDeclaration_7; }

		//"char"
		public Keyword getCharCharKeyword_7_0() { return cCharCharKeyword_7_0; }

		//date
		public EnumLiteralDeclaration getDateEnumLiteralDeclaration_8() { return cDateEnumLiteralDeclaration_8; }

		//"date"
		public Keyword getDateDateKeyword_8_0() { return cDateDateKeyword_8_0; }

		//xmltype
		public EnumLiteralDeclaration getXmltypeEnumLiteralDeclaration_9() { return cXmltypeEnumLiteralDeclaration_9; }

		//"xmltype"
		public Keyword getXmltypeXmltypeKeyword_9_0() { return cXmltypeXmltypeKeyword_9_0; }

		//timestamp
		public EnumLiteralDeclaration getTimestampEnumLiteralDeclaration_10() { return cTimestampEnumLiteralDeclaration_10; }

		//"timestamp"
		public Keyword getTimestampTimestampKeyword_10_0() { return cTimestampTimestampKeyword_10_0; }

		//rowid
		public EnumLiteralDeclaration getRowidEnumLiteralDeclaration_11() { return cRowidEnumLiteralDeclaration_11; }

		//"rowid"
		public Keyword getRowidRowidKeyword_11_0() { return cRowidRowidKeyword_11_0; }

		//raw
		public EnumLiteralDeclaration getRawEnumLiteralDeclaration_12() { return cRawEnumLiteralDeclaration_12; }

		//"raw"
		public Keyword getRawRawKeyword_12_0() { return cRawRawKeyword_12_0; }

		//long_raw
		public EnumLiteralDeclaration getLong_rawEnumLiteralDeclaration_13() { return cLong_rawEnumLiteralDeclaration_13; }

		//"long_raw"
		public Keyword getLong_rawLong_rawKeyword_13_0() { return cLong_rawLong_rawKeyword_13_0; }

		//float
		public EnumLiteralDeclaration getFloatEnumLiteralDeclaration_14() { return cFloatEnumLiteralDeclaration_14; }

		//"float"
		public Keyword getFloatFloatKeyword_14_0() { return cFloatFloatKeyword_14_0; }

		//long
		public EnumLiteralDeclaration getLongEnumLiteralDeclaration_15() { return cLongEnumLiteralDeclaration_15; }

		//"long"
		public Keyword getLongLongKeyword_15_0() { return cLongLongKeyword_15_0; }

		//object
		public EnumLiteralDeclaration getObjectEnumLiteralDeclaration_16() { return cObjectEnumLiteralDeclaration_16; }

		//"object"
		public Keyword getObjectObjectKeyword_16_0() { return cObjectObjectKeyword_16_0; }

		//tinyint
		public EnumLiteralDeclaration getTinyintEnumLiteralDeclaration_17() { return cTinyintEnumLiteralDeclaration_17; }

		//"tinyint"
		public Keyword getTinyintTinyintKeyword_17_0() { return cTinyintTinyintKeyword_17_0; }

		//smallint
		public EnumLiteralDeclaration getSmallintEnumLiteralDeclaration_18() { return cSmallintEnumLiteralDeclaration_18; }

		//"smallint"
		public Keyword getSmallintSmallintKeyword_18_0() { return cSmallintSmallintKeyword_18_0; }

		//mediumint
		public EnumLiteralDeclaration getMediumintEnumLiteralDeclaration_19() { return cMediumintEnumLiteralDeclaration_19; }

		//"mediumint"
		public Keyword getMediumintMediumintKeyword_19_0() { return cMediumintMediumintKeyword_19_0; }

		//int
		public EnumLiteralDeclaration getIntEnumLiteralDeclaration_20() { return cIntEnumLiteralDeclaration_20; }

		//"int"
		public Keyword getIntIntKeyword_20_0() { return cIntIntKeyword_20_0; }

		//bigint
		public EnumLiteralDeclaration getBigintEnumLiteralDeclaration_21() { return cBigintEnumLiteralDeclaration_21; }

		//"bigint"
		public Keyword getBigintBigintKeyword_21_0() { return cBigintBigintKeyword_21_0; }

		//bit
		public EnumLiteralDeclaration getBitEnumLiteralDeclaration_22() { return cBitEnumLiteralDeclaration_22; }

		//"bit"
		public Keyword getBitBitKeyword_22_0() { return cBitBitKeyword_22_0; }

		//urowid
		public EnumLiteralDeclaration getUrowidEnumLiteralDeclaration_23() { return cUrowidEnumLiteralDeclaration_23; }

		//"urowid"
		public Keyword getUrowidUrowidKeyword_23_0() { return cUrowidUrowidKeyword_23_0; }

		//boolean
		public EnumLiteralDeclaration getBooleanEnumLiteralDeclaration_24() { return cBooleanEnumLiteralDeclaration_24; }

		//"boolean"
		public Keyword getBooleanBooleanKeyword_24_0() { return cBooleanBooleanKeyword_24_0; }
	}

	public class FkDeleteRuleTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "FkDeleteRuleType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_FkDeleteRuleTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cCascadeEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cCascadeCascadeKeyword_1_0 = (Keyword)cCascadeEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cNo_actionEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cNo_actionNo_actionKeyword_2_0 = (Keyword)cNo_actionEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cSet_nullEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cSet_nullSet_nullKeyword_3_0 = (Keyword)cSet_nullEnumLiteralDeclaration_3.eContents().get(0);
		
		//enum FkDeleteRuleType:
		//	null="null_FkDeleteRuleType" | cascade | no_action | set_null;
		public EnumRule getRule() { return rule; }

		//null="null_FkDeleteRuleType" | cascade | no_action | set_null
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_FkDeleteRuleType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_FkDeleteRuleType"
		public Keyword getNullNull_FkDeleteRuleTypeKeyword_0_0() { return cNullNull_FkDeleteRuleTypeKeyword_0_0; }

		//cascade
		public EnumLiteralDeclaration getCascadeEnumLiteralDeclaration_1() { return cCascadeEnumLiteralDeclaration_1; }

		//"cascade"
		public Keyword getCascadeCascadeKeyword_1_0() { return cCascadeCascadeKeyword_1_0; }

		//no_action
		public EnumLiteralDeclaration getNo_actionEnumLiteralDeclaration_2() { return cNo_actionEnumLiteralDeclaration_2; }

		//"no_action"
		public Keyword getNo_actionNo_actionKeyword_2_0() { return cNo_actionNo_actionKeyword_2_0; }

		//set_null
		public EnumLiteralDeclaration getSet_nullEnumLiteralDeclaration_3() { return cSet_nullEnumLiteralDeclaration_3; }

		//"set_null"
		public Keyword getSet_nullSet_nullKeyword_3_0() { return cSet_nullSet_nullKeyword_3_0; }
	}

	public class DeferrTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "DeferrType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_DeferrTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cImmediateEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cImmediateImmediateKeyword_1_0 = (Keyword)cImmediateEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cDeferredEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cDeferredDeferredKeyword_2_0 = (Keyword)cDeferredEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum DeferrType:
		//	null="null_DeferrType" | immediate | deferred;
		public EnumRule getRule() { return rule; }

		//null="null_DeferrType" | immediate | deferred
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_DeferrType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_DeferrType"
		public Keyword getNullNull_DeferrTypeKeyword_0_0() { return cNullNull_DeferrTypeKeyword_0_0; }

		//immediate
		public EnumLiteralDeclaration getImmediateEnumLiteralDeclaration_1() { return cImmediateEnumLiteralDeclaration_1; }

		//"immediate"
		public Keyword getImmediateImmediateKeyword_1_0() { return cImmediateImmediateKeyword_1_0; }

		//deferred
		public EnumLiteralDeclaration getDeferredEnumLiteralDeclaration_2() { return cDeferredEnumLiteralDeclaration_2; }

		//"deferred"
		public Keyword getDeferredDeferredKeyword_2_0() { return cDeferredDeferredKeyword_2_0; }
	}

	public class CharTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CharType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_CharTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cByte_upperEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cByte_upperBYTEKeyword_1_0 = (Keyword)cByte_upperEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cChar_upperEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cChar_upperCHARKeyword_2_0 = (Keyword)cChar_upperEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cByteEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cByteByteKeyword_3_0 = (Keyword)cByteEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cCharEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cCharCharKeyword_4_0 = (Keyword)cCharEnumLiteralDeclaration_4.eContents().get(0);
		
		//enum CharType:
		//	null="null_CharType" | byte_upper="BYTE" | char_upper="CHAR" | byte | char;
		public EnumRule getRule() { return rule; }

		//null="null_CharType" | byte_upper="BYTE" | char_upper="CHAR" | byte | char
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_CharType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_CharType"
		public Keyword getNullNull_CharTypeKeyword_0_0() { return cNullNull_CharTypeKeyword_0_0; }

		//byte_upper="BYTE"
		public EnumLiteralDeclaration getByte_upperEnumLiteralDeclaration_1() { return cByte_upperEnumLiteralDeclaration_1; }

		//"BYTE"
		public Keyword getByte_upperBYTEKeyword_1_0() { return cByte_upperBYTEKeyword_1_0; }

		//char_upper="CHAR"
		public EnumLiteralDeclaration getChar_upperEnumLiteralDeclaration_2() { return cChar_upperEnumLiteralDeclaration_2; }

		//"CHAR"
		public Keyword getChar_upperCHARKeyword_2_0() { return cChar_upperCHARKeyword_2_0; }

		//byte
		public EnumLiteralDeclaration getByteEnumLiteralDeclaration_3() { return cByteEnumLiteralDeclaration_3; }

		//"byte"
		public Keyword getByteByteKeyword_3_0() { return cByteByteKeyword_3_0; }

		//char
		public EnumLiteralDeclaration getCharEnumLiteralDeclaration_4() { return cCharEnumLiteralDeclaration_4; }

		//"char"
		public Keyword getCharCharKeyword_4_0() { return cCharCharKeyword_4_0; }
	}

	public class LoggingTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "LoggingType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_LoggingTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cLoggingEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cLoggingLoggingKeyword_1_0 = (Keyword)cLoggingEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cNologgingEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cNologgingNologgingKeyword_2_0 = (Keyword)cNologgingEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum LoggingType:
		//	null="null_LoggingType" | logging | nologging;
		public EnumRule getRule() { return rule; }

		//null="null_LoggingType" | logging | nologging
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_LoggingType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_LoggingType"
		public Keyword getNullNull_LoggingTypeKeyword_0_0() { return cNullNull_LoggingTypeKeyword_0_0; }

		//logging
		public EnumLiteralDeclaration getLoggingEnumLiteralDeclaration_1() { return cLoggingEnumLiteralDeclaration_1; }

		//"logging"
		public Keyword getLoggingLoggingKeyword_1_0() { return cLoggingLoggingKeyword_1_0; }

		//nologging
		public EnumLiteralDeclaration getNologgingEnumLiteralDeclaration_2() { return cNologgingEnumLiteralDeclaration_2; }

		//"nologging"
		public Keyword getNologgingNologgingKeyword_2_0() { return cNologgingNologgingKeyword_2_0; }
	}

	public class EnableTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "EnableType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_EnableTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cEnableEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cEnableEnableKeyword_1_0 = (Keyword)cEnableEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cDisableEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cDisableDisableKeyword_2_0 = (Keyword)cDisableEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum EnableType:
		//	null="null_EnableType" | enable | disable;
		public EnumRule getRule() { return rule; }

		//null="null_EnableType" | enable | disable
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_EnableType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_EnableType"
		public Keyword getNullNull_EnableTypeKeyword_0_0() { return cNullNull_EnableTypeKeyword_0_0; }

		//enable
		public EnumLiteralDeclaration getEnableEnumLiteralDeclaration_1() { return cEnableEnumLiteralDeclaration_1; }

		//"enable"
		public Keyword getEnableEnableKeyword_1_0() { return cEnableEnableKeyword_1_0; }

		//disable
		public EnumLiteralDeclaration getDisableEnumLiteralDeclaration_2() { return cDisableEnumLiteralDeclaration_2; }

		//"disable"
		public Keyword getDisableDisableKeyword_2_0() { return cDisableDisableKeyword_2_0; }
	}

	public class ParallelTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ParallelType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_ParallelTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cParallelEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cParallelParallelKeyword_1_0 = (Keyword)cParallelEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cNoparallelEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cNoparallelNoparallelKeyword_2_0 = (Keyword)cNoparallelEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum ParallelType:
		//	null="null_ParallelType" | parallel | noparallel;
		public EnumRule getRule() { return rule; }

		//null="null_ParallelType" | parallel | noparallel
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_ParallelType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_ParallelType"
		public Keyword getNullNull_ParallelTypeKeyword_0_0() { return cNullNull_ParallelTypeKeyword_0_0; }

		//parallel
		public EnumLiteralDeclaration getParallelEnumLiteralDeclaration_1() { return cParallelEnumLiteralDeclaration_1; }

		//"parallel"
		public Keyword getParallelParallelKeyword_1_0() { return cParallelParallelKeyword_1_0; }

		//noparallel
		public EnumLiteralDeclaration getNoparallelEnumLiteralDeclaration_2() { return cNoparallelEnumLiteralDeclaration_2; }

		//"noparallel"
		public Keyword getNoparallelNoparallelKeyword_2_0() { return cNoparallelNoparallelKeyword_2_0; }
	}

	public class IndexGlobalTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "IndexGlobalType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_IndexGlobalTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cLocalEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cLocalLocalKeyword_1_0 = (Keyword)cLocalEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cGlobalEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cGlobalGlobalKeyword_2_0 = (Keyword)cGlobalEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum IndexGlobalType:
		//	null="null_IndexGlobalType" | local | global;
		public EnumRule getRule() { return rule; }

		//null="null_IndexGlobalType" | local | global
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_IndexGlobalType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_IndexGlobalType"
		public Keyword getNullNull_IndexGlobalTypeKeyword_0_0() { return cNullNull_IndexGlobalTypeKeyword_0_0; }

		//local
		public EnumLiteralDeclaration getLocalEnumLiteralDeclaration_1() { return cLocalEnumLiteralDeclaration_1; }

		//"local"
		public Keyword getLocalLocalKeyword_1_0() { return cLocalLocalKeyword_1_0; }

		//global
		public EnumLiteralDeclaration getGlobalEnumLiteralDeclaration_2() { return cGlobalEnumLiteralDeclaration_2; }

		//"global"
		public Keyword getGlobalGlobalKeyword_2_0() { return cGlobalGlobalKeyword_2_0; }
	}

	public class CommentObjectTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CommentObjectType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_CommentObjectTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cTableEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cTableTableKeyword_1_0 = (Keyword)cTableEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cColumnEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cColumnColumnKeyword_2_0 = (Keyword)cColumnEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum CommentObjectType:
		//	null="null_CommentObjectType" | table | column;
		public EnumRule getRule() { return rule; }

		//null="null_CommentObjectType" | table | column
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_CommentObjectType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_CommentObjectType"
		public Keyword getNullNull_CommentObjectTypeKeyword_0_0() { return cNullNull_CommentObjectTypeKeyword_0_0; }

		//table
		public EnumLiteralDeclaration getTableEnumLiteralDeclaration_1() { return cTableEnumLiteralDeclaration_1; }

		//"table"
		public Keyword getTableTableKeyword_1_0() { return cTableTableKeyword_1_0; }

		//column
		public EnumLiteralDeclaration getColumnEnumLiteralDeclaration_2() { return cColumnEnumLiteralDeclaration_2; }

		//"column"
		public Keyword getColumnColumnKeyword_2_0() { return cColumnColumnKeyword_2_0; }
	}

	public class PermanentnessTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PermanentnessType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_PermanentnessTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cGlobal_temporaryEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cGlobal_temporaryTemporaryKeyword_1_0 = (Keyword)cGlobal_temporaryEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cPermanentEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cPermanentPermanentKeyword_2_0 = (Keyword)cPermanentEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum PermanentnessType:
		//	null="null_PermanentnessType" | global_temporary="temporary" | permanent;
		public EnumRule getRule() { return rule; }

		//null="null_PermanentnessType" | global_temporary="temporary" | permanent
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_PermanentnessType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_PermanentnessType"
		public Keyword getNullNull_PermanentnessTypeKeyword_0_0() { return cNullNull_PermanentnessTypeKeyword_0_0; }

		//global_temporary="temporary"
		public EnumLiteralDeclaration getGlobal_temporaryEnumLiteralDeclaration_1() { return cGlobal_temporaryEnumLiteralDeclaration_1; }

		//"temporary"
		public Keyword getGlobal_temporaryTemporaryKeyword_1_0() { return cGlobal_temporaryTemporaryKeyword_1_0; }

		//permanent
		public EnumLiteralDeclaration getPermanentEnumLiteralDeclaration_2() { return cPermanentEnumLiteralDeclaration_2; }

		//"permanent"
		public Keyword getPermanentPermanentKeyword_2_0() { return cPermanentPermanentKeyword_2_0; }
	}

	public class PermanentnessTransactionTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PermanentnessTransactionType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_PermanentnessTransactionTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cOn_commit_deleteEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cOn_commit_deleteDeleteKeyword_1_0 = (Keyword)cOn_commit_deleteEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cOn_commit_preserveEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cOn_commit_preservePreserveKeyword_2_0 = (Keyword)cOn_commit_preserveEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum PermanentnessTransactionType:
		//	null="null_PermanentnessTransactionType" | on_commit_delete="delete" | on_commit_preserve="preserve";
		public EnumRule getRule() { return rule; }

		//null="null_PermanentnessTransactionType" | on_commit_delete="delete" | on_commit_preserve="preserve"
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_PermanentnessTransactionType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_PermanentnessTransactionType"
		public Keyword getNullNull_PermanentnessTransactionTypeKeyword_0_0() { return cNullNull_PermanentnessTransactionTypeKeyword_0_0; }

		//on_commit_delete="delete"
		public EnumLiteralDeclaration getOn_commit_deleteEnumLiteralDeclaration_1() { return cOn_commit_deleteEnumLiteralDeclaration_1; }

		//"delete"
		public Keyword getOn_commit_deleteDeleteKeyword_1_0() { return cOn_commit_deleteDeleteKeyword_1_0; }

		//on_commit_preserve="preserve"
		public EnumLiteralDeclaration getOn_commit_preserveEnumLiteralDeclaration_2() { return cOn_commit_preserveEnumLiteralDeclaration_2; }

		//"preserve"
		public Keyword getOn_commit_preservePreserveKeyword_2_0() { return cOn_commit_preservePreserveKeyword_2_0; }
	}

	public class CycleTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CycleType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_CycleTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cCycleEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cCycleCycleKeyword_1_0 = (Keyword)cCycleEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cNocycleEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cNocycleNocycleKeyword_2_0 = (Keyword)cNocycleEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum CycleType:
		//	null="null_CycleType" | cycle | nocycle;
		public EnumRule getRule() { return rule; }

		//null="null_CycleType" | cycle | nocycle
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_CycleType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_CycleType"
		public Keyword getNullNull_CycleTypeKeyword_0_0() { return cNullNull_CycleTypeKeyword_0_0; }

		//cycle
		public EnumLiteralDeclaration getCycleEnumLiteralDeclaration_1() { return cCycleEnumLiteralDeclaration_1; }

		//"cycle"
		public Keyword getCycleCycleKeyword_1_0() { return cCycleCycleKeyword_1_0; }

		//nocycle
		public EnumLiteralDeclaration getNocycleEnumLiteralDeclaration_2() { return cNocycleEnumLiteralDeclaration_2; }

		//"nocycle"
		public Keyword getNocycleNocycleKeyword_2_0() { return cNocycleNocycleKeyword_2_0; }
	}

	public class OrderTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "OrderType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_OrderTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cOrderEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cOrderOrderKeyword_1_0 = (Keyword)cOrderEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cNoorderEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cNoorderNoorderKeyword_2_0 = (Keyword)cNoorderEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum OrderType:
		//	null="null_OrderType" | order | noorder;
		public EnumRule getRule() { return rule; }

		//null="null_OrderType" | order | noorder
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_OrderType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_OrderType"
		public Keyword getNullNull_OrderTypeKeyword_0_0() { return cNullNull_OrderTypeKeyword_0_0; }

		//order
		public EnumLiteralDeclaration getOrderEnumLiteralDeclaration_1() { return cOrderEnumLiteralDeclaration_1; }

		//"order"
		public Keyword getOrderOrderKeyword_1_0() { return cOrderOrderKeyword_1_0; }

		//noorder
		public EnumLiteralDeclaration getNoorderEnumLiteralDeclaration_2() { return cNoorderEnumLiteralDeclaration_2; }

		//"noorder"
		public Keyword getNoorderNoorderKeyword_2_0() { return cNoorderNoorderKeyword_2_0; }
	}

	public class CompressForTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CompressForType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_CompressForTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cAllEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cAllAll_operationsKeyword_1_0 = (Keyword)cAllEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cDirect_loadEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cDirect_loadDirect_load_operationsKeyword_2_0 = (Keyword)cDirect_loadEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cQuery_lowEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cQuery_lowQuery_lowKeyword_3_0 = (Keyword)cQuery_lowEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cQuery_highEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cQuery_highQuery_highKeyword_4_0 = (Keyword)cQuery_highEnumLiteralDeclaration_4.eContents().get(0);
		private final EnumLiteralDeclaration cArchive_lowEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
		private final Keyword cArchive_lowArchive_lowKeyword_5_0 = (Keyword)cArchive_lowEnumLiteralDeclaration_5.eContents().get(0);
		private final EnumLiteralDeclaration cArchive_highEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
		private final Keyword cArchive_highArchive_highKeyword_6_0 = (Keyword)cArchive_highEnumLiteralDeclaration_6.eContents().get(0);
		
		//enum CompressForType:
		//	null="null_CompressForType" | all="all_operations" | direct_load="direct_load_operations" | query_low | query_high |
		//	archive_low | archive_high;
		public EnumRule getRule() { return rule; }

		//null="null_CompressForType" | all="all_operations" | direct_load="direct_load_operations" | query_low | query_high |
		//archive_low | archive_high
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_CompressForType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_CompressForType"
		public Keyword getNullNull_CompressForTypeKeyword_0_0() { return cNullNull_CompressForTypeKeyword_0_0; }

		//all="all_operations"
		public EnumLiteralDeclaration getAllEnumLiteralDeclaration_1() { return cAllEnumLiteralDeclaration_1; }

		//"all_operations"
		public Keyword getAllAll_operationsKeyword_1_0() { return cAllAll_operationsKeyword_1_0; }

		//direct_load="direct_load_operations"
		public EnumLiteralDeclaration getDirect_loadEnumLiteralDeclaration_2() { return cDirect_loadEnumLiteralDeclaration_2; }

		//"direct_load_operations"
		public Keyword getDirect_loadDirect_load_operationsKeyword_2_0() { return cDirect_loadDirect_load_operationsKeyword_2_0; }

		//query_low
		public EnumLiteralDeclaration getQuery_lowEnumLiteralDeclaration_3() { return cQuery_lowEnumLiteralDeclaration_3; }

		//"query_low"
		public Keyword getQuery_lowQuery_lowKeyword_3_0() { return cQuery_lowQuery_lowKeyword_3_0; }

		//query_high
		public EnumLiteralDeclaration getQuery_highEnumLiteralDeclaration_4() { return cQuery_highEnumLiteralDeclaration_4; }

		//"query_high"
		public Keyword getQuery_highQuery_highKeyword_4_0() { return cQuery_highQuery_highKeyword_4_0; }

		//archive_low
		public EnumLiteralDeclaration getArchive_lowEnumLiteralDeclaration_5() { return cArchive_lowEnumLiteralDeclaration_5; }

		//"archive_low"
		public Keyword getArchive_lowArchive_lowKeyword_5_0() { return cArchive_lowArchive_lowKeyword_5_0; }

		//archive_high
		public EnumLiteralDeclaration getArchive_highEnumLiteralDeclaration_6() { return cArchive_highEnumLiteralDeclaration_6; }

		//"archive_high"
		public Keyword getArchive_highArchive_highKeyword_6_0() { return cArchive_highArchive_highKeyword_6_0; }
	}

	public class LobCompressForTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "LobCompressForType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_LobCompressForTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cHighEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cHighHighKeyword_1_0 = (Keyword)cHighEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cMediumEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cMediumMediumKeyword_2_0 = (Keyword)cMediumEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cLowEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cLowLowKeyword_3_0 = (Keyword)cLowEnumLiteralDeclaration_3.eContents().get(0);
		
		//enum LobCompressForType:
		//	null="null_LobCompressForType" | high | medium | low;
		public EnumRule getRule() { return rule; }

		//null="null_LobCompressForType" | high | medium | low
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_LobCompressForType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_LobCompressForType"
		public Keyword getNullNull_LobCompressForTypeKeyword_0_0() { return cNullNull_LobCompressForTypeKeyword_0_0; }

		//high
		public EnumLiteralDeclaration getHighEnumLiteralDeclaration_1() { return cHighEnumLiteralDeclaration_1; }

		//"high"
		public Keyword getHighHighKeyword_1_0() { return cHighHighKeyword_1_0; }

		//medium
		public EnumLiteralDeclaration getMediumEnumLiteralDeclaration_2() { return cMediumEnumLiteralDeclaration_2; }

		//"medium"
		public Keyword getMediumMediumKeyword_2_0() { return cMediumMediumKeyword_2_0; }

		//low
		public EnumLiteralDeclaration getLowEnumLiteralDeclaration_3() { return cLowEnumLiteralDeclaration_3; }

		//"low"
		public Keyword getLowLowKeyword_3_0() { return cLowLowKeyword_3_0; }
	}

	public class CompressTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CompressType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_CompressTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cNocompressEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cNocompressNocompressKeyword_1_0 = (Keyword)cNocompressEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cCompressEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cCompressCompressKeyword_2_0 = (Keyword)cCompressEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum CompressType:
		//	null="null_CompressType" | nocompress | compress;
		public EnumRule getRule() { return rule; }

		//null="null_CompressType" | nocompress | compress
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_CompressType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_CompressType"
		public Keyword getNullNull_CompressTypeKeyword_0_0() { return cNullNull_CompressTypeKeyword_0_0; }

		//nocompress
		public EnumLiteralDeclaration getNocompressEnumLiteralDeclaration_1() { return cNocompressEnumLiteralDeclaration_1; }

		//"nocompress"
		public Keyword getNocompressNocompressKeyword_1_0() { return cNocompressNocompressKeyword_1_0; }

		//compress
		public EnumLiteralDeclaration getCompressEnumLiteralDeclaration_2() { return cCompressEnumLiteralDeclaration_2; }

		//"compress"
		public Keyword getCompressCompressKeyword_2_0() { return cCompressCompressKeyword_2_0; }
	}

	public class BuildModeTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "BuildModeType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_BuildModeTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cImmediateEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cImmediateImmediateKeyword_1_0 = (Keyword)cImmediateEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cDeferredEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cDeferredDeferredKeyword_2_0 = (Keyword)cDeferredEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cPrebuiltEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cPrebuiltPrebuiltKeyword_3_0 = (Keyword)cPrebuiltEnumLiteralDeclaration_3.eContents().get(0);
		
		//enum BuildModeType:
		//	null="null_BuildModeType" | immediate | deferred | prebuilt;
		public EnumRule getRule() { return rule; }

		//null="null_BuildModeType" | immediate | deferred | prebuilt
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_BuildModeType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_BuildModeType"
		public Keyword getNullNull_BuildModeTypeKeyword_0_0() { return cNullNull_BuildModeTypeKeyword_0_0; }

		//immediate
		public EnumLiteralDeclaration getImmediateEnumLiteralDeclaration_1() { return cImmediateEnumLiteralDeclaration_1; }

		//"immediate"
		public Keyword getImmediateImmediateKeyword_1_0() { return cImmediateImmediateKeyword_1_0; }

		//deferred
		public EnumLiteralDeclaration getDeferredEnumLiteralDeclaration_2() { return cDeferredEnumLiteralDeclaration_2; }

		//"deferred"
		public Keyword getDeferredDeferredKeyword_2_0() { return cDeferredDeferredKeyword_2_0; }

		//prebuilt
		public EnumLiteralDeclaration getPrebuiltEnumLiteralDeclaration_3() { return cPrebuiltEnumLiteralDeclaration_3; }

		//"prebuilt"
		public Keyword getPrebuiltPrebuiltKeyword_3_0() { return cPrebuiltPrebuiltKeyword_3_0; }
	}

	public class RefreshModeTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "RefreshModeType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_RefreshModeTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cDemandEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cDemandDemandKeyword_1_0 = (Keyword)cDemandEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cCommitEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cCommitCommitKeyword_2_0 = (Keyword)cCommitEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum RefreshModeType:
		//	null="null_RefreshModeType" | demand | commit;
		public EnumRule getRule() { return rule; }

		//null="null_RefreshModeType" | demand | commit
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_RefreshModeType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_RefreshModeType"
		public Keyword getNullNull_RefreshModeTypeKeyword_0_0() { return cNullNull_RefreshModeTypeKeyword_0_0; }

		//demand
		public EnumLiteralDeclaration getDemandEnumLiteralDeclaration_1() { return cDemandEnumLiteralDeclaration_1; }

		//"demand"
		public Keyword getDemandDemandKeyword_1_0() { return cDemandDemandKeyword_1_0; }

		//commit
		public EnumLiteralDeclaration getCommitEnumLiteralDeclaration_2() { return cCommitEnumLiteralDeclaration_2; }

		//"commit"
		public Keyword getCommitCommitKeyword_2_0() { return cCommitCommitKeyword_2_0; }
	}

	public class RefreshMethodTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "RefreshMethodType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_RefreshMethodTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cCompleteEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cCompleteRefresh_completeKeyword_1_0 = (Keyword)cCompleteEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cForceEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cForceRefresh_forceKeyword_2_0 = (Keyword)cForceEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cFastEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cFastRefresh_fastKeyword_3_0 = (Keyword)cFastEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cNeverEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cNeverNever_refreshKeyword_4_0 = (Keyword)cNeverEnumLiteralDeclaration_4.eContents().get(0);
		
		//enum RefreshMethodType:
		//	null="null_RefreshMethodType" | complete="refresh_complete" | force="refresh_force" | fast="refresh_fast" |
		//	never="never_refresh";
		public EnumRule getRule() { return rule; }

		//null="null_RefreshMethodType" | complete="refresh_complete" | force="refresh_force" | fast="refresh_fast" |
		//never="never_refresh"
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_RefreshMethodType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_RefreshMethodType"
		public Keyword getNullNull_RefreshMethodTypeKeyword_0_0() { return cNullNull_RefreshMethodTypeKeyword_0_0; }

		//complete="refresh_complete"
		public EnumLiteralDeclaration getCompleteEnumLiteralDeclaration_1() { return cCompleteEnumLiteralDeclaration_1; }

		//"refresh_complete"
		public Keyword getCompleteRefresh_completeKeyword_1_0() { return cCompleteRefresh_completeKeyword_1_0; }

		//force="refresh_force"
		public EnumLiteralDeclaration getForceEnumLiteralDeclaration_2() { return cForceEnumLiteralDeclaration_2; }

		//"refresh_force"
		public Keyword getForceRefresh_forceKeyword_2_0() { return cForceRefresh_forceKeyword_2_0; }

		//fast="refresh_fast"
		public EnumLiteralDeclaration getFastEnumLiteralDeclaration_3() { return cFastEnumLiteralDeclaration_3; }

		//"refresh_fast"
		public Keyword getFastRefresh_fastKeyword_3_0() { return cFastRefresh_fastKeyword_3_0; }

		//never="never_refresh"
		public EnumLiteralDeclaration getNeverEnumLiteralDeclaration_4() { return cNeverEnumLiteralDeclaration_4; }

		//"never_refresh"
		public Keyword getNeverNever_refreshKeyword_4_0() { return cNeverNever_refreshKeyword_4_0; }
	}

	public class NewValuesTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "NewValuesType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_NewValuesTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cIncludingEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cIncludingIncludingKeyword_1_0 = (Keyword)cIncludingEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cExcludingEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cExcludingExcludingKeyword_2_0 = (Keyword)cExcludingEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum NewValuesType:
		//	null="null_NewValuesType" | including | excluding;
		public EnumRule getRule() { return rule; }

		//null="null_NewValuesType" | including | excluding
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_NewValuesType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_NewValuesType"
		public Keyword getNullNull_NewValuesTypeKeyword_0_0() { return cNullNull_NewValuesTypeKeyword_0_0; }

		//including
		public EnumLiteralDeclaration getIncludingEnumLiteralDeclaration_1() { return cIncludingEnumLiteralDeclaration_1; }

		//"including"
		public Keyword getIncludingIncludingKeyword_1_0() { return cIncludingIncludingKeyword_1_0; }

		//excluding
		public EnumLiteralDeclaration getExcludingEnumLiteralDeclaration_2() { return cExcludingEnumLiteralDeclaration_2; }

		//"excluding"
		public Keyword getExcludingExcludingKeyword_2_0() { return cExcludingExcludingKeyword_2_0; }
	}

	public class SynchronousTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "SynchronousType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_SynchronousTypeKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cAsynchronousEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cAsynchronousAsynchronousKeyword_1_0 = (Keyword)cAsynchronousEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cSynchronousEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cSynchronousSynchronousKeyword_2_0 = (Keyword)cSynchronousEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum SynchronousType:
		//	null="null_SynchronousType" | asynchronous | synchronous;
		public EnumRule getRule() { return rule; }

		//null="null_SynchronousType" | asynchronous | synchronous
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_SynchronousType"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_SynchronousType"
		public Keyword getNullNull_SynchronousTypeKeyword_0_0() { return cNullNull_SynchronousTypeKeyword_0_0; }

		//asynchronous
		public EnumLiteralDeclaration getAsynchronousEnumLiteralDeclaration_1() { return cAsynchronousEnumLiteralDeclaration_1; }

		//"asynchronous"
		public Keyword getAsynchronousAsynchronousKeyword_1_0() { return cAsynchronousAsynchronousKeyword_1_0; }

		//synchronous
		public EnumLiteralDeclaration getSynchronousEnumLiteralDeclaration_2() { return cSynchronousEnumLiteralDeclaration_2; }

		//"synchronous"
		public Keyword getSynchronousSynchronousKeyword_2_0() { return cSynchronousSynchronousKeyword_2_0; }
	}

	public class GenNameRulePartElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "GenNameRulePart");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNullEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNullNull_GenNameRulePartKeyword_0_0 = (Keyword)cNullEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cColumn_nameEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cColumn_nameColumnNameKeyword_1_0 = (Keyword)cColumn_nameEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cTable_nameEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cTable_nameTableNameKeyword_2_0 = (Keyword)cTable_nameEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cAlias_nameEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cAlias_nameAliasNameKeyword_3_0 = (Keyword)cAlias_nameEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cColumn_domain_nameEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cColumn_domain_nameColumnDomainNameKeyword_4_0 = (Keyword)cColumn_domain_nameEnumLiteralDeclaration_4.eContents().get(0);
		private final EnumLiteralDeclaration cRemove_nextEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
		private final Keyword cRemove_nextRemoveNextKeyword_5_0 = (Keyword)cRemove_nextEnumLiteralDeclaration_5.eContents().get(0);
		
		//enum GenNameRulePart:
		//	null="null_GenNameRulePart" | column_name="column-name" | table_name="table-name" | alias_name="alias-name" |
		//	column_domain_name="column-domain-name" | remove_next="remove-next";
		public EnumRule getRule() { return rule; }

		//null="null_GenNameRulePart" | column_name="column-name" | table_name="table-name" | alias_name="alias-name" |
		//column_domain_name="column-domain-name" | remove_next="remove-next"
		public Alternatives getAlternatives() { return cAlternatives; }

		//null="null_GenNameRulePart"
		public EnumLiteralDeclaration getNullEnumLiteralDeclaration_0() { return cNullEnumLiteralDeclaration_0; }

		//"null_GenNameRulePart"
		public Keyword getNullNull_GenNameRulePartKeyword_0_0() { return cNullNull_GenNameRulePartKeyword_0_0; }

		//column_name="column-name"
		public EnumLiteralDeclaration getColumn_nameEnumLiteralDeclaration_1() { return cColumn_nameEnumLiteralDeclaration_1; }

		//"column-name"
		public Keyword getColumn_nameColumnNameKeyword_1_0() { return cColumn_nameColumnNameKeyword_1_0; }

		//table_name="table-name"
		public EnumLiteralDeclaration getTable_nameEnumLiteralDeclaration_2() { return cTable_nameEnumLiteralDeclaration_2; }

		//"table-name"
		public Keyword getTable_nameTableNameKeyword_2_0() { return cTable_nameTableNameKeyword_2_0; }

		//alias_name="alias-name"
		public EnumLiteralDeclaration getAlias_nameEnumLiteralDeclaration_3() { return cAlias_nameEnumLiteralDeclaration_3; }

		//"alias-name"
		public Keyword getAlias_nameAliasNameKeyword_3_0() { return cAlias_nameAliasNameKeyword_3_0; }

		//column_domain_name="column-domain-name"
		public EnumLiteralDeclaration getColumn_domain_nameEnumLiteralDeclaration_4() { return cColumn_domain_nameEnumLiteralDeclaration_4; }

		//"column-domain-name"
		public Keyword getColumn_domain_nameColumnDomainNameKeyword_4_0() { return cColumn_domain_nameColumnDomainNameKeyword_4_0; }

		//remove_next="remove-next"
		public EnumLiteralDeclaration getRemove_nextEnumLiteralDeclaration_5() { return cRemove_nextEnumLiteralDeclaration_5; }

		//"remove-next"
		public Keyword getRemove_nextRemoveNextKeyword_5_0() { return cRemove_nextRemoveNextKeyword_5_0; }
	}
	
	private ModelElements pModel;
	private ModelElementElements pModelElement;
	private TableElements pTable;
	private TablePartitioningElements pTablePartitioning;
	private RangePartitionsElements pRangePartitions;
	private TableSubPartElements pTableSubPart;
	private RangeSubPartsElements pRangeSubParts;
	private ListSubPartsElements pListSubParts;
	private HashSubPartsElements pHashSubParts;
	private RangeSubPartElements pRangeSubPart;
	private ListSubPartElements pListSubPart;
	private SubSubPartElements pSubSubPart;
	private RangeSubSubPartElements pRangeSubSubPart;
	private ListSubSubPartElements pListSubSubPart;
	private HashSubSubPartElements pHashSubSubPart;
	private RangePartitionElements pRangePartition;
	private RangePartitionValueElements pRangePartitionValue;
	private HashPartitionsElements pHashPartitions;
	private HashPartitionElements pHashPartition;
	private RefPartitionsElements pRefPartitions;
	private RefPartitionElements pRefPartition;
	private ListPartitionsElements pListPartitions;
	private ListPartitionElements pListPartition;
	private ListPartitionValueElements pListPartitionValue;
	private LobStorageElements pLobStorage;
	private VarrayStorageElements pVarrayStorage;
	private NestedTableStorageElements pNestedTableStorage;
	private LobStorageParametersElements pLobStorageParameters;
	private LobStorageTypeElements unknownRuleLobStorageType;
	private LobDeduplicateTypeElements unknownRuleLobDeduplicateType;
	private ColumnElements pColumn;
	private DataTypeElements unknownRuleDataType;
	private ConstraintElements pConstraint;
	private IndexOrUniqueKeyElements pIndexOrUniqueKey;
	private ForeignKeyElements pForeignKey;
	private PrimaryKeyElements pPrimaryKey;
	private UniqueKeyElements pUniqueKey;
	private IndexElements pIndex;
	private IndexExTableElements pIndexExTable;
	private FkDeleteRuleTypeElements unknownRuleFkDeleteRuleType;
	private DeferrTypeElements unknownRuleDeferrType;
	private CharTypeElements unknownRuleCharType;
	private LoggingTypeElements unknownRuleLoggingType;
	private EnableTypeElements unknownRuleEnableType;
	private ParallelTypeElements unknownRuleParallelType;
	private IndexGlobalTypeElements unknownRuleIndexGlobalType;
	private CommentObjectTypeElements unknownRuleCommentObjectType;
	private PermanentnessTypeElements unknownRulePermanentnessType;
	private PermanentnessTransactionTypeElements unknownRulePermanentnessTransactionType;
	private CycleTypeElements unknownRuleCycleType;
	private OrderTypeElements unknownRuleOrderType;
	private CompressForTypeElements unknownRuleCompressForType;
	private LobCompressForTypeElements unknownRuleLobCompressForType;
	private CompressTypeElements unknownRuleCompressType;
	private BuildModeTypeElements unknownRuleBuildModeType;
	private RefreshModeTypeElements unknownRuleRefreshModeType;
	private RefreshMethodTypeElements unknownRuleRefreshMethodType;
	private ColumnRefElements pColumnRef;
	private SequenceElements pSequence;
	private ColumnIdentityElements pColumnIdentity;
	private MviewElements pMview;
	private NewValuesTypeElements unknownRuleNewValuesType;
	private SynchronousTypeElements unknownRuleSynchronousType;
	private MviewLogElements pMviewLog;
	private CommentElements pComment;
	private InlineCommentElements pInlineComment;
	private DBNAME_WITH_SCHEMAElements pDBNAME_WITH_SCHEMA;
	private NULLABLE_INTElements pNULLABLE_INT;
	private SIGNED_BIGINTElements pSIGNED_BIGINT;
	private BIGINTElements pBIGINT;
	private TerminalRule tDBNAME;
	private DomainColumnElements pDomainColumn;
	private HistoryTableElements pHistoryTable;
	private DomainElements pDomain;
	private GenNameRulePartElements unknownRuleGenNameRulePart;
	private GenNameRuleElements pGenNameRule;
	private GeneratePkElements pGeneratePk;
	private GenerateUkElements pGenerateUk;
	private GenerateIndexElements pGenerateIndex;
	private GenerateCcElements pGenerateCc;
	private GenerateFkElements pGenerateFk;
	private ColumnDomainElements pColumnDomain;
	
	private final Grammar grammar;

	private TerminalsGrammarAccess gaTerminals;

	@Inject
	public OrcasDslGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("de.opitzconsulting.OrcasDsl".equals(grammar.getName())) {
				return grammar;
			}
			List grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	
	public Grammar getGrammar() {
		return grammar;
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//Model:
	//	model_elements+=ModelElement+;
	public ModelElements getModelAccess() {
		return (pModel != null) ? pModel : (pModel = new ModelElements());
	}
	
	public ParserRule getModelRule() {
		return getModelAccess().getRule();
	}

	//ModelElement:
	//	Table | Sequence | IndexExTable | Comment | Mview | Domain | ColumnDomain;
	public ModelElementElements getModelElementAccess() {
		return (pModelElement != null) ? pModelElement : (pModelElement = new ModelElementElements());
	}
	
	public ParserRule getModelElementRule() {
		return getModelElementAccess().getRule();
	}

	//Table:
	//	"create" ("global"? permanentness=PermanentnessType)? "table" name=DBNAME_WITH_SCHEMA ("alias" alias=DBNAME)?
	//	("domain" domain=DBNAME)? ("of" object_type=DBNAME_WITH_SCHEMA)? ("(" columns+=Column* primary_key=PrimaryKey?
	//	constraints+=Constraint* ind_uks+=IndexOrUniqueKey* foreign_keys+=ForeignKey* comments+=InlineComment* ")")? ("on"
	//	"commit" transactionControl=PermanentnessTransactionType "rows")? lobStorages+=LobStorage*
	//	varrayStorages+=VarrayStorage* nestedTableStorages+=NestedTableStorage* tablePartitioning=TablePartitioning?
	//	("tablespace" tablespace=DBNAME)? ("organization" indexOrganized?="index" ("pctthreshold" pctthreshold=NULLABLE_INT)?
	//	("including" includingColumn=DBNAME)? ("overflow" "tablespace" overflowTablespace=DBNAME)?)? ("pctfree"
	//	pctfree=NULLABLE_INT)? (compression=CompressType ("for" compressionFor=CompressForType)?)? logging=LoggingType?
	//	(parallel=ParallelType parallel_degree=INT?)? mviewLog=MviewLog? ";";
	public TableElements getTableAccess() {
		return (pTable != null) ? pTable : (pTable = new TableElements());
	}
	
	public ParserRule getTableRule() {
		return getTableAccess().getRule();
	}

	//TablePartitioning:
	//	"partition" "by" (RangePartitions | HashPartitions | ListPartitions | RefPartitions);
	public TablePartitioningElements getTablePartitioningAccess() {
		return (pTablePartitioning != null) ? pTablePartitioning : (pTablePartitioning = new TablePartitioningElements());
	}
	
	public ParserRule getTablePartitioningRule() {
		return getTablePartitioningAccess().getRule();
	}

	//RangePartitions:
	//	"range" "(" columns+=ColumnRef+ ")" ("interval" "(" intervalExpression=STRING ")")? ("("
	//	partitionList+=RangePartition+ ")" | tableSubPart=TableSubPart "(" subPartitionList+=RangeSubPart+ ")");
	public RangePartitionsElements getRangePartitionsAccess() {
		return (pRangePartitions != null) ? pRangePartitions : (pRangePartitions = new RangePartitionsElements());
	}
	
	public ParserRule getRangePartitionsRule() {
		return getRangePartitionsAccess().getRule();
	}

	//TableSubPart:
	//	"subpartition" "by" (RangeSubParts | ListSubParts | HashSubParts);
	public TableSubPartElements getTableSubPartAccess() {
		return (pTableSubPart != null) ? pTableSubPart : (pTableSubPart = new TableSubPartElements());
	}
	
	public ParserRule getTableSubPartRule() {
		return getTableSubPartAccess().getRule();
	}

	//RangeSubParts:
	//	"range" "(" columns+=ColumnRef+ ")";
	public RangeSubPartsElements getRangeSubPartsAccess() {
		return (pRangeSubParts != null) ? pRangeSubParts : (pRangeSubParts = new RangeSubPartsElements());
	}
	
	public ParserRule getRangeSubPartsRule() {
		return getRangeSubPartsAccess().getRule();
	}

	//ListSubParts:
	//	"list" "(" column=ColumnRef ")";
	public ListSubPartsElements getListSubPartsAccess() {
		return (pListSubParts != null) ? pListSubParts : (pListSubParts = new ListSubPartsElements());
	}
	
	public ParserRule getListSubPartsRule() {
		return getListSubPartsAccess().getRule();
	}

	//HashSubParts:
	//	"hash" "(" column=ColumnRef ")";
	public HashSubPartsElements getHashSubPartsAccess() {
		return (pHashSubParts != null) ? pHashSubParts : (pHashSubParts = new HashSubPartsElements());
	}
	
	public ParserRule getHashSubPartsRule() {
		return getHashSubPartsAccess().getRule();
	}

	//RangeSubPart:
	//	"partition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" "(" subPartList+=SubSubPart+ ")"
	//	","?;
	public RangeSubPartElements getRangeSubPartAccess() {
		return (pRangeSubPart != null) ? pRangeSubPart : (pRangeSubPart = new RangeSubPartElements());
	}
	
	public ParserRule getRangeSubPartRule() {
		return getRangeSubPartAccess().getRule();
	}

	//ListSubPart:
	//	"partition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" "(" subPartList+=SubSubPart+ ")" ","?;
	public ListSubPartElements getListSubPartAccess() {
		return (pListSubPart != null) ? pListSubPart : (pListSubPart = new ListSubPartElements());
	}
	
	public ParserRule getListSubPartRule() {
		return getListSubPartAccess().getRule();
	}

	//SubSubPart:
	//	RangeSubSubPart | ListSubSubPart | HashSubSubPart;
	public SubSubPartElements getSubSubPartAccess() {
		return (pSubSubPart != null) ? pSubSubPart : (pSubSubPart = new SubSubPartElements());
	}
	
	public ParserRule getSubSubPartRule() {
		return getSubSubPartAccess().getRule();
	}

	//RangeSubSubPart:
	//	"subpartition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" ("tablespace"
	//	tablespace=DBNAME)? ","?;
	public RangeSubSubPartElements getRangeSubSubPartAccess() {
		return (pRangeSubSubPart != null) ? pRangeSubSubPart : (pRangeSubSubPart = new RangeSubSubPartElements());
	}
	
	public ParserRule getRangeSubSubPartRule() {
		return getRangeSubSubPartAccess().getRule();
	}

	//ListSubSubPart:
	//	"subpartition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" ("tablespace" tablespace=DBNAME)? ","?;
	public ListSubSubPartElements getListSubSubPartAccess() {
		return (pListSubSubPart != null) ? pListSubSubPart : (pListSubSubPart = new ListSubSubPartElements());
	}
	
	public ParserRule getListSubSubPartRule() {
		return getListSubSubPartAccess().getRule();
	}

	//HashSubSubPart:
	//	"subpartition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?;
	public HashSubSubPartElements getHashSubSubPartAccess() {
		return (pHashSubSubPart != null) ? pHashSubSubPart : (pHashSubSubPart = new HashSubSubPartElements());
	}
	
	public ParserRule getHashSubSubPartRule() {
		return getHashSubSubPartAccess().getRule();
	}

	//RangePartition:
	//	"partition" name=DBNAME "values" "less" "than" "(" value+=RangePartitionValue+ ")" ("tablespace" tablespace=DBNAME)?
	//	","?;
	public RangePartitionElements getRangePartitionAccess() {
		return (pRangePartition != null) ? pRangePartition : (pRangePartition = new RangePartitionElements());
	}
	
	public ParserRule getRangePartitionRule() {
		return getRangePartitionAccess().getRule();
	}

	//RangePartitionValue:
	//	(maxvalue="maxvalue" | value=STRING) ","?;
	public RangePartitionValueElements getRangePartitionValueAccess() {
		return (pRangePartitionValue != null) ? pRangePartitionValue : (pRangePartitionValue = new RangePartitionValueElements());
	}
	
	public ParserRule getRangePartitionValueRule() {
		return getRangePartitionValueAccess().getRule();
	}

	//HashPartitions:
	//	"hash" "(" column=ColumnRef ")" "(" partitionList+=HashPartition+ ")";
	public HashPartitionsElements getHashPartitionsAccess() {
		return (pHashPartitions != null) ? pHashPartitions : (pHashPartitions = new HashPartitionsElements());
	}
	
	public ParserRule getHashPartitionsRule() {
		return getHashPartitionsAccess().getRule();
	}

	//HashPartition:
	//	"partition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?;
	public HashPartitionElements getHashPartitionAccess() {
		return (pHashPartition != null) ? pHashPartition : (pHashPartition = new HashPartitionElements());
	}
	
	public ParserRule getHashPartitionRule() {
		return getHashPartitionAccess().getRule();
	}

	//RefPartitions:
	//	"reference" "(" fkName=DBNAME ")" "(" partitionList+=RefPartition+ ")";
	public RefPartitionsElements getRefPartitionsAccess() {
		return (pRefPartitions != null) ? pRefPartitions : (pRefPartitions = new RefPartitionsElements());
	}
	
	public ParserRule getRefPartitionsRule() {
		return getRefPartitionsAccess().getRule();
	}

	//RefPartition:
	//	"partition" name=DBNAME ("tablespace" tablespace=DBNAME)? ","?;
	public RefPartitionElements getRefPartitionAccess() {
		return (pRefPartition != null) ? pRefPartition : (pRefPartition = new RefPartitionElements());
	}
	
	public ParserRule getRefPartitionRule() {
		return getRefPartitionAccess().getRule();
	}

	//ListPartitions:
	//	"list" "(" column=ColumnRef ")" ("(" partitionList+=ListPartition+ ")" | tableSubPart=TableSubPart "("
	//	subPartitionList+=ListSubPart+ ")");
	public ListPartitionsElements getListPartitionsAccess() {
		return (pListPartitions != null) ? pListPartitions : (pListPartitions = new ListPartitionsElements());
	}
	
	public ParserRule getListPartitionsRule() {
		return getListPartitionsAccess().getRule();
	}

	//ListPartition:
	//	"partition" name=DBNAME "values" "(" value+=ListPartitionValue+ ")" ("tablespace" tablespace=DBNAME)? ","?;
	public ListPartitionElements getListPartitionAccess() {
		return (pListPartition != null) ? pListPartition : (pListPartition = new ListPartitionElements());
	}
	
	public ParserRule getListPartitionRule() {
		return getListPartitionAccess().getRule();
	}

	//ListPartitionValue:
	//	(default="default" | value=STRING) ","?;
	public ListPartitionValueElements getListPartitionValueAccess() {
		return (pListPartitionValue != null) ? pListPartitionValue : (pListPartitionValue = new ListPartitionValueElements());
	}
	
	public ParserRule getListPartitionValueRule() {
		return getListPartitionValueAccess().getRule();
	}

	//LobStorage:
	//	"lob" "(" column_name=DBNAME ")" "store" "as" lobStorageType=LobStorageType? ("("
	//	lobStorageParameters=LobStorageParameters ")")?;
	public LobStorageElements getLobStorageAccess() {
		return (pLobStorage != null) ? pLobStorage : (pLobStorage = new LobStorageElements());
	}
	
	public ParserRule getLobStorageRule() {
		return getLobStorageAccess().getRule();
	}

	//VarrayStorage:
	//	"varray" column_name=DBNAME "store" "as" lobStorageType=LobStorageType "lob" ("("
	//	lobStorageParameters=LobStorageParameters ")")?;
	public VarrayStorageElements getVarrayStorageAccess() {
		return (pVarrayStorage != null) ? pVarrayStorage : (pVarrayStorage = new VarrayStorageElements());
	}
	
	public ParserRule getVarrayStorageRule() {
		return getVarrayStorageAccess().getRule();
	}

	//NestedTableStorage:
	//	"nested" "table" column_name=DBNAME "store" "as" (storage_clause=DBNAME | storage_clause_string=STRING);
	public NestedTableStorageElements getNestedTableStorageAccess() {
		return (pNestedTableStorage != null) ? pNestedTableStorage : (pNestedTableStorage = new NestedTableStorageElements());
	}
	
	public ParserRule getNestedTableStorageRule() {
		return getNestedTableStorageAccess().getRule();
	}

	//LobStorageParameters:
	//	("tablespace" tablespace=DBNAME)? lobDeduplicateType=LobDeduplicateType? (compressType=CompressType
	//	lobCompressForType=LobCompressForType?)?;
	public LobStorageParametersElements getLobStorageParametersAccess() {
		return (pLobStorageParameters != null) ? pLobStorageParameters : (pLobStorageParameters = new LobStorageParametersElements());
	}
	
	public ParserRule getLobStorageParametersRule() {
		return getLobStorageParametersAccess().getRule();
	}

	//enum LobStorageType:
	//	null="null_LobStorageType" | basicfile | securefile;
	public LobStorageTypeElements getLobStorageTypeAccess() {
		return (unknownRuleLobStorageType != null) ? unknownRuleLobStorageType : (unknownRuleLobStorageType = new LobStorageTypeElements());
	}
	
	public EnumRule getLobStorageTypeRule() {
		return getLobStorageTypeAccess().getRule();
	}

	//enum LobDeduplicateType:
	//	null="null_LobDeduplicateType" | deduplicate | keep_duplicates;
	public LobDeduplicateTypeElements getLobDeduplicateTypeAccess() {
		return (unknownRuleLobDeduplicateType != null) ? unknownRuleLobDeduplicateType : (unknownRuleLobDeduplicateType = new LobDeduplicateTypeElements());
	}
	
	public EnumRule getLobDeduplicateTypeRule() {
		return getLobDeduplicateTypeAccess().getRule();
	}

	//Column:
	//	(name=DBNAME ("domain" domain=DBNAME)? | name_string=STRING) data_type=DataType? ("(" precision=INT ("," scale=INT)?
	//	byteorchar=CharType? ")")? unsigned?="unsigned"? with_time_zone="with_time_zone"? ("type" object_type=STRING)?
	//	("default" default_value=STRING | "as" "(" default_value=STRING ")" virtual="virtual")? ("defaultname"
	//	default_name=DBNAME)? identity=ColumnIdentity? (notnull?="not" "null")? ","?;
	public ColumnElements getColumnAccess() {
		return (pColumn != null) ? pColumn : (pColumn = new ColumnElements());
	}
	
	public ParserRule getColumnRule() {
		return getColumnAccess().getRule();
	}

	//enum DataType:
	//	null="null_DataType" | number | blob | clob | nclob | varchar2 | nvarchar2 | char | date | xmltype | timestamp |
	//	rowid | raw | long_raw | float | long | object | tinyint | smallint | mediumint | int | bigint | bit | urowid |
	//	boolean;
	public DataTypeElements getDataTypeAccess() {
		return (unknownRuleDataType != null) ? unknownRuleDataType : (unknownRuleDataType = new DataTypeElements());
	}
	
	public EnumRule getDataTypeRule() {
		return getDataTypeAccess().getRule();
	}

	//Constraint:
	//	"constraint" consName=DBNAME "check" "(" rule=STRING ")" ("deferrable" "initially" deferrtype=DeferrType)?
	//	status=EnableType? ","?;
	public ConstraintElements getConstraintAccess() {
		return (pConstraint != null) ? pConstraint : (pConstraint = new ConstraintElements());
	}
	
	public ParserRule getConstraintRule() {
		return getConstraintAccess().getRule();
	}

	//IndexOrUniqueKey:
	//	Index | UniqueKey;
	public IndexOrUniqueKeyElements getIndexOrUniqueKeyAccess() {
		return (pIndexOrUniqueKey != null) ? pIndexOrUniqueKey : (pIndexOrUniqueKey = new IndexOrUniqueKeyElements());
	}
	
	public ParserRule getIndexOrUniqueKeyRule() {
		return getIndexOrUniqueKeyAccess().getRule();
	}

	//ForeignKey:
	//	"constraint" consName=DBNAME "foreign" "key" ("(" srcColumns+=ColumnRef* ")")? "references"
	//	destTable=DBNAME_WITH_SCHEMA ("(" destColumns+=ColumnRef+ ")")? ("on" "delete" delete_rule=FkDeleteRuleType)?
	//	("deferrable" "initially" deferrtype=DeferrType)? status=EnableType? ","?;
	public ForeignKeyElements getForeignKeyAccess() {
		return (pForeignKey != null) ? pForeignKey : (pForeignKey = new ForeignKeyElements());
	}
	
	public ParserRule getForeignKeyRule() {
		return getForeignKeyAccess().getRule();
	}

	//PrimaryKey:
	//	("constraint" consName=DBNAME)? "primary" "key" "(" pk_columns+=ColumnRef+ ")" status=EnableType? ("using" "index"
	//	reverse="reverse"? ("tablespace" tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)? ","?;
	public PrimaryKeyElements getPrimaryKeyAccess() {
		return (pPrimaryKey != null) ? pPrimaryKey : (pPrimaryKey = new PrimaryKeyElements());
	}
	
	public ParserRule getPrimaryKeyRule() {
		return getPrimaryKeyAccess().getRule();
	}

	//UniqueKey:
	//	"constraint" consName=DBNAME "unique" "(" uk_columns+=ColumnRef+ ")" ("using" "index" ("tablespace"
	//	tablespace=DBNAME)? indexname=DBNAME_WITH_SCHEMA?)? status=EnableType? ","?;
	public UniqueKeyElements getUniqueKeyAccess() {
		return (pUniqueKey != null) ? pUniqueKey : (pUniqueKey = new UniqueKeyElements());
	}
	
	public ParserRule getUniqueKeyRule() {
		return getUniqueKeyAccess().getRule();
	}

	//Index:
	//	"index" consName=DBNAME_WITH_SCHEMA ("(" index_columns+=ColumnRef+ ")" ("domain_index"
	//	domain_index_expression=STRING)? | function_based_expression=STRING) bitmap="bitmap"? unique="unique"?
	//	logging=LoggingType? ("tablespace" tablespace=DBNAME)? compression=CompressType? (parallel=ParallelType
	//	parallel_degree=INT?)? global=IndexGlobalType? ","?;
	public IndexElements getIndexAccess() {
		return (pIndex != null) ? pIndex : (pIndex = new IndexElements());
	}
	
	public ParserRule getIndexRule() {
		return getIndexAccess().getRule();
	}

	//IndexExTable:
	//	"create" (uniqueness="unique" | uniqueness="nonunique")? bitmap="bitmap"? "index" index_name=DBNAME_WITH_SCHEMA "on"?
	//	table_name=DBNAME ("(" index_columns+=ColumnRef+ ")" ("domain_index" domain_index_expression=STRING)? |
	//	function_based_expression=STRING) logging=LoggingType? ("tablespace" tablespace=DBNAME)? compression=CompressType?
	//	(parallel=ParallelType parallel_degree=INT?)? global=IndexGlobalType? ";";
	public IndexExTableElements getIndexExTableAccess() {
		return (pIndexExTable != null) ? pIndexExTable : (pIndexExTable = new IndexExTableElements());
	}
	
	public ParserRule getIndexExTableRule() {
		return getIndexExTableAccess().getRule();
	}

	//enum FkDeleteRuleType:
	//	null="null_FkDeleteRuleType" | cascade | no_action | set_null;
	public FkDeleteRuleTypeElements getFkDeleteRuleTypeAccess() {
		return (unknownRuleFkDeleteRuleType != null) ? unknownRuleFkDeleteRuleType : (unknownRuleFkDeleteRuleType = new FkDeleteRuleTypeElements());
	}
	
	public EnumRule getFkDeleteRuleTypeRule() {
		return getFkDeleteRuleTypeAccess().getRule();
	}

	//enum DeferrType:
	//	null="null_DeferrType" | immediate | deferred;
	public DeferrTypeElements getDeferrTypeAccess() {
		return (unknownRuleDeferrType != null) ? unknownRuleDeferrType : (unknownRuleDeferrType = new DeferrTypeElements());
	}
	
	public EnumRule getDeferrTypeRule() {
		return getDeferrTypeAccess().getRule();
	}

	//enum CharType:
	//	null="null_CharType" | byte_upper="BYTE" | char_upper="CHAR" | byte | char;
	public CharTypeElements getCharTypeAccess() {
		return (unknownRuleCharType != null) ? unknownRuleCharType : (unknownRuleCharType = new CharTypeElements());
	}
	
	public EnumRule getCharTypeRule() {
		return getCharTypeAccess().getRule();
	}

	//enum LoggingType:
	//	null="null_LoggingType" | logging | nologging;
	public LoggingTypeElements getLoggingTypeAccess() {
		return (unknownRuleLoggingType != null) ? unknownRuleLoggingType : (unknownRuleLoggingType = new LoggingTypeElements());
	}
	
	public EnumRule getLoggingTypeRule() {
		return getLoggingTypeAccess().getRule();
	}

	//enum EnableType:
	//	null="null_EnableType" | enable | disable;
	public EnableTypeElements getEnableTypeAccess() {
		return (unknownRuleEnableType != null) ? unknownRuleEnableType : (unknownRuleEnableType = new EnableTypeElements());
	}
	
	public EnumRule getEnableTypeRule() {
		return getEnableTypeAccess().getRule();
	}

	//enum ParallelType:
	//	null="null_ParallelType" | parallel | noparallel;
	public ParallelTypeElements getParallelTypeAccess() {
		return (unknownRuleParallelType != null) ? unknownRuleParallelType : (unknownRuleParallelType = new ParallelTypeElements());
	}
	
	public EnumRule getParallelTypeRule() {
		return getParallelTypeAccess().getRule();
	}

	//enum IndexGlobalType:
	//	null="null_IndexGlobalType" | local | global;
	public IndexGlobalTypeElements getIndexGlobalTypeAccess() {
		return (unknownRuleIndexGlobalType != null) ? unknownRuleIndexGlobalType : (unknownRuleIndexGlobalType = new IndexGlobalTypeElements());
	}
	
	public EnumRule getIndexGlobalTypeRule() {
		return getIndexGlobalTypeAccess().getRule();
	}

	//enum CommentObjectType:
	//	null="null_CommentObjectType" | table | column;
	public CommentObjectTypeElements getCommentObjectTypeAccess() {
		return (unknownRuleCommentObjectType != null) ? unknownRuleCommentObjectType : (unknownRuleCommentObjectType = new CommentObjectTypeElements());
	}
	
	public EnumRule getCommentObjectTypeRule() {
		return getCommentObjectTypeAccess().getRule();
	}

	//enum PermanentnessType:
	//	null="null_PermanentnessType" | global_temporary="temporary" | permanent;
	public PermanentnessTypeElements getPermanentnessTypeAccess() {
		return (unknownRulePermanentnessType != null) ? unknownRulePermanentnessType : (unknownRulePermanentnessType = new PermanentnessTypeElements());
	}
	
	public EnumRule getPermanentnessTypeRule() {
		return getPermanentnessTypeAccess().getRule();
	}

	//enum PermanentnessTransactionType:
	//	null="null_PermanentnessTransactionType" | on_commit_delete="delete" | on_commit_preserve="preserve";
	public PermanentnessTransactionTypeElements getPermanentnessTransactionTypeAccess() {
		return (unknownRulePermanentnessTransactionType != null) ? unknownRulePermanentnessTransactionType : (unknownRulePermanentnessTransactionType = new PermanentnessTransactionTypeElements());
	}
	
	public EnumRule getPermanentnessTransactionTypeRule() {
		return getPermanentnessTransactionTypeAccess().getRule();
	}

	//enum CycleType:
	//	null="null_CycleType" | cycle | nocycle;
	public CycleTypeElements getCycleTypeAccess() {
		return (unknownRuleCycleType != null) ? unknownRuleCycleType : (unknownRuleCycleType = new CycleTypeElements());
	}
	
	public EnumRule getCycleTypeRule() {
		return getCycleTypeAccess().getRule();
	}

	//enum OrderType:
	//	null="null_OrderType" | order | noorder;
	public OrderTypeElements getOrderTypeAccess() {
		return (unknownRuleOrderType != null) ? unknownRuleOrderType : (unknownRuleOrderType = new OrderTypeElements());
	}
	
	public EnumRule getOrderTypeRule() {
		return getOrderTypeAccess().getRule();
	}

	//enum CompressForType:
	//	null="null_CompressForType" | all="all_operations" | direct_load="direct_load_operations" | query_low | query_high |
	//	archive_low | archive_high;
	public CompressForTypeElements getCompressForTypeAccess() {
		return (unknownRuleCompressForType != null) ? unknownRuleCompressForType : (unknownRuleCompressForType = new CompressForTypeElements());
	}
	
	public EnumRule getCompressForTypeRule() {
		return getCompressForTypeAccess().getRule();
	}

	//enum LobCompressForType:
	//	null="null_LobCompressForType" | high | medium | low;
	public LobCompressForTypeElements getLobCompressForTypeAccess() {
		return (unknownRuleLobCompressForType != null) ? unknownRuleLobCompressForType : (unknownRuleLobCompressForType = new LobCompressForTypeElements());
	}
	
	public EnumRule getLobCompressForTypeRule() {
		return getLobCompressForTypeAccess().getRule();
	}

	//enum CompressType:
	//	null="null_CompressType" | nocompress | compress;
	public CompressTypeElements getCompressTypeAccess() {
		return (unknownRuleCompressType != null) ? unknownRuleCompressType : (unknownRuleCompressType = new CompressTypeElements());
	}
	
	public EnumRule getCompressTypeRule() {
		return getCompressTypeAccess().getRule();
	}

	//enum BuildModeType:
	//	null="null_BuildModeType" | immediate | deferred | prebuilt;
	public BuildModeTypeElements getBuildModeTypeAccess() {
		return (unknownRuleBuildModeType != null) ? unknownRuleBuildModeType : (unknownRuleBuildModeType = new BuildModeTypeElements());
	}
	
	public EnumRule getBuildModeTypeRule() {
		return getBuildModeTypeAccess().getRule();
	}

	//enum RefreshModeType:
	//	null="null_RefreshModeType" | demand | commit;
	public RefreshModeTypeElements getRefreshModeTypeAccess() {
		return (unknownRuleRefreshModeType != null) ? unknownRuleRefreshModeType : (unknownRuleRefreshModeType = new RefreshModeTypeElements());
	}
	
	public EnumRule getRefreshModeTypeRule() {
		return getRefreshModeTypeAccess().getRule();
	}

	//enum RefreshMethodType:
	//	null="null_RefreshMethodType" | complete="refresh_complete" | force="refresh_force" | fast="refresh_fast" |
	//	never="never_refresh";
	public RefreshMethodTypeElements getRefreshMethodTypeAccess() {
		return (unknownRuleRefreshMethodType != null) ? unknownRuleRefreshMethodType : (unknownRuleRefreshMethodType = new RefreshMethodTypeElements());
	}
	
	public EnumRule getRefreshMethodTypeRule() {
		return getRefreshMethodTypeAccess().getRule();
	}

	//ColumnRef:
	//	(column_name=DBNAME | column_name_string=STRING) ","?;
	public ColumnRefElements getColumnRefAccess() {
		return (pColumnRef != null) ? pColumnRef : (pColumnRef = new ColumnRefElements());
	}
	
	public ParserRule getColumnRefRule() {
		return getColumnRefAccess().getRule();
	}

	//Sequence:
	//	"create" "sequence" sequence_name=DBNAME_WITH_SCHEMA ("start" "with" startwith=SIGNED_BIGINT)? ("increment" "by"
	//	increment_by=SIGNED_BIGINT)? ("maxvalue" maxvalue=SIGNED_BIGINT)? ("minvalue" minvalue=SIGNED_BIGINT)?
	//	cycle=CycleType? ("cache" cache=BIGINT)? order=OrderType? ("orcas_ext_max_value_select" max_value_select=STRING)?
	//	";";
	public SequenceElements getSequenceAccess() {
		return (pSequence != null) ? pSequence : (pSequence = new SequenceElements());
	}
	
	public ParserRule getSequenceRule() {
		return getSequenceAccess().getRule();
	}

	//ColumnIdentity:
	//	"generated" (always="always" | "by" by_default="default" ("on" on_null="null")?) "as" "identity" ("(" ("increment"
	//	"by" increment_by=INT)? ("maxvalue" maxvalue=INT)? ("minvalue" minvalue=INT)? cycle=CycleType? ("cache" cache=INT)?
	//	order=OrderType? ")")?;
	public ColumnIdentityElements getColumnIdentityAccess() {
		return (pColumnIdentity != null) ? pColumnIdentity : (pColumnIdentity = new ColumnIdentityElements());
	}
	
	public ParserRule getColumnIdentityRule() {
		return getColumnIdentityAccess().getRule();
	}

	//Mview:
	//	"create" "materialized" "view" mview_name=DBNAME_WITH_SCHEMA ("(" mview_columns+=ColumnRef+ ")")? ("tablespace"
	//	tablespace=DBNAME)? (compression=CompressType ("for" compressionFor=CompressForType)?)? (parallel=ParallelType
	//	parallel_degree=INT?)? buildMode=BuildModeType? (refreshMethod=RefreshMethodType ("on" refreshMode=RefreshModeType)?
	//	("with" (refreshWithPrimaryKey="primary" "key" | refreshWithPrimaryKey="rowid"))?)? (queryRewrite=EnableType "query"
	//	"rewrite")? ("as" viewSelectCLOB=STRING) ";";
	public MviewElements getMviewAccess() {
		return (pMview != null) ? pMview : (pMview = new MviewElements());
	}
	
	public ParserRule getMviewRule() {
		return getMviewAccess().getRule();
	}

	//enum NewValuesType:
	//	null="null_NewValuesType" | including | excluding;
	public NewValuesTypeElements getNewValuesTypeAccess() {
		return (unknownRuleNewValuesType != null) ? unknownRuleNewValuesType : (unknownRuleNewValuesType = new NewValuesTypeElements());
	}
	
	public EnumRule getNewValuesTypeRule() {
		return getNewValuesTypeAccess().getRule();
	}

	//enum SynchronousType:
	//	null="null_SynchronousType" | asynchronous | synchronous;
	public SynchronousTypeElements getSynchronousTypeAccess() {
		return (unknownRuleSynchronousType != null) ? unknownRuleSynchronousType : (unknownRuleSynchronousType = new SynchronousTypeElements());
	}
	
	public EnumRule getSynchronousTypeRule() {
		return getSynchronousTypeAccess().getRule();
	}

	//MviewLog:
	//	"materialized" "view" "log" ("tablespace" tablespace=DBNAME)? (parallel=ParallelType parallel_degree=INT?)?
	//	(newValues=NewValuesType "new" "values")? ("with" (primaryKey="primary" "key" ","?)? (rowid="rowid" ","?)?
	//	(withSequence="sequence" ","?)? ("(" columns+=ColumnRef+ ")" ","?)? commitScn="commit_scn"?)? (purge="purge"
	//	("immediate" synchronous=SynchronousType?)? ("start" "with" startWith=STRING)? ("next" next=STRING)? ("repeat"
	//	"interval" repeatInterval=INT)?)?;
	public MviewLogElements getMviewLogAccess() {
		return (pMviewLog != null) ? pMviewLog : (pMviewLog = new MviewLogElements());
	}
	
	public ParserRule getMviewLogRule() {
		return getMviewLogAccess().getRule();
	}

	//Comment:
	//	"comment" "on" comment_object=CommentObjectType table_name=DBNAME ("." column_name=DBNAME)? "is" comment=STRING ";";
	public CommentElements getCommentAccess() {
		return (pComment != null) ? pComment : (pComment = new CommentElements());
	}
	
	public ParserRule getCommentRule() {
		return getCommentAccess().getRule();
	}

	//InlineComment:
	//	"comment" "on" comment_object=CommentObjectType (column_name=DBNAME | column_name_string=STRING)? "is" comment=STRING
	//	";";
	public InlineCommentElements getInlineCommentAccess() {
		return (pInlineComment != null) ? pInlineComment : (pInlineComment = new InlineCommentElements());
	}
	
	public ParserRule getInlineCommentRule() {
		return getInlineCommentAccess().getRule();
	}

	//DBNAME_WITH_SCHEMA:
	//	DBNAME ("." DBNAME)?;
	public DBNAME_WITH_SCHEMAElements getDBNAME_WITH_SCHEMAAccess() {
		return (pDBNAME_WITH_SCHEMA != null) ? pDBNAME_WITH_SCHEMA : (pDBNAME_WITH_SCHEMA = new DBNAME_WITH_SCHEMAElements());
	}
	
	public ParserRule getDBNAME_WITH_SCHEMARule() {
		return getDBNAME_WITH_SCHEMAAccess().getRule();
	}

	//NULLABLE_INT returns ecore::EIntegerObject:
	//	INT;
	public NULLABLE_INTElements getNULLABLE_INTAccess() {
		return (pNULLABLE_INT != null) ? pNULLABLE_INT : (pNULLABLE_INT = new NULLABLE_INTElements());
	}
	
	public ParserRule getNULLABLE_INTRule() {
		return getNULLABLE_INTAccess().getRule();
	}

	//SIGNED_BIGINT returns ecore::EBigInteger:
	//	"-"? INT;
	public SIGNED_BIGINTElements getSIGNED_BIGINTAccess() {
		return (pSIGNED_BIGINT != null) ? pSIGNED_BIGINT : (pSIGNED_BIGINT = new SIGNED_BIGINTElements());
	}
	
	public ParserRule getSIGNED_BIGINTRule() {
		return getSIGNED_BIGINTAccess().getRule();
	}

	//BIGINT returns ecore::EBigInteger:
	//	INT;
	public BIGINTElements getBIGINTAccess() {
		return (pBIGINT != null) ? pBIGINT : (pBIGINT = new BIGINTElements());
	}
	
	public ParserRule getBIGINTRule() {
		return getBIGINTAccess().getRule();
	}

	//terminal DBNAME:
	//	("A".."Z" | "a".."z") ("A".."Z" | "a".."z" | "_" | "0".."9" | "#" | "$")*;
	public TerminalRule getDBNAMERule() {
		return (tDBNAME != null) ? tDBNAME : (tDBNAME = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "DBNAME"));
	} 

	//DomainColumn:
	//	"add" "column" append_last?="append_last"? "column-name" "(" columnNameRules+=GenNameRule* ")" "(" column=Column ")"
	//	","?;
	public DomainColumnElements getDomainColumnAccess() {
		return (pDomainColumn != null) ? pDomainColumn : (pDomainColumn = new DomainColumnElements());
	}
	
	public ParserRule getDomainColumnRule() {
		return getDomainColumnAccess().getRule();
	}

	//HistoryTable:
	//	"add" "history-table" "(" "table-name" "(" tableNameRules+=GenNameRule* ")" "alias-name" "("
	//	aliasNameRules+=GenNameRule* ")" "primary-key-mode" ("append" "(" appendToPkDomain=DBNAME ")" | "remove") ("domain"
	//	domain=DBNAME)? ")";
	public HistoryTableElements getHistoryTableAccess() {
		return (pHistoryTable != null) ? pHistoryTable : (pHistoryTable = new HistoryTableElements());
	}
	
	public ParserRule getHistoryTableRule() {
		return getHistoryTableAccess().getRule();
	}

	//Domain:
	//	"define" "table" "domain" name=DBNAME ("extends" extends=DBNAME)? "(" columns+=DomainColumn*
	//	historyTable=HistoryTable? ")" ";";
	public DomainElements getDomainAccess() {
		return (pDomain != null) ? pDomain : (pDomain = new DomainElements());
	}
	
	public ParserRule getDomainRule() {
		return getDomainAccess().getRule();
	}

	//enum GenNameRulePart:
	//	null="null_GenNameRulePart" | column_name="column-name" | table_name="table-name" | alias_name="alias-name" |
	//	column_domain_name="column-domain-name" | remove_next="remove-next";
	public GenNameRulePartElements getGenNameRulePartAccess() {
		return (unknownRuleGenNameRulePart != null) ? unknownRuleGenNameRulePart : (unknownRuleGenNameRulePart = new GenNameRulePartElements());
	}
	
	public EnumRule getGenNameRulePartRule() {
		return getGenNameRulePartAccess().getRule();
	}

	//GenNameRule:
	//	(constant_name=STRING | constant_part=GenNameRulePart ("regexp" regexp=STRING ("replace" replace=STRING)?)?) "||"?;
	public GenNameRuleElements getGenNameRuleAccess() {
		return (pGenNameRule != null) ? pGenNameRule : (pGenNameRule = new GenNameRuleElements());
	}
	
	public ParserRule getGenNameRuleRule() {
		return getGenNameRuleAccess().getRule();
	}

	//GeneratePk:
	//	"generate-primary-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ("sequence-name" "("
	//	sequenceNameRules+=GenNameRule* ")")? ")";
	public GeneratePkElements getGeneratePkAccess() {
		return (pGeneratePk != null) ? pGeneratePk : (pGeneratePk = new GeneratePkElements());
	}
	
	public ParserRule getGeneratePkRule() {
		return getGeneratePkAccess().getRule();
	}

	//GenerateUk:
	//	"generate-unique-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ")";
	public GenerateUkElements getGenerateUkAccess() {
		return (pGenerateUk != null) ? pGenerateUk : (pGenerateUk = new GenerateUkElements());
	}
	
	public ParserRule getGenerateUkRule() {
		return getGenerateUkAccess().getRule();
	}

	//GenerateIndex:
	//	"generate-index" "(" "index-name" "(" indexNameRules+=GenNameRule* ")" ")";
	public GenerateIndexElements getGenerateIndexAccess() {
		return (pGenerateIndex != null) ? pGenerateIndex : (pGenerateIndex = new GenerateIndexElements());
	}
	
	public ParserRule getGenerateIndexRule() {
		return getGenerateIndexAccess().getRule();
	}

	//GenerateCc:
	//	"generate-check-constraint" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" "check-rule" "("
	//	checkRuleNameRules+=GenNameRule* ")" ")";
	public GenerateCcElements getGenerateCcAccess() {
		return (pGenerateCc != null) ? pGenerateCc : (pGenerateCc = new GenerateCcElements());
	}
	
	public ParserRule getGenerateCcRule() {
		return getGenerateCcAccess().getRule();
	}

	//GenerateFk:
	//	"generate-foreign-key" "(" "constraint-name" "(" constraintNameRules+=GenNameRule* ")" ("pk-column-name" "("
	//	pkColumnNameRules+=GenNameRule* ")")? ("alias-name" "(" aliasNameRules+=GenNameRule* ")")? ("table-name" "("
	//	tableNameRules+=GenNameRule* ")")? ("on" "delete" delete_rule=FkDeleteRuleType)? ")";
	public GenerateFkElements getGenerateFkAccess() {
		return (pGenerateFk != null) ? pGenerateFk : (pGenerateFk = new GenerateFkElements());
	}
	
	public ParserRule getGenerateFkRule() {
		return getGenerateFkAccess().getRule();
	}

	//ColumnDomain:
	//	"define" "column" "domain" name=DBNAME generatePk=GeneratePk? generateUk=GenerateUk? generateIndex=GenerateIndex?
	//	generateCc=GenerateCc? generateFk=GenerateFk? "(" data_type=DataType ("(" precision=INT ("," scale=INT)?
	//	byteorchar=CharType? ")")? unsigned?="unsigned"? ("default" default_value=STRING)? identity=ColumnIdentity?
	//	notnull?="not"? "null"* ")" ";";
	public ColumnDomainElements getColumnDomainAccess() {
		return (pColumnDomain != null) ? pColumnDomain : (pColumnDomain = new ColumnDomainElements());
	}
	
	public ParserRule getColumnDomainRule() {
		return getColumnDomainAccess().getRule();
	}

	//terminal ID:
	//	"^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	} 

	//terminal INT returns ecore::EInt:
	//	"0".."9"+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	} 

	//terminal STRING:
	//	"\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" |
	//	"n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	"/ *"->"* /";
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	(" " | "\t" | "\r" | "\n")+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy