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

io.pelle.mango.dsl.ui.contentassist.antlr.internal.InternalMango.g Maven / Gradle / Ivy

There is a newer version: 0.0.12-FINAL
Show newest version
/*
* generated by Xtext
*/
grammar InternalMango;

options {
	superClass=AbstractInternalContentAssistParser;
	backtrack=true;
	
}

@lexer::header {
package io.pelle.mango.dsl.ui.contentassist.antlr.internal;

// Hack: Use our own Lexer superclass by means of import. 
// Currently there is no other way to specify the superclass for the lexer.
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
}

@parser::header {
package io.pelle.mango.dsl.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import io.pelle.mango.dsl.services.MangoGrammarAccess;

}

@parser::members {
 
 	private MangoGrammarAccess grammarAccess;
 	
    public void setGrammarAccess(MangoGrammarAccess grammarAccess) {
    	this.grammarAccess = grammarAccess;
    }
    
    @Override
    protected Grammar getGrammar() {
    	return grammarAccess.getGrammar();
    }
    
    @Override
    protected String getValueForTokenName(String tokenName) {
    	return tokenName;
    }

}




// Entry rule entryRuleModelRoot
entryRuleModelRoot 
:
{ before(grammarAccess.getModelRootRule()); }
	 ruleModelRoot
{ after(grammarAccess.getModelRootRule()); } 
	 EOF 
;

// Rule ModelRoot
ruleModelRoot
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getModelRootAccess().getAlternatives()); }
(rule__ModelRoot__Alternatives)
{ after(grammarAccess.getModelRootAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleModel
entryRuleModel 
:
{ before(grammarAccess.getModelRule()); }
	 ruleModel
{ after(grammarAccess.getModelRule()); } 
	 EOF 
;

// Rule Model
ruleModel
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getModelAccess().getGroup()); }
(rule__Model__Group__0)
{ after(grammarAccess.getModelAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRulePackageDeclaration
entryRulePackageDeclaration 
:
{ before(grammarAccess.getPackageDeclarationRule()); }
	 rulePackageDeclaration
{ after(grammarAccess.getPackageDeclarationRule()); } 
	 EOF 
;

// Rule PackageDeclaration
rulePackageDeclaration
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getPackageDeclarationAccess().getGroup()); }
(rule__PackageDeclaration__Group__0)
{ after(grammarAccess.getPackageDeclarationAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleAbstractElement
entryRuleAbstractElement 
:
{ before(grammarAccess.getAbstractElementRule()); }
	 ruleAbstractElement
{ after(grammarAccess.getAbstractElementRule()); } 
	 EOF 
;

// Rule AbstractElement
ruleAbstractElement
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getAbstractElementAccess().getAlternatives()); }
(rule__AbstractElement__Alternatives)
{ after(grammarAccess.getAbstractElementAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEnumeration
entryRuleEnumeration 
:
{ before(grammarAccess.getEnumerationRule()); }
	 ruleEnumeration
{ after(grammarAccess.getEnumerationRule()); } 
	 EOF 
;

// Rule Enumeration
ruleEnumeration
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEnumerationAccess().getGroup()); }
(rule__Enumeration__Group__0)
{ after(grammarAccess.getEnumerationAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEnumerationValue
entryRuleEnumerationValue 
:
{ before(grammarAccess.getEnumerationValueRule()); }
	 ruleEnumerationValue
{ after(grammarAccess.getEnumerationValueRule()); } 
	 EOF 
;

// Rule EnumerationValue
ruleEnumerationValue
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEnumerationValueAccess().getGroup()); }
(rule__EnumerationValue__Group__0)
{ after(grammarAccess.getEnumerationValueAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityOptions
entryRuleEntityOptions 
:
{ before(grammarAccess.getEntityOptionsRule()); }
	 ruleEntityOptions
{ after(grammarAccess.getEntityOptionsRule()); } 
	 EOF 
;

// Rule EntityOptions
ruleEntityOptions
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityOptionsAccess().getAlternatives()); }
(rule__EntityOptions__Alternatives)
{ after(grammarAccess.getEntityOptionsAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityNaturalKeyFields
entryRuleEntityNaturalKeyFields 
:
{ before(grammarAccess.getEntityNaturalKeyFieldsRule()); }
	 ruleEntityNaturalKeyFields
{ after(grammarAccess.getEntityNaturalKeyFieldsRule()); } 
	 EOF 
;

// Rule EntityNaturalKeyFields
ruleEntityNaturalKeyFields
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getGroup()); }
(rule__EntityNaturalKeyFields__Group__0)
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityHierarchical
entryRuleEntityHierarchical 
:
{ before(grammarAccess.getEntityHierarchicalRule()); }
	 ruleEntityHierarchical
{ after(grammarAccess.getEntityHierarchicalRule()); } 
	 EOF 
;

// Rule EntityHierarchical
ruleEntityHierarchical
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityHierarchicalAccess().getGroup()); }
(rule__EntityHierarchical__Group__0)
{ after(grammarAccess.getEntityHierarchicalAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityDisableIdField
entryRuleEntityDisableIdField 
:
{ before(grammarAccess.getEntityDisableIdFieldRule()); }
	 ruleEntityDisableIdField
{ after(grammarAccess.getEntityDisableIdFieldRule()); } 
	 EOF 
;

// Rule EntityDisableIdField
ruleEntityDisableIdField
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityDisableIdFieldAccess().getGroup()); }
(rule__EntityDisableIdField__Group__0)
{ after(grammarAccess.getEntityDisableIdFieldAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityLabelField
entryRuleEntityLabelField 
:
{ before(grammarAccess.getEntityLabelFieldRule()); }
	 ruleEntityLabelField
{ after(grammarAccess.getEntityLabelFieldRule()); } 
	 EOF 
;

// Rule EntityLabelField
ruleEntityLabelField
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityLabelFieldAccess().getGroup()); }
(rule__EntityLabelField__Group__0)
{ after(grammarAccess.getEntityLabelFieldAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityPluralLabelField
entryRuleEntityPluralLabelField 
:
{ before(grammarAccess.getEntityPluralLabelFieldRule()); }
	 ruleEntityPluralLabelField
{ after(grammarAccess.getEntityPluralLabelFieldRule()); } 
	 EOF 
;

// Rule EntityPluralLabelField
ruleEntityPluralLabelField
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityPluralLabelFieldAccess().getGroup()); }
(rule__EntityPluralLabelField__Group__0)
{ after(grammarAccess.getEntityPluralLabelFieldAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}





// Entry rule entryRuleEntityOptionsContainer
entryRuleEntityOptionsContainer 
:
{ before(grammarAccess.getEntityOptionsContainerRule()); }
	 ruleEntityOptionsContainer
{ after(grammarAccess.getEntityOptionsContainerRule()); } 
	 EOF 
;

// Rule EntityOptionsContainer
ruleEntityOptionsContainer
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getGroup()); }
(rule__EntityOptionsContainer__Group__0)
{ after(grammarAccess.getEntityOptionsContainerAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntity
entryRuleEntity 
:
{ before(grammarAccess.getEntityRule()); }
	 ruleEntity
{ after(grammarAccess.getEntityRule()); } 
	 EOF 
;

// Rule Entity
ruleEntity
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityAccess().getGroup()); }
(rule__Entity__Group__0)
{ after(grammarAccess.getEntityAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleValueObject
entryRuleValueObject 
:
{ before(grammarAccess.getValueObjectRule()); }
	 ruleValueObject
{ after(grammarAccess.getValueObjectRule()); } 
	 EOF 
;

// Rule ValueObject
ruleValueObject
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getValueObjectAccess().getGroup()); }
(rule__ValueObject__Group__0)
{ after(grammarAccess.getValueObjectAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}





// Entry rule entryRuleDatatype
entryRuleDatatype 
:
{ before(grammarAccess.getDatatypeRule()); }
	 ruleDatatype
{ after(grammarAccess.getDatatypeRule()); } 
	 EOF 
;

// Rule Datatype
ruleDatatype
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDatatypeAccess().getAlternatives()); }
(rule__Datatype__Alternatives)
{ after(grammarAccess.getDatatypeAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleSimpleDataType
entryRuleSimpleDataType 
:
{ before(grammarAccess.getSimpleDataTypeRule()); }
	 ruleSimpleDataType
{ after(grammarAccess.getSimpleDataTypeRule()); } 
	 EOF 
;

// Rule SimpleDataType
ruleSimpleDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSimpleDataTypeAccess().getAlternatives()); }
(rule__SimpleDataType__Alternatives)
{ after(grammarAccess.getSimpleDataTypeAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityAttribute
entryRuleEntityAttribute 
:
{ before(grammarAccess.getEntityAttributeRule()); }
	 ruleEntityAttribute
{ after(grammarAccess.getEntityAttributeRule()); } 
	 EOF 
;

// Rule EntityAttribute
ruleEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityAttributeAccess().getAlternatives()); }
(rule__EntityAttribute__Alternatives)
{ after(grammarAccess.getEntityAttributeAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleSimpleDatatypeEntityAttribute
entryRuleSimpleDatatypeEntityAttribute 
:
{ before(grammarAccess.getSimpleDatatypeEntityAttributeRule()); }
	 ruleSimpleDatatypeEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeRule()); } 
	 EOF 
;

// Rule SimpleDatatypeEntityAttribute
ruleSimpleDatatypeEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getAlternatives()); }
(rule__SimpleDatatypeEntityAttribute__Alternatives)
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}





// Entry rule entryRuleBaseDataType
entryRuleBaseDataType 
:
{ before(grammarAccess.getBaseDataTypeRule()); }
	 ruleBaseDataType
{ after(grammarAccess.getBaseDataTypeRule()); } 
	 EOF 
;

// Rule BaseDataType
ruleBaseDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBaseDataTypeAccess().getGroup()); }
(rule__BaseDataType__Group__0)
{ after(grammarAccess.getBaseDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBaseDataTypeProperties
entryRuleBaseDataTypeProperties 
:
{ before(grammarAccess.getBaseDataTypePropertiesRule()); }
	 ruleBaseDataTypeProperties
{ after(grammarAccess.getBaseDataTypePropertiesRule()); } 
	 EOF 
;

// Rule BaseDataTypeProperties
ruleBaseDataTypeProperties
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBaseDataTypePropertiesAccess().getAlternatives()); }
(rule__BaseDataTypeProperties__Alternatives)
{ after(grammarAccess.getBaseDataTypePropertiesAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBaseDataTypeWidth
entryRuleBaseDataTypeWidth 
:
{ before(grammarAccess.getBaseDataTypeWidthRule()); }
	 ruleBaseDataTypeWidth
{ after(grammarAccess.getBaseDataTypeWidthRule()); } 
	 EOF 
;

// Rule BaseDataTypeWidth
ruleBaseDataTypeWidth
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBaseDataTypeWidthAccess().getGroup()); }
(rule__BaseDataTypeWidth__Group__0)
{ after(grammarAccess.getBaseDataTypeWidthAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBaseDataTypeLabel
entryRuleBaseDataTypeLabel 
:
{ before(grammarAccess.getBaseDataTypeLabelRule()); }
	 ruleBaseDataTypeLabel
{ after(grammarAccess.getBaseDataTypeLabelRule()); } 
	 EOF 
;

// Rule BaseDataTypeLabel
ruleBaseDataTypeLabel
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBaseDataTypeLabelAccess().getGroup()); }
(rule__BaseDataTypeLabel__Group__0)
{ after(grammarAccess.getBaseDataTypeLabelAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleStringDataType
entryRuleStringDataType 
:
{ before(grammarAccess.getStringDataTypeRule()); }
	 ruleStringDataType
{ after(grammarAccess.getStringDataTypeRule()); } 
	 EOF 
;

// Rule StringDataType
ruleStringDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getStringDataTypeAccess().getGroup()); }
(rule__StringDataType__Group__0)
{ after(grammarAccess.getStringDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleStringEntityAttribute
entryRuleStringEntityAttribute 
:
{ before(grammarAccess.getStringEntityAttributeRule()); }
	 ruleStringEntityAttribute
{ after(grammarAccess.getStringEntityAttributeRule()); } 
	 EOF 
;

// Rule StringEntityAttribute
ruleStringEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getGroup()); }
(rule__StringEntityAttribute__Group__0)
{ after(grammarAccess.getStringEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}





// Entry rule entryRuleMapEntityAttribute
entryRuleMapEntityAttribute 
:
{ before(grammarAccess.getMapEntityAttributeRule()); }
	 ruleMapEntityAttribute
{ after(grammarAccess.getMapEntityAttributeRule()); } 
	 EOF 
;

// Rule MapEntityAttribute
ruleMapEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getGroup()); }
(rule__MapEntityAttribute__Group__0)
{ after(grammarAccess.getMapEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBooleanDataType
entryRuleBooleanDataType 
:
{ before(grammarAccess.getBooleanDataTypeRule()); }
	 ruleBooleanDataType
{ after(grammarAccess.getBooleanDataTypeRule()); } 
	 EOF 
;

// Rule BooleanDataType
ruleBooleanDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getGroup()); }
(rule__BooleanDataType__Group__0)
{ after(grammarAccess.getBooleanDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBooleanEntityAttribute
entryRuleBooleanEntityAttribute 
:
{ before(grammarAccess.getBooleanEntityAttributeRule()); }
	 ruleBooleanEntityAttribute
{ after(grammarAccess.getBooleanEntityAttributeRule()); } 
	 EOF 
;

// Rule BooleanEntityAttribute
ruleBooleanEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getGroup()); }
(rule__BooleanEntityAttribute__Group__0)
{ after(grammarAccess.getBooleanEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleIntegerDataType
entryRuleIntegerDataType 
:
{ before(grammarAccess.getIntegerDataTypeRule()); }
	 ruleIntegerDataType
{ after(grammarAccess.getIntegerDataTypeRule()); } 
	 EOF 
;

// Rule IntegerDataType
ruleIntegerDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getGroup()); }
(rule__IntegerDataType__Group__0)
{ after(grammarAccess.getIntegerDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleIntegerEntityAttribute
entryRuleIntegerEntityAttribute 
:
{ before(grammarAccess.getIntegerEntityAttributeRule()); }
	 ruleIntegerEntityAttribute
{ after(grammarAccess.getIntegerEntityAttributeRule()); } 
	 EOF 
;

// Rule IntegerEntityAttribute
ruleIntegerEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getGroup()); }
(rule__IntegerEntityAttribute__Group__0)
{ after(grammarAccess.getIntegerEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDateDataType
entryRuleDateDataType 
:
{ before(grammarAccess.getDateDataTypeRule()); }
	 ruleDateDataType
{ after(grammarAccess.getDateDataTypeRule()); } 
	 EOF 
;

// Rule DateDataType
ruleDateDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDateDataTypeAccess().getGroup()); }
(rule__DateDataType__Group__0)
{ after(grammarAccess.getDateDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDateEntityAttribute
entryRuleDateEntityAttribute 
:
{ before(grammarAccess.getDateEntityAttributeRule()); }
	 ruleDateEntityAttribute
{ after(grammarAccess.getDateEntityAttributeRule()); } 
	 EOF 
;

// Rule DateEntityAttribute
ruleDateEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDateEntityAttributeAccess().getGroup()); }
(rule__DateEntityAttribute__Group__0)
{ after(grammarAccess.getDateEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDecimalDataType
entryRuleDecimalDataType 
:
{ before(grammarAccess.getDecimalDataTypeRule()); }
	 ruleDecimalDataType
{ after(grammarAccess.getDecimalDataTypeRule()); } 
	 EOF 
;

// Rule DecimalDataType
ruleDecimalDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getGroup()); }
(rule__DecimalDataType__Group__0)
{ after(grammarAccess.getDecimalDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDecimalEntityAttribute
entryRuleDecimalEntityAttribute 
:
{ before(grammarAccess.getDecimalEntityAttributeRule()); }
	 ruleDecimalEntityAttribute
{ after(grammarAccess.getDecimalEntityAttributeRule()); } 
	 EOF 
;

// Rule DecimalEntityAttribute
ruleDecimalEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getGroup()); }
(rule__DecimalEntityAttribute__Group__0)
{ after(grammarAccess.getDecimalEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleLongDataType
entryRuleLongDataType 
:
{ before(grammarAccess.getLongDataTypeRule()); }
	 ruleLongDataType
{ after(grammarAccess.getLongDataTypeRule()); } 
	 EOF 
;

// Rule LongDataType
ruleLongDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getLongDataTypeAccess().getGroup()); }
(rule__LongDataType__Group__0)
{ after(grammarAccess.getLongDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleLongEntityAttribute
entryRuleLongEntityAttribute 
:
{ before(grammarAccess.getLongEntityAttributeRule()); }
	 ruleLongEntityAttribute
{ after(grammarAccess.getLongEntityAttributeRule()); } 
	 EOF 
;

// Rule LongEntityAttribute
ruleLongEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getLongEntityAttributeAccess().getGroup()); }
(rule__LongEntityAttribute__Group__0)
{ after(grammarAccess.getLongEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleFloatDataType
entryRuleFloatDataType 
:
{ before(grammarAccess.getFloatDataTypeRule()); }
	 ruleFloatDataType
{ after(grammarAccess.getFloatDataTypeRule()); } 
	 EOF 
;

// Rule FloatDataType
ruleFloatDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getFloatDataTypeAccess().getGroup()); }
(rule__FloatDataType__Group__0)
{ after(grammarAccess.getFloatDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleFloatEntityAttribute
entryRuleFloatEntityAttribute 
:
{ before(grammarAccess.getFloatEntityAttributeRule()); }
	 ruleFloatEntityAttribute
{ after(grammarAccess.getFloatEntityAttributeRule()); } 
	 EOF 
;

// Rule FloatEntityAttribute
ruleFloatEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getGroup()); }
(rule__FloatEntityAttribute__Group__0)
{ after(grammarAccess.getFloatEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDoubleDataType
entryRuleDoubleDataType 
:
{ before(grammarAccess.getDoubleDataTypeRule()); }
	 ruleDoubleDataType
{ after(grammarAccess.getDoubleDataTypeRule()); } 
	 EOF 
;

// Rule DoubleDataType
ruleDoubleDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getGroup()); }
(rule__DoubleDataType__Group__0)
{ after(grammarAccess.getDoubleDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDoubleEntityAttribute
entryRuleDoubleEntityAttribute 
:
{ before(grammarAccess.getDoubleEntityAttributeRule()); }
	 ruleDoubleEntityAttribute
{ after(grammarAccess.getDoubleEntityAttributeRule()); } 
	 EOF 
;

// Rule DoubleEntityAttribute
ruleDoubleEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getGroup()); }
(rule__DoubleEntityAttribute__Group__0)
{ after(grammarAccess.getDoubleEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBinaryDataType
entryRuleBinaryDataType 
:
{ before(grammarAccess.getBinaryDataTypeRule()); }
	 ruleBinaryDataType
{ after(grammarAccess.getBinaryDataTypeRule()); } 
	 EOF 
;

// Rule BinaryDataType
ruleBinaryDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getGroup()); }
(rule__BinaryDataType__Group__0)
{ after(grammarAccess.getBinaryDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBinaryEntityAttribute
entryRuleBinaryEntityAttribute 
:
{ before(grammarAccess.getBinaryEntityAttributeRule()); }
	 ruleBinaryEntityAttribute
{ after(grammarAccess.getBinaryEntityAttributeRule()); } 
	 EOF 
;

// Rule BinaryEntityAttribute
ruleBinaryEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getGroup()); }
(rule__BinaryEntityAttribute__Group__0)
{ after(grammarAccess.getBinaryEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEntityDataType
entryRuleEntityDataType 
:
{ before(grammarAccess.getEntityDataTypeRule()); }
	 ruleEntityDataType
{ after(grammarAccess.getEntityDataTypeRule()); } 
	 EOF 
;

// Rule EntityDataType
ruleEntityDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityDataTypeAccess().getGroup()); }
(rule__EntityDataType__Group__0)
{ after(grammarAccess.getEntityDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}





// Entry rule entryRuleEntityEntityAttribute
entryRuleEntityEntityAttribute 
:
{ before(grammarAccess.getEntityEntityAttributeRule()); }
	 ruleEntityEntityAttribute
{ after(grammarAccess.getEntityEntityAttributeRule()); } 
	 EOF 
;

// Rule EntityEntityAttribute
ruleEntityEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getGroup()); }
(rule__EntityEntityAttribute__Group__0)
{ after(grammarAccess.getEntityEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleValueObjectEntityAttribute
entryRuleValueObjectEntityAttribute 
:
{ before(grammarAccess.getValueObjectEntityAttributeRule()); }
	 ruleValueObjectEntityAttribute
{ after(grammarAccess.getValueObjectEntityAttributeRule()); } 
	 EOF 
;

// Rule ValueObjectEntityAttribute
ruleValueObjectEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getGroup()); }
(rule__ValueObjectEntityAttribute__Group__0)
{ after(grammarAccess.getValueObjectEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleEnumerationDataType
entryRuleEnumerationDataType 
:
{ before(grammarAccess.getEnumerationDataTypeRule()); }
	 ruleEnumerationDataType
{ after(grammarAccess.getEnumerationDataTypeRule()); } 
	 EOF 
;

// Rule EnumerationDataType
ruleEnumerationDataType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getGroup()); }
(rule__EnumerationDataType__Group__0)
{ after(grammarAccess.getEnumerationDataTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}





// Entry rule entryRuleEnumerationEntityAttribute
entryRuleEnumerationEntityAttribute 
:
{ before(grammarAccess.getEnumerationEntityAttributeRule()); }
	 ruleEnumerationEntityAttribute
{ after(grammarAccess.getEnumerationEntityAttributeRule()); } 
	 EOF 
;

// Rule EnumerationEntityAttribute
ruleEnumerationEntityAttribute
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getGroup()); }
(rule__EnumerationEntityAttribute__Group__0)
{ after(grammarAccess.getEnumerationEntityAttributeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionary
entryRuleDictionary 
:
{ before(grammarAccess.getDictionaryRule()); }
	 ruleDictionary
{ after(grammarAccess.getDictionaryRule()); } 
	 EOF 
;

// Rule Dictionary
ruleDictionary
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryAccess().getGroup()); }
(rule__Dictionary__Group__0)
{ after(grammarAccess.getDictionaryAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionarySearch
entryRuleDictionarySearch 
:
{ before(grammarAccess.getDictionarySearchRule()); }
	 ruleDictionarySearch
{ after(grammarAccess.getDictionarySearchRule()); } 
	 EOF 
;

// Rule DictionarySearch
ruleDictionarySearch
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionarySearchAccess().getGroup()); }
(rule__DictionarySearch__Group__0)
{ after(grammarAccess.getDictionarySearchAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryEditor
entryRuleDictionaryEditor 
:
{ before(grammarAccess.getDictionaryEditorRule()); }
	 ruleDictionaryEditor
{ after(grammarAccess.getDictionaryEditorRule()); } 
	 EOF 
;

// Rule DictionaryEditor
ruleDictionaryEditor
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryEditorAccess().getGroup()); }
(rule__DictionaryEditor__Group__0)
{ after(grammarAccess.getDictionaryEditorAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryFilter
entryRuleDictionaryFilter 
:
{ before(grammarAccess.getDictionaryFilterRule()); }
	 ruleDictionaryFilter
{ after(grammarAccess.getDictionaryFilterRule()); } 
	 EOF 
;

// Rule DictionaryFilter
ruleDictionaryFilter
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryFilterAccess().getGroup()); }
(rule__DictionaryFilter__Group__0)
{ after(grammarAccess.getDictionaryFilterAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryResult
entryRuleDictionaryResult 
:
{ before(grammarAccess.getDictionaryResultRule()); }
	 ruleDictionaryResult
{ after(grammarAccess.getDictionaryResultRule()); } 
	 EOF 
;

// Rule DictionaryResult
ruleDictionaryResult
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryResultAccess().getGroup()); }
(rule__DictionaryResult__Group__0)
{ after(grammarAccess.getDictionaryResultAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleColumnLayout
entryRuleColumnLayout 
:
{ before(grammarAccess.getColumnLayoutRule()); }
	 ruleColumnLayout
{ after(grammarAccess.getColumnLayoutRule()); } 
	 EOF 
;

// Rule ColumnLayout
ruleColumnLayout
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getColumnLayoutAccess().getGroup()); }
(rule__ColumnLayout__Group__0)
{ after(grammarAccess.getColumnLayoutAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleColumnLayoutData
entryRuleColumnLayoutData 
:
{ before(grammarAccess.getColumnLayoutDataRule()); }
	 ruleColumnLayoutData
{ after(grammarAccess.getColumnLayoutDataRule()); } 
	 EOF 
;

// Rule ColumnLayoutData
ruleColumnLayoutData
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getGroup()); }
(rule__ColumnLayoutData__Group__0)
{ after(grammarAccess.getColumnLayoutDataAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryContainer
entryRuleDictionaryContainer 
:
{ before(grammarAccess.getDictionaryContainerRule()); }
	 ruleDictionaryContainer
{ after(grammarAccess.getDictionaryContainerRule()); } 
	 EOF 
;

// Rule DictionaryContainer
ruleDictionaryContainer
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryContainerAccess().getAlternatives()); }
(rule__DictionaryContainer__Alternatives)
{ after(grammarAccess.getDictionaryContainerAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryComposite
entryRuleDictionaryComposite 
:
{ before(grammarAccess.getDictionaryCompositeRule()); }
	 ruleDictionaryComposite
{ after(grammarAccess.getDictionaryCompositeRule()); } 
	 EOF 
;

// Rule DictionaryComposite
ruleDictionaryComposite
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getGroup()); }
(rule__DictionaryComposite__Group__0)
{ after(grammarAccess.getDictionaryCompositeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryEditableTable
entryRuleDictionaryEditableTable 
:
{ before(grammarAccess.getDictionaryEditableTableRule()); }
	 ruleDictionaryEditableTable
{ after(grammarAccess.getDictionaryEditableTableRule()); } 
	 EOF 
;

// Rule DictionaryEditableTable
ruleDictionaryEditableTable
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getGroup()); }
(rule__DictionaryEditableTable__Group__0)
{ after(grammarAccess.getDictionaryEditableTableAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryAssignmentTable
entryRuleDictionaryAssignmentTable 
:
{ before(grammarAccess.getDictionaryAssignmentTableRule()); }
	 ruleDictionaryAssignmentTable
{ after(grammarAccess.getDictionaryAssignmentTableRule()); } 
	 EOF 
;

// Rule DictionaryAssignmentTable
ruleDictionaryAssignmentTable
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getGroup()); }
(rule__DictionaryAssignmentTable__Group__0)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryContainerContent
entryRuleDictionaryContainerContent 
:
{ before(grammarAccess.getDictionaryContainerContentRule()); }
	 ruleDictionaryContainerContent
{ after(grammarAccess.getDictionaryContainerContentRule()); } 
	 EOF 
;

// Rule DictionaryContainerContent
ruleDictionaryContainerContent
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryContainerContentAccess().getAlternatives()); }
(rule__DictionaryContainerContent__Alternatives)
{ after(grammarAccess.getDictionaryContainerContentAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleLabels
entryRuleLabels 
:
{ before(grammarAccess.getLabelsRule()); }
	 ruleLabels
{ after(grammarAccess.getLabelsRule()); } 
	 EOF 
;

// Rule Labels
ruleLabels
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getLabelsAccess().getGroup()); }
(rule__Labels__Group__0)
{ after(grammarAccess.getLabelsAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleBaseDictionaryControl
entryRuleBaseDictionaryControl 
:
{ before(grammarAccess.getBaseDictionaryControlRule()); }
	 ruleBaseDictionaryControl
{ after(grammarAccess.getBaseDictionaryControlRule()); } 
	 EOF 
;

// Rule BaseDictionaryControl
ruleBaseDictionaryControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getGroup()); }
(rule__BaseDictionaryControl__Group__0)
{ after(grammarAccess.getBaseDictionaryControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryControl
entryRuleDictionaryControl 
:
{ before(grammarAccess.getDictionaryControlRule()); }
	 ruleDictionaryControl
{ after(grammarAccess.getDictionaryControlRule()); } 
	 EOF 
;

// Rule DictionaryControl
ruleDictionaryControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryControlAccess().getAlternatives()); }
(rule__DictionaryControl__Alternatives)
{ after(grammarAccess.getDictionaryControlAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryControlGroupOptions
entryRuleDictionaryControlGroupOptions 
:
{ before(grammarAccess.getDictionaryControlGroupOptionsRule()); }
	 ruleDictionaryControlGroupOptions
{ after(grammarAccess.getDictionaryControlGroupOptionsRule()); } 
	 EOF 
;

// Rule DictionaryControlGroupOptions
ruleDictionaryControlGroupOptions
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsAccess().getDictionaryControlGroupOptionMultiFilterFieldParserRuleCall()); }
	ruleDictionaryControlGroupOptionMultiFilterField
{ after(grammarAccess.getDictionaryControlGroupOptionsAccess().getDictionaryControlGroupOptionMultiFilterFieldParserRuleCall()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryControlGroupOptionMultiFilterField
entryRuleDictionaryControlGroupOptionMultiFilterField 
:
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldRule()); }
	 ruleDictionaryControlGroupOptionMultiFilterField
{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldRule()); } 
	 EOF 
;

// Rule DictionaryControlGroupOptionMultiFilterField
ruleDictionaryControlGroupOptionMultiFilterField
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getGroup()); }
(rule__DictionaryControlGroupOptionMultiFilterField__Group__0)
{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryControlGroupOptionsContainer
entryRuleDictionaryControlGroupOptionsContainer 
:
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerRule()); }
	 ruleDictionaryControlGroupOptionsContainer
{ after(grammarAccess.getDictionaryControlGroupOptionsContainerRule()); } 
	 EOF 
;

// Rule DictionaryControlGroupOptionsContainer
ruleDictionaryControlGroupOptionsContainer
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getGroup()); }
(rule__DictionaryControlGroupOptionsContainer__Group__0)
{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryControlGroup
entryRuleDictionaryControlGroup 
:
{ before(grammarAccess.getDictionaryControlGroupRule()); }
	 ruleDictionaryControlGroup
{ after(grammarAccess.getDictionaryControlGroupRule()); } 
	 EOF 
;

// Rule DictionaryControlGroup
ruleDictionaryControlGroup
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getGroup()); }
(rule__DictionaryControlGroup__Group__0)
{ after(grammarAccess.getDictionaryControlGroupAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryHierarchicalControl
entryRuleDictionaryHierarchicalControl 
:
{ before(grammarAccess.getDictionaryHierarchicalControlRule()); }
	 ruleDictionaryHierarchicalControl
{ after(grammarAccess.getDictionaryHierarchicalControlRule()); } 
	 EOF 
;

// Rule DictionaryHierarchicalControl
ruleDictionaryHierarchicalControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getGroup()); }
(rule__DictionaryHierarchicalControl__Group__0)
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryTextControl
entryRuleDictionaryTextControl 
:
{ before(grammarAccess.getDictionaryTextControlRule()); }
	 ruleDictionaryTextControl
{ after(grammarAccess.getDictionaryTextControlRule()); } 
	 EOF 
;

// Rule DictionaryTextControl
ruleDictionaryTextControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getGroup()); }
(rule__DictionaryTextControl__Group__0)
{ after(grammarAccess.getDictionaryTextControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryIntegerControlInputType
entryRuleDictionaryIntegerControlInputType 
:
{ before(grammarAccess.getDictionaryIntegerControlInputTypeRule()); }
	 ruleDictionaryIntegerControlInputType
{ after(grammarAccess.getDictionaryIntegerControlInputTypeRule()); } 
	 EOF 
;

// Rule DictionaryIntegerControlInputType
ruleDictionaryIntegerControlInputType
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getGroup()); }
(rule__DictionaryIntegerControlInputType__Group__0)
{ after(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryIntegerControlOptions
entryRuleDictionaryIntegerControlOptions 
:
{ before(grammarAccess.getDictionaryIntegerControlOptionsRule()); }
	 ruleDictionaryIntegerControlOptions
{ after(grammarAccess.getDictionaryIntegerControlOptionsRule()); } 
	 EOF 
;

// Rule DictionaryIntegerControlOptions
ruleDictionaryIntegerControlOptions
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryIntegerControlOptionsAccess().getDictionaryIntegerControlInputTypeParserRuleCall()); }
	ruleDictionaryIntegerControlInputType
{ after(grammarAccess.getDictionaryIntegerControlOptionsAccess().getDictionaryIntegerControlInputTypeParserRuleCall()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryIntegerControl
entryRuleDictionaryIntegerControl 
:
{ before(grammarAccess.getDictionaryIntegerControlRule()); }
	 ruleDictionaryIntegerControl
{ after(grammarAccess.getDictionaryIntegerControlRule()); } 
	 EOF 
;

// Rule DictionaryIntegerControl
ruleDictionaryIntegerControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getGroup()); }
(rule__DictionaryIntegerControl__Group__0)
{ after(grammarAccess.getDictionaryIntegerControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryBigDecimalControl
entryRuleDictionaryBigDecimalControl 
:
{ before(grammarAccess.getDictionaryBigDecimalControlRule()); }
	 ruleDictionaryBigDecimalControl
{ after(grammarAccess.getDictionaryBigDecimalControlRule()); } 
	 EOF 
;

// Rule DictionaryBigDecimalControl
ruleDictionaryBigDecimalControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getGroup()); }
(rule__DictionaryBigDecimalControl__Group__0)
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryBooleanControl
entryRuleDictionaryBooleanControl 
:
{ before(grammarAccess.getDictionaryBooleanControlRule()); }
	 ruleDictionaryBooleanControl
{ after(grammarAccess.getDictionaryBooleanControlRule()); } 
	 EOF 
;

// Rule DictionaryBooleanControl
ruleDictionaryBooleanControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getGroup()); }
(rule__DictionaryBooleanControl__Group__0)
{ after(grammarAccess.getDictionaryBooleanControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryDateControl
entryRuleDictionaryDateControl 
:
{ before(grammarAccess.getDictionaryDateControlRule()); }
	 ruleDictionaryDateControl
{ after(grammarAccess.getDictionaryDateControlRule()); } 
	 EOF 
;

// Rule DictionaryDateControl
ruleDictionaryDateControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getGroup()); }
(rule__DictionaryDateControl__Group__0)
{ after(grammarAccess.getDictionaryDateControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryEnumerationControl
entryRuleDictionaryEnumerationControl 
:
{ before(grammarAccess.getDictionaryEnumerationControlRule()); }
	 ruleDictionaryEnumerationControl
{ after(grammarAccess.getDictionaryEnumerationControlRule()); } 
	 EOF 
;

// Rule DictionaryEnumerationControl
ruleDictionaryEnumerationControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getGroup()); }
(rule__DictionaryEnumerationControl__Group__0)
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryReferenceControl
entryRuleDictionaryReferenceControl 
:
{ before(grammarAccess.getDictionaryReferenceControlRule()); }
	 ruleDictionaryReferenceControl
{ after(grammarAccess.getDictionaryReferenceControlRule()); } 
	 EOF 
;

// Rule DictionaryReferenceControl
ruleDictionaryReferenceControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getGroup()); }
(rule__DictionaryReferenceControl__Group__0)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleDictionaryFileControl
entryRuleDictionaryFileControl 
:
{ before(grammarAccess.getDictionaryFileControlRule()); }
	 ruleDictionaryFileControl
{ after(grammarAccess.getDictionaryFileControlRule()); } 
	 EOF 
;

// Rule DictionaryFileControl
ruleDictionaryFileControl
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getGroup()); }
(rule__DictionaryFileControl__Group__0)
{ after(grammarAccess.getDictionaryFileControlAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleModule
entryRuleModule 
:
{ before(grammarAccess.getModuleRule()); }
	 ruleModule
{ after(grammarAccess.getModuleRule()); } 
	 EOF 
;

// Rule Module
ruleModule
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getModuleAccess().getGroup()); }
(rule__Module__Group__0)
{ after(grammarAccess.getModuleAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleModuleParameter
entryRuleModuleParameter 
:
{ before(grammarAccess.getModuleParameterRule()); }
	 ruleModuleParameter
{ after(grammarAccess.getModuleParameterRule()); } 
	 EOF 
;

// Rule ModuleParameter
ruleModuleParameter
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getModuleParameterAccess().getGroup()); }
(rule__ModuleParameter__Group__0)
{ after(grammarAccess.getModuleParameterAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleModuleDefinition
entryRuleModuleDefinition 
:
{ before(grammarAccess.getModuleDefinitionRule()); }
	 ruleModuleDefinition
{ after(grammarAccess.getModuleDefinitionRule()); } 
	 EOF 
;

// Rule ModuleDefinition
ruleModuleDefinition
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getModuleDefinitionAccess().getGroup()); }
(rule__ModuleDefinition__Group__0)
{ after(grammarAccess.getModuleDefinitionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleModuleDefinitionParameter
entryRuleModuleDefinitionParameter 
:
{ before(grammarAccess.getModuleDefinitionParameterRule()); }
	 ruleModuleDefinitionParameter
{ after(grammarAccess.getModuleDefinitionParameterRule()); } 
	 EOF 
;

// Rule ModuleDefinitionParameter
ruleModuleDefinitionParameter
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getGroup()); }
(rule__ModuleDefinitionParameter__Group__0)
{ after(grammarAccess.getModuleDefinitionParameterAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleServiceOptions
entryRuleServiceOptions 
:
{ before(grammarAccess.getServiceOptionsRule()); }
	 ruleServiceOptions
{ after(grammarAccess.getServiceOptionsRule()); } 
	 EOF 
;

// Rule ServiceOptions
ruleServiceOptions
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getServiceOptionsAccess().getGroup()); }
(rule__ServiceOptions__Group__0)
{ after(grammarAccess.getServiceOptionsAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleServiceMethod
entryRuleServiceMethod 
:
{ before(grammarAccess.getServiceMethodRule()); }
	 ruleServiceMethod
{ after(grammarAccess.getServiceMethodRule()); } 
	 EOF 
;

// Rule ServiceMethod
ruleServiceMethod
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getServiceMethodAccess().getGroup()); }
(rule__ServiceMethod__Group__0)
{ after(grammarAccess.getServiceMethodAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleService
entryRuleService 
:
{ before(grammarAccess.getServiceRule()); }
	 ruleService
{ after(grammarAccess.getServiceRule()); } 
	 EOF 
;

// Rule Service
ruleService
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getServiceAccess().getGroup()); }
(rule__Service__Group__0)
{ after(grammarAccess.getServiceAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleNavigationNode
entryRuleNavigationNode 
:
{ before(grammarAccess.getNavigationNodeRule()); }
	 ruleNavigationNode
{ after(grammarAccess.getNavigationNodeRule()); } 
	 EOF 
;

// Rule NavigationNode
ruleNavigationNode
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getNavigationNodeAccess().getGroup()); }
(rule__NavigationNode__Group__0)
{ after(grammarAccess.getNavigationNodeAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXExpression
entryRuleXExpression 
:
{ before(grammarAccess.getXExpressionRule()); }
	 ruleXExpression
{ after(grammarAccess.getXExpressionRule()); } 
	 EOF 
;

// Rule XExpression
ruleXExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
	ruleXAssignment
{ after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXAssignment
entryRuleXAssignment 
:
{ before(grammarAccess.getXAssignmentRule()); }
	 ruleXAssignment
{ after(grammarAccess.getXAssignmentRule()); } 
	 EOF 
;

// Rule XAssignment
ruleXAssignment
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXAssignmentAccess().getAlternatives()); }
(rule__XAssignment__Alternatives)
{ after(grammarAccess.getXAssignmentAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpSingleAssign
entryRuleOpSingleAssign 
:
{ before(grammarAccess.getOpSingleAssignRule()); }
	 ruleOpSingleAssign
{ after(grammarAccess.getOpSingleAssignRule()); } 
	 EOF 
;

// Rule OpSingleAssign
ruleOpSingleAssign
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }

	'=' 

{ after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpMultiAssign
entryRuleOpMultiAssign 
:
{ before(grammarAccess.getOpMultiAssignRule()); }
	 ruleOpMultiAssign
{ after(grammarAccess.getOpMultiAssignRule()); } 
	 EOF 
;

// Rule OpMultiAssign
ruleOpMultiAssign
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
(rule__OpMultiAssign__Alternatives)
{ after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXOrExpression
entryRuleXOrExpression 
:
{ before(grammarAccess.getXOrExpressionRule()); }
	 ruleXOrExpression
{ after(grammarAccess.getXOrExpressionRule()); } 
	 EOF 
;

// Rule XOrExpression
ruleXOrExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXOrExpressionAccess().getGroup()); }
(rule__XOrExpression__Group__0)
{ after(grammarAccess.getXOrExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpOr
entryRuleOpOr 
:
{ before(grammarAccess.getOpOrRule()); }
	 ruleOpOr
{ after(grammarAccess.getOpOrRule()); } 
	 EOF 
;

// Rule OpOr
ruleOpOr
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }

	'||' 

{ after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXAndExpression
entryRuleXAndExpression 
:
{ before(grammarAccess.getXAndExpressionRule()); }
	 ruleXAndExpression
{ after(grammarAccess.getXAndExpressionRule()); } 
	 EOF 
;

// Rule XAndExpression
ruleXAndExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXAndExpressionAccess().getGroup()); }
(rule__XAndExpression__Group__0)
{ after(grammarAccess.getXAndExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpAnd
entryRuleOpAnd 
:
{ before(grammarAccess.getOpAndRule()); }
	 ruleOpAnd
{ after(grammarAccess.getOpAndRule()); } 
	 EOF 
;

// Rule OpAnd
ruleOpAnd
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }

	'&&' 

{ after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXEqualityExpression
entryRuleXEqualityExpression 
:
{ before(grammarAccess.getXEqualityExpressionRule()); }
	 ruleXEqualityExpression
{ after(grammarAccess.getXEqualityExpressionRule()); } 
	 EOF 
;

// Rule XEqualityExpression
ruleXEqualityExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
(rule__XEqualityExpression__Group__0)
{ after(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpEquality
entryRuleOpEquality 
:
{ before(grammarAccess.getOpEqualityRule()); }
	 ruleOpEquality
{ after(grammarAccess.getOpEqualityRule()); } 
	 EOF 
;

// Rule OpEquality
ruleOpEquality
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpEqualityAccess().getAlternatives()); }
(rule__OpEquality__Alternatives)
{ after(grammarAccess.getOpEqualityAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXRelationalExpression
entryRuleXRelationalExpression 
:
{ before(grammarAccess.getXRelationalExpressionRule()); }
	 ruleXRelationalExpression
{ after(grammarAccess.getXRelationalExpressionRule()); } 
	 EOF 
;

// Rule XRelationalExpression
ruleXRelationalExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
(rule__XRelationalExpression__Group__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpCompare
entryRuleOpCompare 
:
{ before(grammarAccess.getOpCompareRule()); }
	 ruleOpCompare
{ after(grammarAccess.getOpCompareRule()); } 
	 EOF 
;

// Rule OpCompare
ruleOpCompare
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpCompareAccess().getAlternatives()); }
(rule__OpCompare__Alternatives)
{ after(grammarAccess.getOpCompareAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXOtherOperatorExpression
entryRuleXOtherOperatorExpression 
:
{ before(grammarAccess.getXOtherOperatorExpressionRule()); }
	 ruleXOtherOperatorExpression
{ after(grammarAccess.getXOtherOperatorExpressionRule()); } 
	 EOF 
;

// Rule XOtherOperatorExpression
ruleXOtherOperatorExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
(rule__XOtherOperatorExpression__Group__0)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpOther
entryRuleOpOther 
:
{ before(grammarAccess.getOpOtherRule()); }
	 ruleOpOther
{ after(grammarAccess.getOpOtherRule()); } 
	 EOF 
;

// Rule OpOther
ruleOpOther
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpOtherAccess().getAlternatives()); }
(rule__OpOther__Alternatives)
{ after(grammarAccess.getOpOtherAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXAdditiveExpression
entryRuleXAdditiveExpression 
:
{ before(grammarAccess.getXAdditiveExpressionRule()); }
	 ruleXAdditiveExpression
{ after(grammarAccess.getXAdditiveExpressionRule()); } 
	 EOF 
;

// Rule XAdditiveExpression
ruleXAdditiveExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
(rule__XAdditiveExpression__Group__0)
{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpAdd
entryRuleOpAdd 
:
{ before(grammarAccess.getOpAddRule()); }
	 ruleOpAdd
{ after(grammarAccess.getOpAddRule()); } 
	 EOF 
;

// Rule OpAdd
ruleOpAdd
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpAddAccess().getAlternatives()); }
(rule__OpAdd__Alternatives)
{ after(grammarAccess.getOpAddAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXMultiplicativeExpression
entryRuleXMultiplicativeExpression 
:
{ before(grammarAccess.getXMultiplicativeExpressionRule()); }
	 ruleXMultiplicativeExpression
{ after(grammarAccess.getXMultiplicativeExpressionRule()); } 
	 EOF 
;

// Rule XMultiplicativeExpression
ruleXMultiplicativeExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
(rule__XMultiplicativeExpression__Group__0)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpMulti
entryRuleOpMulti 
:
{ before(grammarAccess.getOpMultiRule()); }
	 ruleOpMulti
{ after(grammarAccess.getOpMultiRule()); } 
	 EOF 
;

// Rule OpMulti
ruleOpMulti
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpMultiAccess().getAlternatives()); }
(rule__OpMulti__Alternatives)
{ after(grammarAccess.getOpMultiAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXUnaryOperation
entryRuleXUnaryOperation 
:
{ before(grammarAccess.getXUnaryOperationRule()); }
	 ruleXUnaryOperation
{ after(grammarAccess.getXUnaryOperationRule()); } 
	 EOF 
;

// Rule XUnaryOperation
ruleXUnaryOperation
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
(rule__XUnaryOperation__Alternatives)
{ after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpUnary
entryRuleOpUnary 
:
{ before(grammarAccess.getOpUnaryRule()); }
	 ruleOpUnary
{ after(grammarAccess.getOpUnaryRule()); } 
	 EOF 
;

// Rule OpUnary
ruleOpUnary
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpUnaryAccess().getAlternatives()); }
(rule__OpUnary__Alternatives)
{ after(grammarAccess.getOpUnaryAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXCastedExpression
entryRuleXCastedExpression 
:
{ before(grammarAccess.getXCastedExpressionRule()); }
	 ruleXCastedExpression
{ after(grammarAccess.getXCastedExpressionRule()); } 
	 EOF 
;

// Rule XCastedExpression
ruleXCastedExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXCastedExpressionAccess().getGroup()); }
(rule__XCastedExpression__Group__0)
{ after(grammarAccess.getXCastedExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXPostfixOperation
entryRuleXPostfixOperation 
:
{ before(grammarAccess.getXPostfixOperationRule()); }
	 ruleXPostfixOperation
{ after(grammarAccess.getXPostfixOperationRule()); } 
	 EOF 
;

// Rule XPostfixOperation
ruleXPostfixOperation
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXPostfixOperationAccess().getGroup()); }
(rule__XPostfixOperation__Group__0)
{ after(grammarAccess.getXPostfixOperationAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleOpPostfix
entryRuleOpPostfix 
:
{ before(grammarAccess.getOpPostfixRule()); }
	 ruleOpPostfix
{ after(grammarAccess.getOpPostfixRule()); } 
	 EOF 
;

// Rule OpPostfix
ruleOpPostfix
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getOpPostfixAccess().getAlternatives()); }
(rule__OpPostfix__Alternatives)
{ after(grammarAccess.getOpPostfixAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXMemberFeatureCall
entryRuleXMemberFeatureCall 
:
{ before(grammarAccess.getXMemberFeatureCallRule()); }
	 ruleXMemberFeatureCall
{ after(grammarAccess.getXMemberFeatureCallRule()); } 
	 EOF 
;

// Rule XMemberFeatureCall
ruleXMemberFeatureCall
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
(rule__XMemberFeatureCall__Group__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXPrimaryExpression
entryRuleXPrimaryExpression 
:
{ before(grammarAccess.getXPrimaryExpressionRule()); }
	 ruleXPrimaryExpression
{ after(grammarAccess.getXPrimaryExpressionRule()); } 
	 EOF 
;

// Rule XPrimaryExpression
ruleXPrimaryExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
(rule__XPrimaryExpression__Alternatives)
{ after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXLiteral
entryRuleXLiteral 
:
{ before(grammarAccess.getXLiteralRule()); }
	 ruleXLiteral
{ after(grammarAccess.getXLiteralRule()); } 
	 EOF 
;

// Rule XLiteral
ruleXLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXLiteralAccess().getAlternatives()); }
(rule__XLiteral__Alternatives)
{ after(grammarAccess.getXLiteralAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXCollectionLiteral
entryRuleXCollectionLiteral 
:
{ before(grammarAccess.getXCollectionLiteralRule()); }
	 ruleXCollectionLiteral
{ after(grammarAccess.getXCollectionLiteralRule()); } 
	 EOF 
;

// Rule XCollectionLiteral
ruleXCollectionLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
(rule__XCollectionLiteral__Alternatives)
{ after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXSetLiteral
entryRuleXSetLiteral 
:
{ before(grammarAccess.getXSetLiteralRule()); }
	 ruleXSetLiteral
{ after(grammarAccess.getXSetLiteralRule()); } 
	 EOF 
;

// Rule XSetLiteral
ruleXSetLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXSetLiteralAccess().getGroup()); }
(rule__XSetLiteral__Group__0)
{ after(grammarAccess.getXSetLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXListLiteral
entryRuleXListLiteral 
:
{ before(grammarAccess.getXListLiteralRule()); }
	 ruleXListLiteral
{ after(grammarAccess.getXListLiteralRule()); } 
	 EOF 
;

// Rule XListLiteral
ruleXListLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXListLiteralAccess().getGroup()); }
(rule__XListLiteral__Group__0)
{ after(grammarAccess.getXListLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXClosure
entryRuleXClosure 
:
{ before(grammarAccess.getXClosureRule()); }
	 ruleXClosure
{ after(grammarAccess.getXClosureRule()); } 
	 EOF 
;

// Rule XClosure
ruleXClosure
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXClosureAccess().getGroup()); }
(rule__XClosure__Group__0)
{ after(grammarAccess.getXClosureAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXExpressionInClosure
entryRuleXExpressionInClosure 
:
{ before(grammarAccess.getXExpressionInClosureRule()); }
	 ruleXExpressionInClosure
{ after(grammarAccess.getXExpressionInClosureRule()); } 
	 EOF 
;

// Rule XExpressionInClosure
ruleXExpressionInClosure
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
(rule__XExpressionInClosure__Group__0)
{ after(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXShortClosure
entryRuleXShortClosure 
:
{ before(grammarAccess.getXShortClosureRule()); }
	 ruleXShortClosure
{ after(grammarAccess.getXShortClosureRule()); } 
	 EOF 
;

// Rule XShortClosure
ruleXShortClosure
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXShortClosureAccess().getGroup()); }
(rule__XShortClosure__Group__0)
{ after(grammarAccess.getXShortClosureAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXParenthesizedExpression
entryRuleXParenthesizedExpression 
:
{ before(grammarAccess.getXParenthesizedExpressionRule()); }
	 ruleXParenthesizedExpression
{ after(grammarAccess.getXParenthesizedExpressionRule()); } 
	 EOF 
;

// Rule XParenthesizedExpression
ruleXParenthesizedExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
(rule__XParenthesizedExpression__Group__0)
{ after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXIfExpression
entryRuleXIfExpression 
:
{ before(grammarAccess.getXIfExpressionRule()); }
	 ruleXIfExpression
{ after(grammarAccess.getXIfExpressionRule()); } 
	 EOF 
;

// Rule XIfExpression
ruleXIfExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXIfExpressionAccess().getGroup()); }
(rule__XIfExpression__Group__0)
{ after(grammarAccess.getXIfExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXSwitchExpression
entryRuleXSwitchExpression 
:
{ before(grammarAccess.getXSwitchExpressionRule()); }
	 ruleXSwitchExpression
{ after(grammarAccess.getXSwitchExpressionRule()); } 
	 EOF 
;

// Rule XSwitchExpression
ruleXSwitchExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
(rule__XSwitchExpression__Group__0)
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXCasePart
entryRuleXCasePart 
:
{ before(grammarAccess.getXCasePartRule()); }
	 ruleXCasePart
{ after(grammarAccess.getXCasePartRule()); } 
	 EOF 
;

// Rule XCasePart
ruleXCasePart
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXCasePartAccess().getGroup()); }
(rule__XCasePart__Group__0)
{ after(grammarAccess.getXCasePartAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXForLoopExpression
entryRuleXForLoopExpression 
:
{ before(grammarAccess.getXForLoopExpressionRule()); }
	 ruleXForLoopExpression
{ after(grammarAccess.getXForLoopExpressionRule()); } 
	 EOF 
;

// Rule XForLoopExpression
ruleXForLoopExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
(rule__XForLoopExpression__Group__0)
{ after(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXBasicForLoopExpression
entryRuleXBasicForLoopExpression 
:
{ before(grammarAccess.getXBasicForLoopExpressionRule()); }
	 ruleXBasicForLoopExpression
{ after(grammarAccess.getXBasicForLoopExpressionRule()); } 
	 EOF 
;

// Rule XBasicForLoopExpression
ruleXBasicForLoopExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
(rule__XBasicForLoopExpression__Group__0)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXWhileExpression
entryRuleXWhileExpression 
:
{ before(grammarAccess.getXWhileExpressionRule()); }
	 ruleXWhileExpression
{ after(grammarAccess.getXWhileExpressionRule()); } 
	 EOF 
;

// Rule XWhileExpression
ruleXWhileExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXWhileExpressionAccess().getGroup()); }
(rule__XWhileExpression__Group__0)
{ after(grammarAccess.getXWhileExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXDoWhileExpression
entryRuleXDoWhileExpression 
:
{ before(grammarAccess.getXDoWhileExpressionRule()); }
	 ruleXDoWhileExpression
{ after(grammarAccess.getXDoWhileExpressionRule()); } 
	 EOF 
;

// Rule XDoWhileExpression
ruleXDoWhileExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
(rule__XDoWhileExpression__Group__0)
{ after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXBlockExpression
entryRuleXBlockExpression 
:
{ before(grammarAccess.getXBlockExpressionRule()); }
	 ruleXBlockExpression
{ after(grammarAccess.getXBlockExpressionRule()); } 
	 EOF 
;

// Rule XBlockExpression
ruleXBlockExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXBlockExpressionAccess().getGroup()); }
(rule__XBlockExpression__Group__0)
{ after(grammarAccess.getXBlockExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXExpressionOrVarDeclaration
entryRuleXExpressionOrVarDeclaration 
:
{ before(grammarAccess.getXExpressionOrVarDeclarationRule()); }
	 ruleXExpressionOrVarDeclaration
{ after(grammarAccess.getXExpressionOrVarDeclarationRule()); } 
	 EOF 
;

// Rule XExpressionOrVarDeclaration
ruleXExpressionOrVarDeclaration
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
(rule__XExpressionOrVarDeclaration__Alternatives)
{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXVariableDeclaration
entryRuleXVariableDeclaration 
:
{ before(grammarAccess.getXVariableDeclarationRule()); }
	 ruleXVariableDeclaration
{ after(grammarAccess.getXVariableDeclarationRule()); } 
	 EOF 
;

// Rule XVariableDeclaration
ruleXVariableDeclaration
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
(rule__XVariableDeclaration__Group__0)
{ after(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmFormalParameter
entryRuleJvmFormalParameter 
:
{ before(grammarAccess.getJvmFormalParameterRule()); }
	 ruleJvmFormalParameter
{ after(grammarAccess.getJvmFormalParameterRule()); } 
	 EOF 
;

// Rule JvmFormalParameter
ruleJvmFormalParameter
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
(rule__JvmFormalParameter__Group__0)
{ after(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleFullJvmFormalParameter
entryRuleFullJvmFormalParameter 
:
{ before(grammarAccess.getFullJvmFormalParameterRule()); }
	 ruleFullJvmFormalParameter
{ after(grammarAccess.getFullJvmFormalParameterRule()); } 
	 EOF 
;

// Rule FullJvmFormalParameter
ruleFullJvmFormalParameter
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
(rule__FullJvmFormalParameter__Group__0)
{ after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXFeatureCall
entryRuleXFeatureCall 
:
{ before(grammarAccess.getXFeatureCallRule()); }
	 ruleXFeatureCall
{ after(grammarAccess.getXFeatureCallRule()); } 
	 EOF 
;

// Rule XFeatureCall
ruleXFeatureCall
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXFeatureCallAccess().getGroup()); }
(rule__XFeatureCall__Group__0)
{ after(grammarAccess.getXFeatureCallAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleFeatureCallID
entryRuleFeatureCallID 
:
{ before(grammarAccess.getFeatureCallIDRule()); }
	 ruleFeatureCallID
{ after(grammarAccess.getFeatureCallIDRule()); } 
	 EOF 
;

// Rule FeatureCallID
ruleFeatureCallID
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
(rule__FeatureCallID__Alternatives)
{ after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleIdOrSuper
entryRuleIdOrSuper 
:
{ before(grammarAccess.getIdOrSuperRule()); }
	 ruleIdOrSuper
{ after(grammarAccess.getIdOrSuperRule()); } 
	 EOF 
;

// Rule IdOrSuper
ruleIdOrSuper
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
(rule__IdOrSuper__Alternatives)
{ after(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXConstructorCall
entryRuleXConstructorCall 
:
{ before(grammarAccess.getXConstructorCallRule()); }
	 ruleXConstructorCall
{ after(grammarAccess.getXConstructorCallRule()); } 
	 EOF 
;

// Rule XConstructorCall
ruleXConstructorCall
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXConstructorCallAccess().getGroup()); }
(rule__XConstructorCall__Group__0)
{ after(grammarAccess.getXConstructorCallAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXBooleanLiteral
entryRuleXBooleanLiteral 
:
{ before(grammarAccess.getXBooleanLiteralRule()); }
	 ruleXBooleanLiteral
{ after(grammarAccess.getXBooleanLiteralRule()); } 
	 EOF 
;

// Rule XBooleanLiteral
ruleXBooleanLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
(rule__XBooleanLiteral__Group__0)
{ after(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXNullLiteral
entryRuleXNullLiteral 
:
{ before(grammarAccess.getXNullLiteralRule()); }
	 ruleXNullLiteral
{ after(grammarAccess.getXNullLiteralRule()); } 
	 EOF 
;

// Rule XNullLiteral
ruleXNullLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXNullLiteralAccess().getGroup()); }
(rule__XNullLiteral__Group__0)
{ after(grammarAccess.getXNullLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXNumberLiteral
entryRuleXNumberLiteral 
:
{ before(grammarAccess.getXNumberLiteralRule()); }
	 ruleXNumberLiteral
{ after(grammarAccess.getXNumberLiteralRule()); } 
	 EOF 
;

// Rule XNumberLiteral
ruleXNumberLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXNumberLiteralAccess().getGroup()); }
(rule__XNumberLiteral__Group__0)
{ after(grammarAccess.getXNumberLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXStringLiteral
entryRuleXStringLiteral 
:
{ before(grammarAccess.getXStringLiteralRule()); }
	 ruleXStringLiteral
{ after(grammarAccess.getXStringLiteralRule()); } 
	 EOF 
;

// Rule XStringLiteral
ruleXStringLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXStringLiteralAccess().getGroup()); }
(rule__XStringLiteral__Group__0)
{ after(grammarAccess.getXStringLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXTypeLiteral
entryRuleXTypeLiteral 
:
{ before(grammarAccess.getXTypeLiteralRule()); }
	 ruleXTypeLiteral
{ after(grammarAccess.getXTypeLiteralRule()); } 
	 EOF 
;

// Rule XTypeLiteral
ruleXTypeLiteral
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXTypeLiteralAccess().getGroup()); }
(rule__XTypeLiteral__Group__0)
{ after(grammarAccess.getXTypeLiteralAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXThrowExpression
entryRuleXThrowExpression 
:
{ before(grammarAccess.getXThrowExpressionRule()); }
	 ruleXThrowExpression
{ after(grammarAccess.getXThrowExpressionRule()); } 
	 EOF 
;

// Rule XThrowExpression
ruleXThrowExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXThrowExpressionAccess().getGroup()); }
(rule__XThrowExpression__Group__0)
{ after(grammarAccess.getXThrowExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXReturnExpression
entryRuleXReturnExpression 
:
{ before(grammarAccess.getXReturnExpressionRule()); }
	 ruleXReturnExpression
{ after(grammarAccess.getXReturnExpressionRule()); } 
	 EOF 
;

// Rule XReturnExpression
ruleXReturnExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXReturnExpressionAccess().getGroup()); }
(rule__XReturnExpression__Group__0)
{ after(grammarAccess.getXReturnExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXTryCatchFinallyExpression
entryRuleXTryCatchFinallyExpression 
:
{ before(grammarAccess.getXTryCatchFinallyExpressionRule()); }
	 ruleXTryCatchFinallyExpression
{ after(grammarAccess.getXTryCatchFinallyExpressionRule()); } 
	 EOF 
;

// Rule XTryCatchFinallyExpression
ruleXTryCatchFinallyExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
(rule__XTryCatchFinallyExpression__Group__0)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXSynchronizedExpression
entryRuleXSynchronizedExpression 
:
{ before(grammarAccess.getXSynchronizedExpressionRule()); }
	 ruleXSynchronizedExpression
{ after(grammarAccess.getXSynchronizedExpressionRule()); } 
	 EOF 
;

// Rule XSynchronizedExpression
ruleXSynchronizedExpression
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
(rule__XSynchronizedExpression__Group__0)
{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXCatchClause
entryRuleXCatchClause 
:
{ before(grammarAccess.getXCatchClauseRule()); }
	 ruleXCatchClause
{ after(grammarAccess.getXCatchClauseRule()); } 
	 EOF 
;

// Rule XCatchClause
ruleXCatchClause
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXCatchClauseAccess().getGroup()); }
(rule__XCatchClause__Group__0)
{ after(grammarAccess.getXCatchClauseAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleQualifiedName
entryRuleQualifiedName 
:
{ before(grammarAccess.getQualifiedNameRule()); }
	 ruleQualifiedName
{ after(grammarAccess.getQualifiedNameRule()); } 
	 EOF 
;

// Rule QualifiedName
ruleQualifiedName
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getQualifiedNameAccess().getGroup()); }
(rule__QualifiedName__Group__0)
{ after(grammarAccess.getQualifiedNameAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleNumber
entryRuleNumber 
@init {
	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
}
:
{ before(grammarAccess.getNumberRule()); }
	 ruleNumber
{ after(grammarAccess.getNumberRule()); } 
	 EOF 
;
finally {
	myHiddenTokenState.restore();
}

// Rule Number
ruleNumber
    @init {
		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getNumberAccess().getAlternatives()); }
(rule__Number__Alternatives)
{ after(grammarAccess.getNumberAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
	myHiddenTokenState.restore();
}





// Entry rule entryRuleJvmTypeReference
entryRuleJvmTypeReference 
:
{ before(grammarAccess.getJvmTypeReferenceRule()); }
	 ruleJvmTypeReference
{ after(grammarAccess.getJvmTypeReferenceRule()); } 
	 EOF 
;

// Rule JvmTypeReference
ruleJvmTypeReference
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
(rule__JvmTypeReference__Alternatives)
{ after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleArrayBrackets
entryRuleArrayBrackets 
:
{ before(grammarAccess.getArrayBracketsRule()); }
	 ruleArrayBrackets
{ after(grammarAccess.getArrayBracketsRule()); } 
	 EOF 
;

// Rule ArrayBrackets
ruleArrayBrackets
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getArrayBracketsAccess().getGroup()); }
(rule__ArrayBrackets__Group__0)
{ after(grammarAccess.getArrayBracketsAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXFunctionTypeRef
entryRuleXFunctionTypeRef 
:
{ before(grammarAccess.getXFunctionTypeRefRule()); }
	 ruleXFunctionTypeRef
{ after(grammarAccess.getXFunctionTypeRefRule()); } 
	 EOF 
;

// Rule XFunctionTypeRef
ruleXFunctionTypeRef
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
(rule__XFunctionTypeRef__Group__0)
{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmParameterizedTypeReference
entryRuleJvmParameterizedTypeReference 
:
{ before(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
	 ruleJvmParameterizedTypeReference
{ after(grammarAccess.getJvmParameterizedTypeReferenceRule()); } 
	 EOF 
;

// Rule JvmParameterizedTypeReference
ruleJvmParameterizedTypeReference
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
(rule__JvmParameterizedTypeReference__Group__0)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmArgumentTypeReference
entryRuleJvmArgumentTypeReference 
:
{ before(grammarAccess.getJvmArgumentTypeReferenceRule()); }
	 ruleJvmArgumentTypeReference
{ after(grammarAccess.getJvmArgumentTypeReferenceRule()); } 
	 EOF 
;

// Rule JvmArgumentTypeReference
ruleJvmArgumentTypeReference
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
(rule__JvmArgumentTypeReference__Alternatives)
{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmWildcardTypeReference
entryRuleJvmWildcardTypeReference 
:
{ before(grammarAccess.getJvmWildcardTypeReferenceRule()); }
	 ruleJvmWildcardTypeReference
{ after(grammarAccess.getJvmWildcardTypeReferenceRule()); } 
	 EOF 
;

// Rule JvmWildcardTypeReference
ruleJvmWildcardTypeReference
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
(rule__JvmWildcardTypeReference__Group__0)
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmUpperBound
entryRuleJvmUpperBound 
:
{ before(grammarAccess.getJvmUpperBoundRule()); }
	 ruleJvmUpperBound
{ after(grammarAccess.getJvmUpperBoundRule()); } 
	 EOF 
;

// Rule JvmUpperBound
ruleJvmUpperBound
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
(rule__JvmUpperBound__Group__0)
{ after(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmUpperBoundAnded
entryRuleJvmUpperBoundAnded 
:
{ before(grammarAccess.getJvmUpperBoundAndedRule()); }
	 ruleJvmUpperBoundAnded
{ after(grammarAccess.getJvmUpperBoundAndedRule()); } 
	 EOF 
;

// Rule JvmUpperBoundAnded
ruleJvmUpperBoundAnded
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
(rule__JvmUpperBoundAnded__Group__0)
{ after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmLowerBound
entryRuleJvmLowerBound 
:
{ before(grammarAccess.getJvmLowerBoundRule()); }
	 ruleJvmLowerBound
{ after(grammarAccess.getJvmLowerBoundRule()); } 
	 EOF 
;

// Rule JvmLowerBound
ruleJvmLowerBound
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
(rule__JvmLowerBound__Group__0)
{ after(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmLowerBoundAnded
entryRuleJvmLowerBoundAnded 
:
{ before(grammarAccess.getJvmLowerBoundAndedRule()); }
	 ruleJvmLowerBoundAnded
{ after(grammarAccess.getJvmLowerBoundAndedRule()); } 
	 EOF 
;

// Rule JvmLowerBoundAnded
ruleJvmLowerBoundAnded
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
(rule__JvmLowerBoundAnded__Group__0)
{ after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleJvmTypeParameter
entryRuleJvmTypeParameter 
:
{ before(grammarAccess.getJvmTypeParameterRule()); }
	 ruleJvmTypeParameter
{ after(grammarAccess.getJvmTypeParameterRule()); } 
	 EOF 
;

// Rule JvmTypeParameter
ruleJvmTypeParameter
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getGroup()); }
(rule__JvmTypeParameter__Group__0)
{ after(grammarAccess.getJvmTypeParameterAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleQualifiedNameWithWildcard
entryRuleQualifiedNameWithWildcard 
:
{ before(grammarAccess.getQualifiedNameWithWildcardRule()); }
	 ruleQualifiedNameWithWildcard
{ after(grammarAccess.getQualifiedNameWithWildcardRule()); } 
	 EOF 
;

// Rule QualifiedNameWithWildcard
ruleQualifiedNameWithWildcard
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
(rule__QualifiedNameWithWildcard__Group__0)
{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleValidID
entryRuleValidID 
:
{ before(grammarAccess.getValidIDRule()); }
	 ruleValidID
{ after(grammarAccess.getValidIDRule()); } 
	 EOF 
;

// Rule ValidID
ruleValidID
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
	RULE_ID
{ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXImportSection
entryRuleXImportSection 
:
{ before(grammarAccess.getXImportSectionRule()); }
	 ruleXImportSection
{ after(grammarAccess.getXImportSectionRule()); } 
	 EOF 
;

// Rule XImportSection
ruleXImportSection
    @init {
		int stackSize = keepStackSize();
    }
	:
(
(
{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
(rule__XImportSection__ImportDeclarationsAssignment)
{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
)
(
{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
(rule__XImportSection__ImportDeclarationsAssignment)*
{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
)
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleXImportDeclaration
entryRuleXImportDeclaration 
:
{ before(grammarAccess.getXImportDeclarationRule()); }
	 ruleXImportDeclaration
{ after(grammarAccess.getXImportDeclarationRule()); } 
	 EOF 
;

// Rule XImportDeclaration
ruleXImportDeclaration
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getXImportDeclarationAccess().getGroup()); }
(rule__XImportDeclaration__Group__0)
{ after(grammarAccess.getXImportDeclarationAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleQualifiedNameInStaticImport
entryRuleQualifiedNameInStaticImport 
:
{ before(grammarAccess.getQualifiedNameInStaticImportRule()); }
	 ruleQualifiedNameInStaticImport
{ after(grammarAccess.getQualifiedNameInStaticImportRule()); } 
	 EOF 
;

// Rule QualifiedNameInStaticImport
ruleQualifiedNameInStaticImport
    @init {
		int stackSize = keepStackSize();
    }
	:
(
(
{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
(rule__QualifiedNameInStaticImport__Group__0)
{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
)
(
{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
(rule__QualifiedNameInStaticImport__Group__0)*
{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
)
)

;
finally {
	restoreStackSize(stackSize);
}




// Rule IdGeneratorStrategy
ruleIdGeneratorStrategy
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIdGeneratorStrategyAccess().getAlternatives()); }
(rule__IdGeneratorStrategy__Alternatives)
{ after(grammarAccess.getIdGeneratorStrategyAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Rule Cardinality
ruleCardinality
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getCardinalityAccess().getAlternatives()); }
(rule__Cardinality__Alternatives)
{ after(grammarAccess.getCardinalityAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Rule SimpleTypes
ruleSimpleTypes
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSimpleTypesAccess().getAlternatives()); }
(rule__SimpleTypes__Alternatives)
{ after(grammarAccess.getSimpleTypesAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Rule IntegerControlInputType
ruleIntegerControlInputType
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerControlInputTypeAccess().getAlternatives()); }
(rule__IntegerControlInputType__Alternatives)
{ after(grammarAccess.getIntegerControlInputTypeAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Rule ReferenceControlType
ruleReferenceControlType
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getReferenceControlTypeAccess().getAlternatives()); }
(rule__ReferenceControlType__Alternatives)
{ after(grammarAccess.getReferenceControlTypeAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



rule__ModelRoot__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelRootAccess().getGroup_0()); }
(rule__ModelRoot__Group_0__0)
{ after(grammarAccess.getModelRootAccess().getGroup_0()); }
)

    |(
{ before(grammarAccess.getModelRootAccess().getPackageDeclarationParserRuleCall_1()); }
	rulePackageDeclaration
{ after(grammarAccess.getModelRootAccess().getPackageDeclarationParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__AbstractElement__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getAbstractElementAccess().getPackageDeclarationParserRuleCall_0()); }
	rulePackageDeclaration
{ after(grammarAccess.getAbstractElementAccess().getPackageDeclarationParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getValueObjectParserRuleCall_1()); }
	ruleValueObject
{ after(grammarAccess.getAbstractElementAccess().getValueObjectParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getDatatypeParserRuleCall_2()); }
	ruleDatatype
{ after(grammarAccess.getAbstractElementAccess().getDatatypeParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getEntityParserRuleCall_3()); }
	ruleEntity
{ after(grammarAccess.getAbstractElementAccess().getEntityParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getEnumerationParserRuleCall_4()); }
	ruleEnumeration
{ after(grammarAccess.getAbstractElementAccess().getEnumerationParserRuleCall_4()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getModuleDefinitionParserRuleCall_5()); }
	ruleModuleDefinition
{ after(grammarAccess.getAbstractElementAccess().getModuleDefinitionParserRuleCall_5()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getModuleParserRuleCall_6()); }
	ruleModule
{ after(grammarAccess.getAbstractElementAccess().getModuleParserRuleCall_6()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getServiceParserRuleCall_7()); }
	ruleService
{ after(grammarAccess.getAbstractElementAccess().getServiceParserRuleCall_7()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getDictionaryParserRuleCall_8()); }
	ruleDictionary
{ after(grammarAccess.getAbstractElementAccess().getDictionaryParserRuleCall_8()); }
)

    |(
{ before(grammarAccess.getAbstractElementAccess().getNavigationNodeParserRuleCall_9()); }
	ruleNavigationNode
{ after(grammarAccess.getAbstractElementAccess().getNavigationNodeParserRuleCall_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityOptions__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsAccess().getEntityDisableIdFieldParserRuleCall_0()); }
	ruleEntityDisableIdField
{ after(grammarAccess.getEntityOptionsAccess().getEntityDisableIdFieldParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getEntityOptionsAccess().getEntityLabelFieldParserRuleCall_1()); }
	ruleEntityLabelField
{ after(grammarAccess.getEntityOptionsAccess().getEntityLabelFieldParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getEntityOptionsAccess().getEntityPluralLabelFieldParserRuleCall_2()); }
	ruleEntityPluralLabelField
{ after(grammarAccess.getEntityOptionsAccess().getEntityPluralLabelFieldParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getEntityOptionsAccess().getEntityNaturalKeyFieldsParserRuleCall_3()); }
	ruleEntityNaturalKeyFields
{ after(grammarAccess.getEntityOptionsAccess().getEntityNaturalKeyFieldsParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getEntityOptionsAccess().getEntityHierarchicalParserRuleCall_4()); }
	ruleEntityHierarchical
{ after(grammarAccess.getEntityOptionsAccess().getEntityHierarchicalParserRuleCall_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Datatype__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDatatypeAccess().getSimpleDataTypeParserRuleCall_0()); }
	ruleSimpleDataType
{ after(grammarAccess.getDatatypeAccess().getSimpleDataTypeParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getDatatypeAccess().getEntityDataTypeParserRuleCall_1()); }
	ruleEntityDataType
{ after(grammarAccess.getDatatypeAccess().getEntityDataTypeParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__SimpleDataType__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSimpleDataTypeAccess().getStringDataTypeParserRuleCall_0()); }
	ruleStringDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getStringDataTypeParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getDecimalDataTypeParserRuleCall_1()); }
	ruleDecimalDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getDecimalDataTypeParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getDateDataTypeParserRuleCall_2()); }
	ruleDateDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getDateDataTypeParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getIntegerDataTypeParserRuleCall_3()); }
	ruleIntegerDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getIntegerDataTypeParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getBinaryDataTypeParserRuleCall_4()); }
	ruleBinaryDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getBinaryDataTypeParserRuleCall_4()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getEnumerationDataTypeParserRuleCall_5()); }
	ruleEnumerationDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getEnumerationDataTypeParserRuleCall_5()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getBooleanDataTypeParserRuleCall_6()); }
	ruleBooleanDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getBooleanDataTypeParserRuleCall_6()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getDoubleDataTypeParserRuleCall_7()); }
	ruleDoubleDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getDoubleDataTypeParserRuleCall_7()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getFloatDataTypeParserRuleCall_8()); }
	ruleFloatDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getFloatDataTypeParserRuleCall_8()); }
)

    |(
{ before(grammarAccess.getSimpleDataTypeAccess().getLongDataTypeParserRuleCall_9()); }
	ruleLongDataType
{ after(grammarAccess.getSimpleDataTypeAccess().getLongDataTypeParserRuleCall_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityAttribute__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAttributeAccess().getSimpleDatatypeEntityAttributeParserRuleCall_0()); }
	ruleSimpleDatatypeEntityAttribute
{ after(grammarAccess.getEntityAttributeAccess().getSimpleDatatypeEntityAttributeParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getEntityAttributeAccess().getEntityEntityAttributeParserRuleCall_1()); }
	ruleEntityEntityAttribute
{ after(grammarAccess.getEntityAttributeAccess().getEntityEntityAttributeParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getEntityAttributeAccess().getValueObjectEntityAttributeParserRuleCall_2()); }
	ruleValueObjectEntityAttribute
{ after(grammarAccess.getEntityAttributeAccess().getValueObjectEntityAttributeParserRuleCall_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__SimpleDatatypeEntityAttribute__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getMapEntityAttributeParserRuleCall_0()); }
	ruleMapEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getMapEntityAttributeParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getLongEntityAttributeParserRuleCall_1()); }
	ruleLongEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getLongEntityAttributeParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getDateEntityAttributeParserRuleCall_2()); }
	ruleDateEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getDateEntityAttributeParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getDecimalEntityAttributeParserRuleCall_3()); }
	ruleDecimalEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getDecimalEntityAttributeParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getDoubleEntityAttributeParserRuleCall_4()); }
	ruleDoubleEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getDoubleEntityAttributeParserRuleCall_4()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getFloatEntityAttributeParserRuleCall_5()); }
	ruleFloatEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getFloatEntityAttributeParserRuleCall_5()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getStringEntityAttributeParserRuleCall_6()); }
	ruleStringEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getStringEntityAttributeParserRuleCall_6()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getBooleanEntityAttributeParserRuleCall_7()); }
	ruleBooleanEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getBooleanEntityAttributeParserRuleCall_7()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getIntegerEntityAttributeParserRuleCall_8()); }
	ruleIntegerEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getIntegerEntityAttributeParserRuleCall_8()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getBinaryEntityAttributeParserRuleCall_9()); }
	ruleBinaryEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getBinaryEntityAttributeParserRuleCall_9()); }
)

    |(
{ before(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getEnumerationEntityAttributeParserRuleCall_10()); }
	ruleEnumerationEntityAttribute
{ after(grammarAccess.getSimpleDatatypeEntityAttributeAccess().getEnumerationEntityAttributeParserRuleCall_10()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeProperties__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypePropertiesAccess().getBaseDataTypeWidthParserRuleCall_0()); }
	ruleBaseDataTypeWidth
{ after(grammarAccess.getBaseDataTypePropertiesAccess().getBaseDataTypeWidthParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getBaseDataTypePropertiesAccess().getBaseDataTypeLabelParserRuleCall_1()); }
	ruleBaseDataTypeLabel
{ after(grammarAccess.getBaseDataTypePropertiesAccess().getBaseDataTypeLabelParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}



rule__DictionaryContainer__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryContainerAccess().getDictionaryCompositeParserRuleCall_0()); }
	ruleDictionaryComposite
{ after(grammarAccess.getDictionaryContainerAccess().getDictionaryCompositeParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getDictionaryContainerAccess().getDictionaryEditableTableParserRuleCall_1()); }
	ruleDictionaryEditableTable
{ after(grammarAccess.getDictionaryContainerAccess().getDictionaryEditableTableParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getDictionaryContainerAccess().getDictionaryAssignmentTableParserRuleCall_2()); }
	ruleDictionaryAssignmentTable
{ after(grammarAccess.getDictionaryContainerAccess().getDictionaryAssignmentTableParserRuleCall_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryContainerContent__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryContainerContentAccess().getDictionaryContainerParserRuleCall_0()); }
	ruleDictionaryContainer
{ after(grammarAccess.getDictionaryContainerContentAccess().getDictionaryContainerParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getDictionaryContainerContentAccess().getDictionaryControlParserRuleCall_1()); }
	ruleDictionaryControl
{ after(grammarAccess.getDictionaryContainerContentAccess().getDictionaryControlParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControl__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryControlGroupParserRuleCall_0()); }
	ruleDictionaryControlGroup
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryControlGroupParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryTextControlParserRuleCall_1()); }
	ruleDictionaryTextControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryTextControlParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryIntegerControlParserRuleCall_2()); }
	ruleDictionaryIntegerControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryIntegerControlParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryHierarchicalControlParserRuleCall_3()); }
	ruleDictionaryHierarchicalControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryHierarchicalControlParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryBigDecimalControlParserRuleCall_4()); }
	ruleDictionaryBigDecimalControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryBigDecimalControlParserRuleCall_4()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryBooleanControlParserRuleCall_5()); }
	ruleDictionaryBooleanControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryBooleanControlParserRuleCall_5()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryDateControlParserRuleCall_6()); }
	ruleDictionaryDateControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryDateControlParserRuleCall_6()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryEnumerationControlParserRuleCall_7()); }
	ruleDictionaryEnumerationControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryEnumerationControlParserRuleCall_7()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryFileControlParserRuleCall_8()); }
	ruleDictionaryFileControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryFileControlParserRuleCall_8()); }
)

    |(
{ before(grammarAccess.getDictionaryControlAccess().getDictionaryReferenceControlParserRuleCall_9()); }
	ruleDictionaryReferenceControl
{ after(grammarAccess.getDictionaryControlAccess().getDictionaryReferenceControlParserRuleCall_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getGroup_0()); }
(rule__XAssignment__Group_0__0)
{ after(grammarAccess.getXAssignmentAccess().getGroup_0()); }
)

    |(
{ before(grammarAccess.getXAssignmentAccess().getGroup_1()); }
(rule__XAssignment__Group_1__0)
{ after(grammarAccess.getXAssignmentAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }

	'+=' 

{ after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }

	'-=' 

{ after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
)

    |(
{ before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }

	'*=' 

{ after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
)

    |(
{ before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }

	'/=' 

{ after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
)

    |(
{ before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }

	'%=' 

{ after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
)

    |(
{ before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
(rule__OpMultiAssign__Group_5__0)
{ after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
)

    |(
{ before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
(rule__OpMultiAssign__Group_6__0)
{ after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpEquality__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }

	'==' 

{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }

	'!=' 

{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
)

    |(
{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }

	'===' 

{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
)

    |(
{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }

	'!==' 

{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Alternatives_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
(rule__XRelationalExpression__Group_1_0__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
)

    |(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
(rule__XRelationalExpression__Group_1_1__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpCompare__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }

	'>=' 

{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpCompareAccess().getGroup_1()); }
(rule__OpCompare__Group_1__0)
{ after(grammarAccess.getOpCompareAccess().getGroup_1()); }
)

    |(
{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }

	'>' 

{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
)

    |(
{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }

	'<' 

{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }

	'->' 

{ after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }

	'..<' 

{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getGroup_2()); }
(rule__OpOther__Group_2__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_2()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }

	'..' 

{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }

	'=>' 

{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getGroup_5()); }
(rule__OpOther__Group_5__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_5()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getGroup_6()); }
(rule__OpOther__Group_6__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_6()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }

	'<>' 

{ after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }

	'?:' 

{ after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Alternatives_5_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
(rule__OpOther__Group_5_1_0__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }

	'>' 

{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Alternatives_6_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
(rule__OpOther__Group_6_1_0__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }

	'<' 

{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
)

    |(
{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }

	'=>' 

{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpAdd__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }

	'+' 

{ after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }

	'-' 

{ after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpMulti__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }

	'*' 

{ after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }

	'**' 

{ after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
)

    |(
{ before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }

	'/' 

{ after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
)

    |(
{ before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }

	'%' 

{ after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XUnaryOperation__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
(rule__XUnaryOperation__Group_0__0)
{ after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
)

    |(
{ before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
	ruleXCastedExpression
{ after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpUnary__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }

	'!' 

{ after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }

	'-' 

{ after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
)

    |(
{ before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }

	'+' 

{ after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__OpPostfix__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }

	'++' 

{ after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
)

    |(
{ before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }

	'--' 

{ after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Alternatives_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
(rule__XMemberFeatureCall__Group_1_0__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
)

    |(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
(rule__XMemberFeatureCall__Group_1_1__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }

	'.' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
)

    |(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }

	'.' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
)

    |(
{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
(rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
)

    |(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2)
{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Alternatives_1_1_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
)

    |(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
(rule__XMemberFeatureCall__Group_1_1_3_1_1__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XPrimaryExpression__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
	ruleXConstructorCall
{ after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
	ruleXBlockExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
	ruleXSwitchExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
(	ruleXSynchronizedExpression)
{ after(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
	ruleXFeatureCall
{ after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
	ruleXLiteral
{ after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
	ruleXIfExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
(	ruleXForLoopExpression)
{ after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
	ruleXBasicForLoopExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
	ruleXWhileExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
	ruleXDoWhileExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
	ruleXThrowExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
	ruleXReturnExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
	ruleXTryCatchFinallyExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
)

    |(
{ before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
	ruleXParenthesizedExpression
{ after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XLiteral__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
	ruleXCollectionLiteral
{ after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
(	ruleXClosure)
{ after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
)

    |(
{ before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
	ruleXBooleanLiteral
{ after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
)

    |(
{ before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
	ruleXNumberLiteral
{ after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
)

    |(
{ before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
	ruleXNullLiteral
{ after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
)

    |(
{ before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
	ruleXStringLiteral
{ after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
)

    |(
{ before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
	ruleXTypeLiteral
{ after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCollectionLiteral__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
	ruleXSetLiteral
{ after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
	ruleXListLiteral
{ after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Alternatives_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
(rule__XSwitchExpression__Group_2_0__0)
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
)

    |(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
(rule__XSwitchExpression__Group_2_1__0)
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Alternatives_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
(rule__XCasePart__Group_3_0__0)
{ after(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
)

    |(
{ before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
(rule__XCasePart__FallThroughAssignment_3_1)
{ after(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XExpressionOrVarDeclaration__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
	ruleXVariableDeclaration
{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
	ruleXExpression
{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Alternatives_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
(rule__XVariableDeclaration__WriteableAssignment_1_0)
{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
)

    |(
{ before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }

	'val' 

{ after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Alternatives_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
(rule__XVariableDeclaration__Group_2_0__0)
{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
)

    |(
{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
(rule__XVariableDeclaration__NameAssignment_2_1)
{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Alternatives_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0)
{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
)

    |(
{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
(rule__XFeatureCall__Group_3_1_1__0)
{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FeatureCallID__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
	ruleValidID
{ after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }

	'extends' 

{ after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
)

    |(
{ before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }

	'static' 

{ after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
)

    |(
{ before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }

	'import' 

{ after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
)

    |(
{ before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }

	'extension' 

{ after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IdOrSuper__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
	ruleFeatureCallID
{ after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }

	'super' 

{ after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Alternatives_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
(rule__XConstructorCall__ArgumentsAssignment_4_1_0)
{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
)

    |(
{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
(rule__XConstructorCall__Group_4_1_1__0)
{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBooleanLiteral__Alternatives_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }

	'false' 

{ after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
)

    |(
{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
(rule__XBooleanLiteral__IsTrueAssignment_1_1)
{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Alternatives_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
(rule__XTryCatchFinallyExpression__Group_3_0__0)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
)

    |(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
(rule__XTryCatchFinallyExpression__Group_3_1__0)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
	RULE_HEX
{ after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
)

    |(
{ before(grammarAccess.getNumberAccess().getGroup_1()); }
(rule__Number__Group_1__0)
{ after(grammarAccess.getNumberAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Alternatives_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
	RULE_INT
{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
)

    |(
{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
	RULE_DECIMAL
{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Alternatives_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
	RULE_INT
{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
)

    |(
{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
	RULE_DECIMAL
{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeReference__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
(rule__JvmTypeReference__Group_0__0)
{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
)

    |(
{ before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
	ruleXFunctionTypeRef
{ after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmArgumentTypeReference__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
	ruleJvmTypeReference
{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
	ruleJvmWildcardTypeReference
{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Alternatives_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
(rule__JvmWildcardTypeReference__Group_2_0__0)
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
)

    |(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
(rule__JvmWildcardTypeReference__Group_2_1__0)
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Alternatives_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
(rule__XImportDeclaration__Group_1_0__0)
{ after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
)

    |(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
(rule__XImportDeclaration__ImportedTypeAssignment_1_1)
{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
)

    |(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
(rule__XImportDeclaration__ImportedNamespaceAssignment_1_2)
{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Alternatives_1_0_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
(rule__XImportDeclaration__WildcardAssignment_1_0_3_0)
{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
)

    |(
{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
(rule__XImportDeclaration__MemberNameAssignment_1_0_3_1)
{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IdGeneratorStrategy__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIdGeneratorStrategyAccess().getTABLEEnumLiteralDeclaration_0()); }
(	'TABLE' 
)
{ after(grammarAccess.getIdGeneratorStrategyAccess().getTABLEEnumLiteralDeclaration_0()); }
)

    |(
{ before(grammarAccess.getIdGeneratorStrategyAccess().getSEQUENCEEnumLiteralDeclaration_1()); }
(	'SEQUENCE' 
)
{ after(grammarAccess.getIdGeneratorStrategyAccess().getSEQUENCEEnumLiteralDeclaration_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Cardinality__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getCardinalityAccess().getOnetooneEnumLiteralDeclaration_0()); }
(	'0..1' 
)
{ after(grammarAccess.getCardinalityAccess().getOnetooneEnumLiteralDeclaration_0()); }
)

    |(
{ before(grammarAccess.getCardinalityAccess().getOnetomanyEnumLiteralDeclaration_1()); }
(	'0..n' 
)
{ after(grammarAccess.getCardinalityAccess().getOnetomanyEnumLiteralDeclaration_1()); }
)

    |(
{ before(grammarAccess.getCardinalityAccess().getManytomanyEnumLiteralDeclaration_2()); }
(	'n..n' 
)
{ after(grammarAccess.getCardinalityAccess().getManytomanyEnumLiteralDeclaration_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__SimpleTypes__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSimpleTypesAccess().getLongEnumLiteralDeclaration_0()); }
(	'long' 
)
{ after(grammarAccess.getSimpleTypesAccess().getLongEnumLiteralDeclaration_0()); }
)

    |(
{ before(grammarAccess.getSimpleTypesAccess().getIntegerEnumLiteralDeclaration_1()); }
(	'integer' 
)
{ after(grammarAccess.getSimpleTypesAccess().getIntegerEnumLiteralDeclaration_1()); }
)

    |(
{ before(grammarAccess.getSimpleTypesAccess().getBigdecimalEnumLiteralDeclaration_2()); }
(	'bigdecimal' 
)
{ after(grammarAccess.getSimpleTypesAccess().getBigdecimalEnumLiteralDeclaration_2()); }
)

    |(
{ before(grammarAccess.getSimpleTypesAccess().getStringEnumLiteralDeclaration_3()); }
(	'string' 
)
{ after(grammarAccess.getSimpleTypesAccess().getStringEnumLiteralDeclaration_3()); }
)

    |(
{ before(grammarAccess.getSimpleTypesAccess().getBooleanEnumLiteralDeclaration_4()); }
(	'boolean' 
)
{ after(grammarAccess.getSimpleTypesAccess().getBooleanEnumLiteralDeclaration_4()); }
)

    |(
{ before(grammarAccess.getSimpleTypesAccess().getReferenceEnumLiteralDeclaration_5()); }
(	'reference' 
)
{ after(grammarAccess.getSimpleTypesAccess().getReferenceEnumLiteralDeclaration_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerControlInputType__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerControlInputTypeAccess().getTextEnumLiteralDeclaration_0()); }
(	'textbox' 
)
{ after(grammarAccess.getIntegerControlInputTypeAccess().getTextEnumLiteralDeclaration_0()); }
)

    |(
{ before(grammarAccess.getIntegerControlInputTypeAccess().getRatingEnumLiteralDeclaration_1()); }
(	'rating' 
)
{ after(grammarAccess.getIntegerControlInputTypeAccess().getRatingEnumLiteralDeclaration_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ReferenceControlType__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getReferenceControlTypeAccess().getTextEnumLiteralDeclaration_0()); }
(	'text' 
)
{ after(grammarAccess.getReferenceControlTypeAccess().getTextEnumLiteralDeclaration_0()); }
)

    |(
{ before(grammarAccess.getReferenceControlTypeAccess().getDropdownEnumLiteralDeclaration_1()); }
(	'dropdown' 
)
{ after(grammarAccess.getReferenceControlTypeAccess().getDropdownEnumLiteralDeclaration_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}



rule__ModelRoot__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModelRoot__Group_0__0__Impl
	rule__ModelRoot__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ModelRoot__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelRootAccess().getImportSectionAssignment_0_0()); }
(rule__ModelRoot__ImportSectionAssignment_0_0)?
{ after(grammarAccess.getModelRootAccess().getImportSectionAssignment_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModelRoot__Group_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModelRoot__Group_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ModelRoot__Group_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelRootAccess().getModelRootAssignment_0_1()); }
(rule__ModelRoot__ModelRootAssignment_0_1)
{ after(grammarAccess.getModelRootAccess().getModelRootAssignment_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Model__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Model__Group__0__Impl
	rule__Model__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Model__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getProjectKeyword_0()); }

	'project' 

{ after(grammarAccess.getModelAccess().getProjectKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Model__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Model__Group__1__Impl
	rule__Model__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Model__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getModelNameAssignment_1()); }
(rule__Model__ModelNameAssignment_1)
{ after(grammarAccess.getModelAccess().getModelNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Model__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Model__Group__2__Impl
	rule__Model__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Model__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getModelAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Model__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Model__Group__3__Impl
	rule__Model__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Model__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getElementsAssignment_3()); }
(rule__Model__ElementsAssignment_3)*
{ after(grammarAccess.getModelAccess().getElementsAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Model__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Model__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Model__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getModelAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__PackageDeclaration__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__PackageDeclaration__Group__0__Impl
	rule__PackageDeclaration__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getPackageKeyword_0()); }

	'package' 

{ after(grammarAccess.getPackageDeclarationAccess().getPackageKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__PackageDeclaration__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__PackageDeclaration__Group__1__Impl
	rule__PackageDeclaration__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getPackageNameAssignment_1()); }
(rule__PackageDeclaration__PackageNameAssignment_1)
{ after(grammarAccess.getPackageDeclarationAccess().getPackageNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__PackageDeclaration__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__PackageDeclaration__Group__2__Impl
	rule__PackageDeclaration__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getPackageDeclarationAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__PackageDeclaration__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__PackageDeclaration__Group__3__Impl
	rule__PackageDeclaration__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getElementsAssignment_3()); }
(rule__PackageDeclaration__ElementsAssignment_3)*
{ after(grammarAccess.getPackageDeclarationAccess().getElementsAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__PackageDeclaration__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__PackageDeclaration__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getPackageDeclarationAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__Enumeration__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Enumeration__Group__0__Impl
	rule__Enumeration__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getEnumerationKeyword_0()); }

	'enumeration' 

{ after(grammarAccess.getEnumerationAccess().getEnumerationKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Enumeration__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Enumeration__Group__1__Impl
	rule__Enumeration__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getNameAssignment_1()); }
(rule__Enumeration__NameAssignment_1)
{ after(grammarAccess.getEnumerationAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Enumeration__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Enumeration__Group__2__Impl
	rule__Enumeration__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getEnumerationAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Enumeration__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Enumeration__Group__3__Impl
	rule__Enumeration__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getEnumerationValuesAssignment_3()); }
(rule__Enumeration__EnumerationValuesAssignment_3)*
{ after(grammarAccess.getEnumerationAccess().getEnumerationValuesAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Enumeration__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Enumeration__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getEnumerationAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__EnumerationValue__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationValue__Group__0__Impl
	rule__EnumerationValue__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationValue__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationValueAccess().getNameAssignment_0()); }
(rule__EnumerationValue__NameAssignment_0)
{ after(grammarAccess.getEnumerationValueAccess().getNameAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationValue__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationValue__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationValue__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationValueAccess().getGroup_1()); }
(rule__EnumerationValue__Group_1__0)?
{ after(grammarAccess.getEnumerationValueAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__EnumerationValue__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationValue__Group_1__0__Impl
	rule__EnumerationValue__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationValue__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationValueAccess().getEqualsSignGreaterThanSignKeyword_1_0()); }

	'=>' 

{ after(grammarAccess.getEnumerationValueAccess().getEqualsSignGreaterThanSignKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationValue__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationValue__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationValue__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationValueAccess().getValueAssignment_1_1()); }
(rule__EnumerationValue__ValueAssignment_1_1)
{ after(grammarAccess.getEnumerationValueAccess().getValueAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__EntityNaturalKeyFields__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group__0__Impl
	rule__EntityNaturalKeyFields__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getEntityNaturalKeyFieldsAction_0()); }
(

)
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getEntityNaturalKeyFieldsAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityNaturalKeyFields__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group__1__Impl
	rule__EntityNaturalKeyFields__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalkeyKeyword_1()); }

	'naturalkey' 

{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalkeyKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityNaturalKeyFields__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group__2__Impl
	rule__EntityNaturalKeyFields__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityNaturalKeyFields__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group__3__Impl
	rule__EntityNaturalKeyFields__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesAssignment_3()); }
(rule__EntityNaturalKeyFields__NaturalKeyAttributesAssignment_3)
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityNaturalKeyFields__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group__4__Impl
	rule__EntityNaturalKeyFields__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getGroup_4()); }
(rule__EntityNaturalKeyFields__Group_4__0)*
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityNaturalKeyFields__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__EntityNaturalKeyFields__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group_4__0__Impl
	rule__EntityNaturalKeyFields__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getCommaSpaceKeyword_4_0()); }

	', ' 

{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getCommaSpaceKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityNaturalKeyFields__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityNaturalKeyFields__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesAssignment_4_1()); }
(rule__EntityNaturalKeyFields__NaturalKeyAttributesAssignment_4_1)
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__EntityHierarchical__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityHierarchical__Group__0__Impl
	rule__EntityHierarchical__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityHierarchical__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityHierarchicalAccess().getEntityHierarchicalAction_0()); }
(

)
{ after(grammarAccess.getEntityHierarchicalAccess().getEntityHierarchicalAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityHierarchical__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityHierarchical__Group__1__Impl
	rule__EntityHierarchical__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityHierarchical__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityHierarchicalAccess().getHierarchicalEntityKeyword_1()); }

	'hierarchicalEntity' 

{ after(grammarAccess.getEntityHierarchicalAccess().getHierarchicalEntityKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityHierarchical__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityHierarchical__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityHierarchical__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityHierarchicalAccess().getHierarchicalAssignment_2()); }
(rule__EntityHierarchical__HierarchicalAssignment_2)
{ after(grammarAccess.getEntityHierarchicalAccess().getHierarchicalAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__EntityDisableIdField__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDisableIdField__Group__0__Impl
	rule__EntityDisableIdField__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDisableIdField__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDisableIdFieldAccess().getEntityDisableIdFieldAction_0()); }
(

)
{ after(grammarAccess.getEntityDisableIdFieldAccess().getEntityDisableIdFieldAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDisableIdField__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDisableIdField__Group__1__Impl
	rule__EntityDisableIdField__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDisableIdField__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDisableIdFieldAccess().getDisableIdFieldKeyword_1()); }

	'disableIdField' 

{ after(grammarAccess.getEntityDisableIdFieldAccess().getDisableIdFieldKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDisableIdField__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDisableIdField__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDisableIdField__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDisableIdFieldAccess().getDisableIdFieldAssignment_2()); }
(rule__EntityDisableIdField__DisableIdFieldAssignment_2)
{ after(grammarAccess.getEntityDisableIdFieldAccess().getDisableIdFieldAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__EntityLabelField__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityLabelField__Group__0__Impl
	rule__EntityLabelField__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityLabelField__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityLabelFieldAccess().getEntityLabelFieldAction_0()); }
(

)
{ after(grammarAccess.getEntityLabelFieldAccess().getEntityLabelFieldAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityLabelField__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityLabelField__Group__1__Impl
	rule__EntityLabelField__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityLabelField__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityLabelFieldAccess().getLabelKeyword_1()); }

	'label' 

{ after(grammarAccess.getEntityLabelFieldAccess().getLabelKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityLabelField__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityLabelField__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityLabelField__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityLabelFieldAccess().getLabelAssignment_2()); }
(rule__EntityLabelField__LabelAssignment_2)?
{ after(grammarAccess.getEntityLabelFieldAccess().getLabelAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__EntityPluralLabelField__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityPluralLabelField__Group__0__Impl
	rule__EntityPluralLabelField__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityPluralLabelField__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityPluralLabelFieldAccess().getEntityPluralLabelFieldAction_0()); }
(

)
{ after(grammarAccess.getEntityPluralLabelFieldAccess().getEntityPluralLabelFieldAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityPluralLabelField__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityPluralLabelField__Group__1__Impl
	rule__EntityPluralLabelField__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityPluralLabelField__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityPluralLabelFieldAccess().getPluralLabelKeyword_1()); }

	'pluralLabel' 

{ after(grammarAccess.getEntityPluralLabelFieldAccess().getPluralLabelKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityPluralLabelField__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityPluralLabelField__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityPluralLabelField__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityPluralLabelFieldAccess().getPluralLabelAssignment_2()); }
(rule__EntityPluralLabelField__PluralLabelAssignment_2)
{ after(grammarAccess.getEntityPluralLabelFieldAccess().getPluralLabelAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__EntityOptionsContainer__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityOptionsContainer__Group__0__Impl
	rule__EntityOptionsContainer__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityOptionsContainer__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getEntityOptionsContainerAction_0()); }
(

)
{ after(grammarAccess.getEntityOptionsContainerAccess().getEntityOptionsContainerAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityOptionsContainer__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityOptionsContainer__Group__1__Impl
	rule__EntityOptionsContainer__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityOptionsContainer__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getEntityoptionsKeyword_1()); }

	'entityoptions' 

{ after(grammarAccess.getEntityOptionsContainerAccess().getEntityoptionsKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityOptionsContainer__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityOptionsContainer__Group__2__Impl
	rule__EntityOptionsContainer__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityOptionsContainer__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getEntityOptionsContainerAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityOptionsContainer__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityOptionsContainer__Group__3__Impl
	rule__EntityOptionsContainer__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityOptionsContainer__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getOptionsAssignment_3()); }
(rule__EntityOptionsContainer__OptionsAssignment_3)*
{ after(grammarAccess.getEntityOptionsContainerAccess().getOptionsAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityOptionsContainer__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityOptionsContainer__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityOptionsContainer__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getEntityOptionsContainerAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__Entity__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__0__Impl
	rule__Entity__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getEntityKeyword_0()); }

	'entity' 

{ after(grammarAccess.getEntityAccess().getEntityKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__1__Impl
	rule__Entity__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getNameAssignment_1()); }
(rule__Entity__NameAssignment_1)
{ after(grammarAccess.getEntityAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__2__Impl
	rule__Entity__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getGroup_2()); }
(rule__Entity__Group_2__0)?
{ after(grammarAccess.getEntityAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__3__Impl
	rule__Entity__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getGroup_3()); }
(rule__Entity__Group_3__0)?
{ after(grammarAccess.getEntityAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__4__Impl
	rule__Entity__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_4()); }

	'{' 

{ after(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__5__Impl
	rule__Entity__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getEntityOptionsAssignment_5()); }
(rule__Entity__EntityOptionsAssignment_5)?
{ after(grammarAccess.getEntityAccess().getEntityOptionsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__6__Impl
	rule__Entity__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getAttributesAssignment_6()); }
(rule__Entity__AttributesAssignment_6)*
{ after(grammarAccess.getEntityAccess().getAttributesAssignment_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group__7__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_7()); }

	'}' 

{ after(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


















rule__Entity__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group_2__0__Impl
	rule__Entity__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getExtendsAssignment_2_1()); }
(rule__Entity__ExtendsAssignment_2_1)
{ after(grammarAccess.getEntityAccess().getExtendsAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Entity__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group_3__0__Impl
	rule__Entity__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getJvmtypeKeyword_3_0()); }

	'jvmtype' 

{ after(grammarAccess.getEntityAccess().getJvmtypeKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Entity__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Entity__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getJvmtypeAssignment_3_1()); }
(rule__Entity__JvmtypeAssignment_3_1)
{ after(grammarAccess.getEntityAccess().getJvmtypeAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__ValueObject__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__0__Impl
	rule__ValueObject__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getValueobjectKeyword_0()); }

	'valueobject' 

{ after(grammarAccess.getValueObjectAccess().getValueobjectKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__1__Impl
	rule__ValueObject__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getNameAssignment_1()); }
(rule__ValueObject__NameAssignment_1)
{ after(grammarAccess.getValueObjectAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__2__Impl
	rule__ValueObject__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getGroup_2()); }
(rule__ValueObject__Group_2__0)?
{ after(grammarAccess.getValueObjectAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__3__Impl
	rule__ValueObject__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getGroup_3()); }
(rule__ValueObject__Group_3__0)?
{ after(grammarAccess.getValueObjectAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__4__Impl
	rule__ValueObject__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getLeftCurlyBracketKeyword_4()); }

	'{' 

{ after(grammarAccess.getValueObjectAccess().getLeftCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__5__Impl
	rule__ValueObject__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getAttributesAssignment_5()); }
(rule__ValueObject__AttributesAssignment_5)*
{ after(grammarAccess.getValueObjectAccess().getAttributesAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getValueObjectAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__ValueObject__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group_2__0__Impl
	rule__ValueObject__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getValueObjectAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getExtendsAssignment_2_1()); }
(rule__ValueObject__ExtendsAssignment_2_1)
{ after(grammarAccess.getValueObjectAccess().getExtendsAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__ValueObject__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group_3__0__Impl
	rule__ValueObject__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getJvmtypeKeyword_3_0()); }

	'jvmtype' 

{ after(grammarAccess.getValueObjectAccess().getJvmtypeKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObject__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObject__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getJvmtypeAssignment_3_1()); }
(rule__ValueObject__JvmtypeAssignment_3_1)
{ after(grammarAccess.getValueObjectAccess().getJvmtypeAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__BaseDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataType__Group__0__Impl
	rule__BaseDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeAccess().getBaseDataTypeAction_0()); }
(

)
{ after(grammarAccess.getBaseDataTypeAccess().getBaseDataTypeAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataType__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeAccess().getBaseDatatypePropertiesAssignment_1()); }
(rule__BaseDataType__BaseDatatypePropertiesAssignment_1)*
{ after(grammarAccess.getBaseDataTypeAccess().getBaseDatatypePropertiesAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BaseDataTypeWidth__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataTypeWidth__Group__0__Impl
	rule__BaseDataTypeWidth__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeWidth__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeWidthAccess().getBaseDataTypeWidthAction_0()); }
(

)
{ after(grammarAccess.getBaseDataTypeWidthAccess().getBaseDataTypeWidthAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDataTypeWidth__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataTypeWidth__Group__1__Impl
	rule__BaseDataTypeWidth__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeWidth__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeWidthAccess().getWidthKeyword_1()); }

	'width' 

{ after(grammarAccess.getBaseDataTypeWidthAccess().getWidthKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDataTypeWidth__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataTypeWidth__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeWidth__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeWidthAccess().getWidthAssignment_2()); }
(rule__BaseDataTypeWidth__WidthAssignment_2)?
{ after(grammarAccess.getBaseDataTypeWidthAccess().getWidthAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__BaseDataTypeLabel__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataTypeLabel__Group__0__Impl
	rule__BaseDataTypeLabel__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeLabel__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeLabelAccess().getBaseDataTypeLabelAction_0()); }
(

)
{ after(grammarAccess.getBaseDataTypeLabelAccess().getBaseDataTypeLabelAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDataTypeLabel__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataTypeLabel__Group__1__Impl
	rule__BaseDataTypeLabel__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeLabel__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeLabelAccess().getLabelKeyword_1()); }

	'label' 

{ after(grammarAccess.getBaseDataTypeLabelAccess().getLabelKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDataTypeLabel__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDataTypeLabel__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeLabel__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeLabelAccess().getLabelAssignment_2()); }
(rule__BaseDataTypeLabel__LabelAssignment_2)
{ after(grammarAccess.getBaseDataTypeLabelAccess().getLabelAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__StringDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__0__Impl
	rule__StringDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getStringdatatypeKeyword_0()); }

	'stringdatatype' 

{ after(grammarAccess.getStringDataTypeAccess().getStringdatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__1__Impl
	rule__StringDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getNameAssignment_1()); }
(rule__StringDataType__NameAssignment_1)
{ after(grammarAccess.getStringDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__2__Impl
	rule__StringDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getGroup_2()); }
(rule__StringDataType__Group_2__0)?
{ after(grammarAccess.getStringDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__3__Impl
	rule__StringDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getStringDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__4__Impl
	rule__StringDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__StringDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getStringDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__5__Impl
	rule__StringDataType__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getGroup_5()); }
(rule__StringDataType__Group_5__0)?
{ after(grammarAccess.getStringDataTypeAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__6__Impl
	rule__StringDataType__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getGroup_6()); }
(rule__StringDataType__Group_6__0)?
{ after(grammarAccess.getStringDataTypeAccess().getGroup_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group__7__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getRightCurlyBracketKeyword_7()); }

	'}' 

{ after(grammarAccess.getStringDataTypeAccess().getRightCurlyBracketKeyword_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


















rule__StringDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group_2__0__Impl
	rule__StringDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getStringDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getRefAssignment_2_1()); }
(rule__StringDataType__RefAssignment_2_1)
{ after(grammarAccess.getStringDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__StringDataType__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group_5__0__Impl
	rule__StringDataType__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getMaxLengthKeyword_5_0()); }

	'maxLength' 

{ after(grammarAccess.getStringDataTypeAccess().getMaxLengthKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getMaxLengthAssignment_5_1()); }
(rule__StringDataType__MaxLengthAssignment_5_1)
{ after(grammarAccess.getStringDataTypeAccess().getMaxLengthAssignment_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__StringDataType__Group_6__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group_6__0__Impl
	rule__StringDataType__Group_6__1
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group_6__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getMinLengthKeyword_6_0()); }

	'minLength' 

{ after(grammarAccess.getStringDataTypeAccess().getMinLengthKeyword_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringDataType__Group_6__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringDataType__Group_6__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__Group_6__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getMinLengthAssignment_6_1()); }
(rule__StringDataType__MinLengthAssignment_6_1)
{ after(grammarAccess.getStringDataTypeAccess().getMinLengthAssignment_6_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__StringEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringEntityAttribute__Group__0__Impl
	rule__StringEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getStringKeyword_0()); }

	'string' 

{ after(grammarAccess.getStringEntityAttributeAccess().getStringKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringEntityAttribute__Group__1__Impl
	rule__StringEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getTypeAssignment_1()); }
(rule__StringEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getStringEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringEntityAttribute__Group__2__Impl
	rule__StringEntityAttribute__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getCardinalityAssignment_2()); }
(rule__StringEntityAttribute__CardinalityAssignment_2)?
{ after(grammarAccess.getStringEntityAttributeAccess().getCardinalityAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__StringEntityAttribute__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__StringEntityAttribute__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getNameAssignment_3()); }
(rule__StringEntityAttribute__NameAssignment_3)
{ after(grammarAccess.getStringEntityAttributeAccess().getNameAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__MapEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__MapEntityAttribute__Group__0__Impl
	rule__MapEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getMapKeyword_0()); }

	'map' 

{ after(grammarAccess.getMapEntityAttributeAccess().getMapKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__MapEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__MapEntityAttribute__Group__1__Impl
	rule__MapEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getTypeAssignment_1()); }
(rule__MapEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getMapEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__MapEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__MapEntityAttribute__Group__2__Impl
	rule__MapEntityAttribute__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getGroup_2()); }
(rule__MapEntityAttribute__Group_2__0)?
{ after(grammarAccess.getMapEntityAttributeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__MapEntityAttribute__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__MapEntityAttribute__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getNameAssignment_3()); }
(rule__MapEntityAttribute__NameAssignment_3)
{ after(grammarAccess.getMapEntityAttributeAccess().getNameAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__MapEntityAttribute__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__MapEntityAttribute__Group_2__0__Impl
	rule__MapEntityAttribute__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getKeyTypeAssignment_2_0()); }
(rule__MapEntityAttribute__KeyTypeAssignment_2_0)
{ after(grammarAccess.getMapEntityAttributeAccess().getKeyTypeAssignment_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__MapEntityAttribute__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__MapEntityAttribute__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getValueTypeAssignment_2_1()); }
(rule__MapEntityAttribute__ValueTypeAssignment_2_1)
{ after(grammarAccess.getMapEntityAttributeAccess().getValueTypeAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BooleanDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group__0__Impl
	rule__BooleanDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getBooleandatatypeKeyword_0()); }

	'booleandatatype' 

{ after(grammarAccess.getBooleanDataTypeAccess().getBooleandatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group__1__Impl
	rule__BooleanDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getNameAssignment_1()); }
(rule__BooleanDataType__NameAssignment_1)
{ after(grammarAccess.getBooleanDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group__2__Impl
	rule__BooleanDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getGroup_2()); }
(rule__BooleanDataType__Group_2__0)?
{ after(grammarAccess.getBooleanDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group__3__Impl
	rule__BooleanDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getBooleanDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group__4__Impl
	rule__BooleanDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__BooleanDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getBooleanDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getBooleanDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__BooleanDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group_2__0__Impl
	rule__BooleanDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getBooleanDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getRefAssignment_2_1()); }
(rule__BooleanDataType__RefAssignment_2_1)
{ after(grammarAccess.getBooleanDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BooleanEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanEntityAttribute__Group__0__Impl
	rule__BooleanEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getBooleanKeyword_0()); }

	'boolean' 

{ after(grammarAccess.getBooleanEntityAttributeAccess().getBooleanKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanEntityAttribute__Group__1__Impl
	rule__BooleanEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getTypeAssignment_1()); }
(rule__BooleanEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getBooleanEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BooleanEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BooleanEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getNameAssignment_2()); }
(rule__BooleanEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getBooleanEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__IntegerDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group__0__Impl
	rule__IntegerDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getIntegerdatatypeKeyword_0()); }

	'integerdatatype' 

{ after(grammarAccess.getIntegerDataTypeAccess().getIntegerdatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group__1__Impl
	rule__IntegerDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getNameAssignment_1()); }
(rule__IntegerDataType__NameAssignment_1)
{ after(grammarAccess.getIntegerDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group__2__Impl
	rule__IntegerDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getGroup_2()); }
(rule__IntegerDataType__Group_2__0)?
{ after(grammarAccess.getIntegerDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group__3__Impl
	rule__IntegerDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getIntegerDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group__4__Impl
	rule__IntegerDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__IntegerDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getIntegerDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getIntegerDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__IntegerDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group_2__0__Impl
	rule__IntegerDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getIntegerDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getRefAssignment_2_1()); }
(rule__IntegerDataType__RefAssignment_2_1)
{ after(grammarAccess.getIntegerDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__IntegerEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerEntityAttribute__Group__0__Impl
	rule__IntegerEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getIntegerKeyword_0()); }

	'integer' 

{ after(grammarAccess.getIntegerEntityAttributeAccess().getIntegerKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerEntityAttribute__Group__1__Impl
	rule__IntegerEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getTypeAssignment_1()); }
(rule__IntegerEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getIntegerEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__IntegerEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__IntegerEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getNameAssignment_2()); }
(rule__IntegerEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getIntegerEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DateDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group__0__Impl
	rule__DateDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getDatedatatypeKeyword_0()); }

	'datedatatype' 

{ after(grammarAccess.getDateDataTypeAccess().getDatedatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group__1__Impl
	rule__DateDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getNameAssignment_1()); }
(rule__DateDataType__NameAssignment_1)
{ after(grammarAccess.getDateDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group__2__Impl
	rule__DateDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getGroup_2()); }
(rule__DateDataType__Group_2__0)?
{ after(grammarAccess.getDateDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group__3__Impl
	rule__DateDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getDateDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group__4__Impl
	rule__DateDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__DateDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getDateDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getDateDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__DateDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group_2__0__Impl
	rule__DateDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getDateDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getRefAssignment_2_1()); }
(rule__DateDataType__RefAssignment_2_1)
{ after(grammarAccess.getDateDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DateEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateEntityAttribute__Group__0__Impl
	rule__DateEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DateEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateEntityAttributeAccess().getDateKeyword_0()); }

	'date' 

{ after(grammarAccess.getDateEntityAttributeAccess().getDateKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateEntityAttribute__Group__1__Impl
	rule__DateEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DateEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateEntityAttributeAccess().getTypeAssignment_1()); }
(rule__DateEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getDateEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DateEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DateEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DateEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateEntityAttributeAccess().getNameAssignment_2()); }
(rule__DateEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getDateEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DecimalDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group__0__Impl
	rule__DecimalDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getDecimaldatatypeKeyword_0()); }

	'decimaldatatype' 

{ after(grammarAccess.getDecimalDataTypeAccess().getDecimaldatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group__1__Impl
	rule__DecimalDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getNameAssignment_1()); }
(rule__DecimalDataType__NameAssignment_1)
{ after(grammarAccess.getDecimalDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group__2__Impl
	rule__DecimalDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getGroup_2()); }
(rule__DecimalDataType__Group_2__0)?
{ after(grammarAccess.getDecimalDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group__3__Impl
	rule__DecimalDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getDecimalDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group__4__Impl
	rule__DecimalDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__DecimalDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getDecimalDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getDecimalDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__DecimalDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group_2__0__Impl
	rule__DecimalDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getDecimalDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getRefAssignment_2_1()); }
(rule__DecimalDataType__RefAssignment_2_1)
{ after(grammarAccess.getDecimalDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DecimalEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalEntityAttribute__Group__0__Impl
	rule__DecimalEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getDecimalKeyword_0()); }

	'decimal' 

{ after(grammarAccess.getDecimalEntityAttributeAccess().getDecimalKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalEntityAttribute__Group__1__Impl
	rule__DecimalEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getTypeAssignment_1()); }
(rule__DecimalEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getDecimalEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DecimalEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DecimalEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getNameAssignment_2()); }
(rule__DecimalEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getDecimalEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__LongDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group__0__Impl
	rule__LongDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getLongdatatypeKeyword_0()); }

	'longdatatype' 

{ after(grammarAccess.getLongDataTypeAccess().getLongdatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group__1__Impl
	rule__LongDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getNameAssignment_1()); }
(rule__LongDataType__NameAssignment_1)
{ after(grammarAccess.getLongDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group__2__Impl
	rule__LongDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getGroup_2()); }
(rule__LongDataType__Group_2__0)?
{ after(grammarAccess.getLongDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group__3__Impl
	rule__LongDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getLongDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group__4__Impl
	rule__LongDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__LongDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getLongDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getLongDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__LongDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group_2__0__Impl
	rule__LongDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getLongDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getRefAssignment_2_1()); }
(rule__LongDataType__RefAssignment_2_1)
{ after(grammarAccess.getLongDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__LongEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongEntityAttribute__Group__0__Impl
	rule__LongEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LongEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongEntityAttributeAccess().getLongKeyword_0()); }

	'long' 

{ after(grammarAccess.getLongEntityAttributeAccess().getLongKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongEntityAttribute__Group__1__Impl
	rule__LongEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__LongEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongEntityAttributeAccess().getTypeAssignment_1()); }
(rule__LongEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getLongEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LongEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LongEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LongEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongEntityAttributeAccess().getNameAssignment_2()); }
(rule__LongEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getLongEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__FloatDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group__0__Impl
	rule__FloatDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getFloatdatatypeKeyword_0()); }

	'floatdatatype' 

{ after(grammarAccess.getFloatDataTypeAccess().getFloatdatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group__1__Impl
	rule__FloatDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getNameAssignment_1()); }
(rule__FloatDataType__NameAssignment_1)
{ after(grammarAccess.getFloatDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group__2__Impl
	rule__FloatDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getGroup_2()); }
(rule__FloatDataType__Group_2__0)?
{ after(grammarAccess.getFloatDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group__3__Impl
	rule__FloatDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getFloatDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group__4__Impl
	rule__FloatDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__FloatDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getFloatDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getFloatDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__FloatDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group_2__0__Impl
	rule__FloatDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getFloatDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getRefAssignment_2_1()); }
(rule__FloatDataType__RefAssignment_2_1)
{ after(grammarAccess.getFloatDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__FloatEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatEntityAttribute__Group__0__Impl
	rule__FloatEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getFloatKeyword_0()); }

	'float' 

{ after(grammarAccess.getFloatEntityAttributeAccess().getFloatKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatEntityAttribute__Group__1__Impl
	rule__FloatEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getTypeAssignment_1()); }
(rule__FloatEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getFloatEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FloatEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FloatEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__FloatEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getNameAssignment_2()); }
(rule__FloatEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getFloatEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DoubleDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group__0__Impl
	rule__DoubleDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getDoubledatatypeKeyword_0()); }

	'doubledatatype' 

{ after(grammarAccess.getDoubleDataTypeAccess().getDoubledatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group__1__Impl
	rule__DoubleDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getNameAssignment_1()); }
(rule__DoubleDataType__NameAssignment_1)
{ after(grammarAccess.getDoubleDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group__2__Impl
	rule__DoubleDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getGroup_2()); }
(rule__DoubleDataType__Group_2__0)?
{ after(grammarAccess.getDoubleDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group__3__Impl
	rule__DoubleDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getDoubleDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group__4__Impl
	rule__DoubleDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__DoubleDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getDoubleDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getDoubleDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__DoubleDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group_2__0__Impl
	rule__DoubleDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getDoubleDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getRefAssignment_2_1()); }
(rule__DoubleDataType__RefAssignment_2_1)
{ after(grammarAccess.getDoubleDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DoubleEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleEntityAttribute__Group__0__Impl
	rule__DoubleEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getDoubleKeyword_0()); }

	'double' 

{ after(grammarAccess.getDoubleEntityAttributeAccess().getDoubleKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleEntityAttribute__Group__1__Impl
	rule__DoubleEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getTypeAssignment_1()); }
(rule__DoubleEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getDoubleEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DoubleEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DoubleEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getNameAssignment_2()); }
(rule__DoubleEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getDoubleEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__BinaryDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group__0__Impl
	rule__BinaryDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getBinarydatatypeKeyword_0()); }

	'binarydatatype' 

{ after(grammarAccess.getBinaryDataTypeAccess().getBinarydatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group__1__Impl
	rule__BinaryDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getNameAssignment_1()); }
(rule__BinaryDataType__NameAssignment_1)
{ after(grammarAccess.getBinaryDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group__2__Impl
	rule__BinaryDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getGroup_2()); }
(rule__BinaryDataType__Group_2__0)?
{ after(grammarAccess.getBinaryDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group__3__Impl
	rule__BinaryDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getBinaryDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group__4__Impl
	rule__BinaryDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__BinaryDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getBinaryDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getBinaryDataTypeAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__BinaryDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group_2__0__Impl
	rule__BinaryDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getBinaryDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getRefAssignment_2_1()); }
(rule__BinaryDataType__RefAssignment_2_1)
{ after(grammarAccess.getBinaryDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BinaryEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryEntityAttribute__Group__0__Impl
	rule__BinaryEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getBinaryKeyword_0()); }

	'binary' 

{ after(grammarAccess.getBinaryEntityAttributeAccess().getBinaryKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryEntityAttribute__Group__1__Impl
	rule__BinaryEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getTypeAssignment_1()); }
(rule__BinaryEntityAttribute__TypeAssignment_1)?
{ after(grammarAccess.getBinaryEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BinaryEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BinaryEntityAttribute__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getNameAssignment_2()); }
(rule__BinaryEntityAttribute__NameAssignment_2)
{ after(grammarAccess.getBinaryEntityAttributeAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__EntityDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__0__Impl
	rule__EntityDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getEntitydatatypeKeyword_0()); }

	'entitydatatype' 

{ after(grammarAccess.getEntityDataTypeAccess().getEntitydatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__1__Impl
	rule__EntityDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getNameAssignment_1()); }
(rule__EntityDataType__NameAssignment_1)
{ after(grammarAccess.getEntityDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__2__Impl
	rule__EntityDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getGroup_2()); }
(rule__EntityDataType__Group_2__0)?
{ after(grammarAccess.getEntityDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__3__Impl
	rule__EntityDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getEntityDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__4__Impl
	rule__EntityDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__EntityDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getEntityDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__5__Impl
	rule__EntityDataType__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getEntityKeyword_5()); }

	'entity' 

{ after(grammarAccess.getEntityDataTypeAccess().getEntityKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__6__Impl
	rule__EntityDataType__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getEntityAssignment_6()); }
(rule__EntityDataType__EntityAssignment_6)
{ after(grammarAccess.getEntityDataTypeAccess().getEntityAssignment_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group__7__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getRightCurlyBracketKeyword_7()); }

	'}' 

{ after(grammarAccess.getEntityDataTypeAccess().getRightCurlyBracketKeyword_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


















rule__EntityDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group_2__0__Impl
	rule__EntityDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getEntityDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getRefAssignment_2_1()); }
(rule__EntityDataType__RefAssignment_2_1)
{ after(grammarAccess.getEntityDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__EntityEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityEntityAttribute__Group__0__Impl
	rule__EntityEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getEntityKeyword_0()); }

	'entity' 

{ after(grammarAccess.getEntityEntityAttributeAccess().getEntityKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityEntityAttribute__Group__1__Impl
	rule__EntityEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getTypeAssignment_1()); }
(rule__EntityEntityAttribute__TypeAssignment_1)
{ after(grammarAccess.getEntityEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityEntityAttribute__Group__2__Impl
	rule__EntityEntityAttribute__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getCardinalityAssignment_2()); }
(rule__EntityEntityAttribute__CardinalityAssignment_2)?
{ after(grammarAccess.getEntityEntityAttributeAccess().getCardinalityAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityEntityAttribute__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EntityEntityAttribute__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getNameAssignment_3()); }
(rule__EntityEntityAttribute__NameAssignment_3)
{ after(grammarAccess.getEntityEntityAttributeAccess().getNameAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__ValueObjectEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObjectEntityAttribute__Group__0__Impl
	rule__ValueObjectEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getValueobjectKeyword_0()); }

	'valueobject' 

{ after(grammarAccess.getValueObjectEntityAttributeAccess().getValueobjectKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObjectEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObjectEntityAttribute__Group__1__Impl
	rule__ValueObjectEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getTypeAssignment_1()); }
(rule__ValueObjectEntityAttribute__TypeAssignment_1)
{ after(grammarAccess.getValueObjectEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObjectEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObjectEntityAttribute__Group__2__Impl
	rule__ValueObjectEntityAttribute__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getCardinalityAssignment_2()); }
(rule__ValueObjectEntityAttribute__CardinalityAssignment_2)?
{ after(grammarAccess.getValueObjectEntityAttributeAccess().getCardinalityAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ValueObjectEntityAttribute__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ValueObjectEntityAttribute__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getNameAssignment_3()); }
(rule__ValueObjectEntityAttribute__NameAssignment_3)
{ after(grammarAccess.getValueObjectEntityAttributeAccess().getNameAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__EnumerationDataType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__0__Impl
	rule__EnumerationDataType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getEnumerationdatatypeKeyword_0()); }

	'enumerationdatatype' 

{ after(grammarAccess.getEnumerationDataTypeAccess().getEnumerationdatatypeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__1__Impl
	rule__EnumerationDataType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getNameAssignment_1()); }
(rule__EnumerationDataType__NameAssignment_1)
{ after(grammarAccess.getEnumerationDataTypeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__2__Impl
	rule__EnumerationDataType__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getGroup_2()); }
(rule__EnumerationDataType__Group_2__0)?
{ after(grammarAccess.getEnumerationDataTypeAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__3__Impl
	rule__EnumerationDataType__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getEnumerationDataTypeAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__4__Impl
	rule__EnumerationDataType__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getBaseDataTypeAssignment_4()); }
(rule__EnumerationDataType__BaseDataTypeAssignment_4)
{ after(grammarAccess.getEnumerationDataTypeAccess().getBaseDataTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__5__Impl
	rule__EnumerationDataType__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getEnumerationKeyword_5()); }

	'enumeration' 

{ after(grammarAccess.getEnumerationDataTypeAccess().getEnumerationKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__6__Impl
	rule__EnumerationDataType__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getEnumerationAssignment_6()); }
(rule__EnumerationDataType__EnumerationAssignment_6)
{ after(grammarAccess.getEnumerationDataTypeAccess().getEnumerationAssignment_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group__7__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getRightCurlyBracketKeyword_7()); }

	'}' 

{ after(grammarAccess.getEnumerationDataTypeAccess().getRightCurlyBracketKeyword_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


















rule__EnumerationDataType__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group_2__0__Impl
	rule__EnumerationDataType__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getExtendsKeyword_2_0()); }

	'extends' 

{ after(grammarAccess.getEnumerationDataTypeAccess().getExtendsKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationDataType__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationDataType__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getRefAssignment_2_1()); }
(rule__EnumerationDataType__RefAssignment_2_1)
{ after(grammarAccess.getEnumerationDataTypeAccess().getRefAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__EnumerationEntityAttribute__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationEntityAttribute__Group__0__Impl
	rule__EnumerationEntityAttribute__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getEnumerationKeyword_0()); }

	'enumeration' 

{ after(grammarAccess.getEnumerationEntityAttributeAccess().getEnumerationKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationEntityAttribute__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationEntityAttribute__Group__1__Impl
	rule__EnumerationEntityAttribute__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getTypeAssignment_1()); }
(rule__EnumerationEntityAttribute__TypeAssignment_1)
{ after(grammarAccess.getEnumerationEntityAttributeAccess().getTypeAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationEntityAttribute__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationEntityAttribute__Group__2__Impl
	rule__EnumerationEntityAttribute__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getCardinalityAssignment_2()); }
(rule__EnumerationEntityAttribute__CardinalityAssignment_2)?
{ after(grammarAccess.getEnumerationEntityAttributeAccess().getCardinalityAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EnumerationEntityAttribute__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__EnumerationEntityAttribute__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getNameAssignment_3()); }
(rule__EnumerationEntityAttribute__NameAssignment_3)
{ after(grammarAccess.getEnumerationEntityAttributeAccess().getNameAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__Dictionary__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__0__Impl
	rule__Dictionary__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionaryKeyword_0()); }

	'dictionary' 

{ after(grammarAccess.getDictionaryAccess().getDictionaryKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__1__Impl
	rule__Dictionary__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getNameAssignment_1()); }
(rule__Dictionary__NameAssignment_1)
{ after(grammarAccess.getDictionaryAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__2__Impl
	rule__Dictionary__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__3__Impl
	rule__Dictionary__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getEntityKeyword_3()); }

	'entity' 

{ after(grammarAccess.getDictionaryAccess().getEntityKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__4__Impl
	rule__Dictionary__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getEntityAssignment_4()); }
(rule__Dictionary__EntityAssignment_4)
{ after(grammarAccess.getDictionaryAccess().getEntityAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__5__Impl
	rule__Dictionary__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getGroup_5()); }
(rule__Dictionary__Group_5__0)?
{ after(grammarAccess.getDictionaryAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__6__Impl
	rule__Dictionary__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getGroup_6()); }
(rule__Dictionary__Group_6__0)?
{ after(grammarAccess.getDictionaryAccess().getGroup_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__7__Impl
	rule__Dictionary__Group__8
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getGroup_7()); }
(rule__Dictionary__Group_7__0)?
{ after(grammarAccess.getDictionaryAccess().getGroup_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__8
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__8__Impl
	rule__Dictionary__Group__9
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__8__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getGroup_8()); }
(rule__Dictionary__Group_8__0)?
{ after(grammarAccess.getDictionaryAccess().getGroup_8()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__9
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__9__Impl
	rule__Dictionary__Group__10
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__9__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionarysearchAssignment_9()); }
(rule__Dictionary__DictionarysearchAssignment_9)?
{ after(grammarAccess.getDictionaryAccess().getDictionarysearchAssignment_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__10
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__10__Impl
	rule__Dictionary__Group__11
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__10__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionaryeditorAssignment_10()); }
(rule__Dictionary__DictionaryeditorAssignment_10)?
{ after(grammarAccess.getDictionaryAccess().getDictionaryeditorAssignment_10()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group__11
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group__11__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group__11__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getRightCurlyBracketKeyword_11()); }

	'}' 

{ after(grammarAccess.getDictionaryAccess().getRightCurlyBracketKeyword_11()); }
)

;
finally {
	restoreStackSize(stackSize);
}


























rule__Dictionary__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_5__0__Impl
	rule__Dictionary__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLabelKeyword_5_0()); }

	'label' 

{ after(grammarAccess.getDictionaryAccess().getLabelKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLabelAssignment_5_1()); }
(rule__Dictionary__LabelAssignment_5_1)
{ after(grammarAccess.getDictionaryAccess().getLabelAssignment_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Dictionary__Group_6__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_6__0__Impl
	rule__Dictionary__Group_6__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_6__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getPluralLabelKeyword_6_0()); }

	'pluralLabel' 

{ after(grammarAccess.getDictionaryAccess().getPluralLabelKeyword_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_6__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_6__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_6__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getPluralLabelAssignment_6_1()); }
(rule__Dictionary__PluralLabelAssignment_6_1)
{ after(grammarAccess.getDictionaryAccess().getPluralLabelAssignment_6_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Dictionary__Group_7__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_7__0__Impl
	rule__Dictionary__Group_7__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_7__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionarycontrolsKeyword_7_0()); }

	'dictionarycontrols' 

{ after(grammarAccess.getDictionaryAccess().getDictionarycontrolsKeyword_7_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_7__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_7__1__Impl
	rule__Dictionary__Group_7__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_7__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLeftCurlyBracketKeyword_7_1()); }

	'{' 

{ after(grammarAccess.getDictionaryAccess().getLeftCurlyBracketKeyword_7_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_7__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_7__2__Impl
	rule__Dictionary__Group_7__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_7__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionarycontrolsAssignment_7_2()); }
(rule__Dictionary__DictionarycontrolsAssignment_7_2)*
{ after(grammarAccess.getDictionaryAccess().getDictionarycontrolsAssignment_7_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_7__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_7__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_7__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getRightCurlyBracketKeyword_7_3()); }

	'}' 

{ after(grammarAccess.getDictionaryAccess().getRightCurlyBracketKeyword_7_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__Dictionary__Group_8__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_8__0__Impl
	rule__Dictionary__Group_8__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_8__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLabelcontrolsKeyword_8_0()); }

	'labelcontrols' 

{ after(grammarAccess.getDictionaryAccess().getLabelcontrolsKeyword_8_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_8__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_8__1__Impl
	rule__Dictionary__Group_8__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_8__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLeftCurlyBracketKeyword_8_1()); }

	'{' 

{ after(grammarAccess.getDictionaryAccess().getLeftCurlyBracketKeyword_8_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_8__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_8__2__Impl
	rule__Dictionary__Group_8__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_8__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLabelcontrolsAssignment_8_2()); }
(rule__Dictionary__LabelcontrolsAssignment_8_2)*
{ after(grammarAccess.getDictionaryAccess().getLabelcontrolsAssignment_8_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Dictionary__Group_8__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Dictionary__Group_8__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__Group_8__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getRightCurlyBracketKeyword_8_3()); }

	'}' 

{ after(grammarAccess.getDictionaryAccess().getRightCurlyBracketKeyword_8_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__DictionarySearch__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__0__Impl
	rule__DictionarySearch__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getDictionarysearchKeyword_0()); }

	'dictionarysearch' 

{ after(grammarAccess.getDictionarySearchAccess().getDictionarysearchKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__1__Impl
	rule__DictionarySearch__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getNameAssignment_1()); }
(rule__DictionarySearch__NameAssignment_1)
{ after(grammarAccess.getDictionarySearchAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__2__Impl
	rule__DictionarySearch__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionarySearchAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__3__Impl
	rule__DictionarySearch__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getGroup_3()); }
(rule__DictionarySearch__Group_3__0)?
{ after(grammarAccess.getDictionarySearchAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__4__Impl
	rule__DictionarySearch__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getDictionaryfiltersAssignment_4()); }
(rule__DictionarySearch__DictionaryfiltersAssignment_4)*
{ after(grammarAccess.getDictionarySearchAccess().getDictionaryfiltersAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__5__Impl
	rule__DictionarySearch__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getDictionaryresultAssignment_5()); }
(rule__DictionarySearch__DictionaryresultAssignment_5)
{ after(grammarAccess.getDictionarySearchAccess().getDictionaryresultAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getDictionarySearchAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__DictionarySearch__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group_3__0__Impl
	rule__DictionarySearch__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getLabelKeyword_3_0()); }

	'label' 

{ after(grammarAccess.getDictionarySearchAccess().getLabelKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionarySearch__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionarySearch__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getLabelAssignment_3_1()); }
(rule__DictionarySearch__LabelAssignment_3_1)
{ after(grammarAccess.getDictionarySearchAccess().getLabelAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryEditor__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__0__Impl
	rule__DictionaryEditor__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getDictionaryeditorKeyword_0()); }

	'dictionaryeditor' 

{ after(grammarAccess.getDictionaryEditorAccess().getDictionaryeditorKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__1__Impl
	rule__DictionaryEditor__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getNameAssignment_1()); }
(rule__DictionaryEditor__NameAssignment_1)
{ after(grammarAccess.getDictionaryEditorAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__2__Impl
	rule__DictionaryEditor__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryEditorAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__3__Impl
	rule__DictionaryEditor__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getGroup_3()); }
(rule__DictionaryEditor__Group_3__0)?
{ after(grammarAccess.getDictionaryEditorAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__4__Impl
	rule__DictionaryEditor__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLayoutdataAssignment_4()); }
(rule__DictionaryEditor__LayoutdataAssignment_4)?
{ after(grammarAccess.getDictionaryEditorAccess().getLayoutdataAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__5__Impl
	rule__DictionaryEditor__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLayoutAssignment_5()); }
(rule__DictionaryEditor__LayoutAssignment_5)?
{ after(grammarAccess.getDictionaryEditorAccess().getLayoutAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__6__Impl
	rule__DictionaryEditor__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getContainercontentsAssignment_6()); }
(rule__DictionaryEditor__ContainercontentsAssignment_6)*
{ after(grammarAccess.getDictionaryEditorAccess().getContainercontentsAssignment_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group__7__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getRightCurlyBracketKeyword_7()); }

	'}' 

{ after(grammarAccess.getDictionaryEditorAccess().getRightCurlyBracketKeyword_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


















rule__DictionaryEditor__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group_3__0__Impl
	rule__DictionaryEditor__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLabelKeyword_3_0()); }

	'label' 

{ after(grammarAccess.getDictionaryEditorAccess().getLabelKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditor__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditor__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLabelAssignment_3_1()); }
(rule__DictionaryEditor__LabelAssignment_3_1)
{ after(grammarAccess.getDictionaryEditorAccess().getLabelAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryFilter__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__0__Impl
	rule__DictionaryFilter__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getDictionaryfilterKeyword_0()); }

	'dictionaryfilter' 

{ after(grammarAccess.getDictionaryFilterAccess().getDictionaryfilterKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFilter__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__1__Impl
	rule__DictionaryFilter__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getNameAssignment_1()); }
(rule__DictionaryFilter__NameAssignment_1)
{ after(grammarAccess.getDictionaryFilterAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFilter__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__2__Impl
	rule__DictionaryFilter__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryFilterAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFilter__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__3__Impl
	rule__DictionaryFilter__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getLayoutdataAssignment_3()); }
(rule__DictionaryFilter__LayoutdataAssignment_3)?
{ after(grammarAccess.getDictionaryFilterAccess().getLayoutdataAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFilter__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__4__Impl
	rule__DictionaryFilter__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getLayoutAssignment_4()); }
(rule__DictionaryFilter__LayoutAssignment_4)?
{ after(grammarAccess.getDictionaryFilterAccess().getLayoutAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFilter__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__5__Impl
	rule__DictionaryFilter__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getContainercontentsAssignment_5()); }
(rule__DictionaryFilter__ContainercontentsAssignment_5)*
{ after(grammarAccess.getDictionaryFilterAccess().getContainercontentsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFilter__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFilter__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getDictionaryFilterAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__DictionaryResult__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryResult__Group__0__Impl
	rule__DictionaryResult__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getDictionaryresultKeyword_0()); }

	'dictionaryresult' 

{ after(grammarAccess.getDictionaryResultAccess().getDictionaryresultKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryResult__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryResult__Group__1__Impl
	rule__DictionaryResult__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getNameAssignment_1()); }
(rule__DictionaryResult__NameAssignment_1)
{ after(grammarAccess.getDictionaryResultAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryResult__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryResult__Group__2__Impl
	rule__DictionaryResult__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryResultAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryResult__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryResult__Group__3__Impl
	rule__DictionaryResult__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getResultcolumnsAssignment_3()); }
(rule__DictionaryResult__ResultcolumnsAssignment_3)*
{ after(grammarAccess.getDictionaryResultAccess().getResultcolumnsAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryResult__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryResult__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getDictionaryResultAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__ColumnLayout__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayout__Group__0__Impl
	rule__ColumnLayout__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayout__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutAccess().getLayoutKeyword_0()); }

	'layout' 

{ after(grammarAccess.getColumnLayoutAccess().getLayoutKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayout__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayout__Group__1__Impl
	rule__ColumnLayout__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayout__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutAccess().getLeftCurlyBracketKeyword_1()); }

	'{' 

{ after(grammarAccess.getColumnLayoutAccess().getLeftCurlyBracketKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayout__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayout__Group__2__Impl
	rule__ColumnLayout__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayout__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutAccess().getColumnsKeyword_2()); }

	'columns' 

{ after(grammarAccess.getColumnLayoutAccess().getColumnsKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayout__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayout__Group__3__Impl
	rule__ColumnLayout__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayout__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutAccess().getColumnsAssignment_3()); }
(rule__ColumnLayout__ColumnsAssignment_3)
{ after(grammarAccess.getColumnLayoutAccess().getColumnsAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayout__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayout__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayout__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getColumnLayoutAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__ColumnLayoutData__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayoutData__Group__0__Impl
	rule__ColumnLayoutData__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayoutData__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getLayoutdataKeyword_0()); }

	'layoutdata' 

{ after(grammarAccess.getColumnLayoutDataAccess().getLayoutdataKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayoutData__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayoutData__Group__1__Impl
	rule__ColumnLayoutData__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayoutData__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getLeftCurlyBracketKeyword_1()); }

	'{' 

{ after(grammarAccess.getColumnLayoutDataAccess().getLeftCurlyBracketKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayoutData__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayoutData__Group__2__Impl
	rule__ColumnLayoutData__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayoutData__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getColumnspanKeyword_2()); }

	'columnspan' 

{ after(grammarAccess.getColumnLayoutDataAccess().getColumnspanKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayoutData__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayoutData__Group__3__Impl
	rule__ColumnLayoutData__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayoutData__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getColumnspanAssignment_3()); }
(rule__ColumnLayoutData__ColumnspanAssignment_3)
{ after(grammarAccess.getColumnLayoutDataAccess().getColumnspanAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ColumnLayoutData__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ColumnLayoutData__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayoutData__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getColumnLayoutDataAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryComposite__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__0__Impl
	rule__DictionaryComposite__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getCompositeKeyword_0()); }

	'composite' 

{ after(grammarAccess.getDictionaryCompositeAccess().getCompositeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryComposite__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__1__Impl
	rule__DictionaryComposite__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getNameAssignment_1()); }
(rule__DictionaryComposite__NameAssignment_1)
{ after(grammarAccess.getDictionaryCompositeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryComposite__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__2__Impl
	rule__DictionaryComposite__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryCompositeAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryComposite__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__3__Impl
	rule__DictionaryComposite__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getLayoutdataAssignment_3()); }
(rule__DictionaryComposite__LayoutdataAssignment_3)?
{ after(grammarAccess.getDictionaryCompositeAccess().getLayoutdataAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryComposite__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__4__Impl
	rule__DictionaryComposite__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getLayoutAssignment_4()); }
(rule__DictionaryComposite__LayoutAssignment_4)?
{ after(grammarAccess.getDictionaryCompositeAccess().getLayoutAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryComposite__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__5__Impl
	rule__DictionaryComposite__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getContainercontentsAssignment_5()); }
(rule__DictionaryComposite__ContainercontentsAssignment_5)*
{ after(grammarAccess.getDictionaryCompositeAccess().getContainercontentsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryComposite__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryComposite__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getDictionaryCompositeAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__DictionaryEditableTable__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__0__Impl
	rule__DictionaryEditableTable__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getEditabletableKeyword_0()); }

	'editabletable' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getEditabletableKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__1__Impl
	rule__DictionaryEditableTable__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getNameAssignment_1()); }
(rule__DictionaryEditableTable__NameAssignment_1)
{ after(grammarAccess.getDictionaryEditableTableAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__2__Impl
	rule__DictionaryEditableTable__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__3__Impl
	rule__DictionaryEditableTable__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getGroup_3()); }
(rule__DictionaryEditableTable__Group_3__0)?
{ after(grammarAccess.getDictionaryEditableTableAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__4__Impl
	rule__DictionaryEditableTable__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getGroup_4()); }
(rule__DictionaryEditableTable__Group_4__0)?
{ after(grammarAccess.getDictionaryEditableTableAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__5__Impl
	rule__DictionaryEditableTable__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getContainercontentsAssignment_5()); }
(rule__DictionaryEditableTable__ContainercontentsAssignment_5)*
{ after(grammarAccess.getDictionaryEditableTableAccess().getContainercontentsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__6__Impl
	rule__DictionaryEditableTable__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeKeyword_6()); }

	'entityattribute' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__7__Impl
	rule__DictionaryEditableTable__Group__8
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeAssignment_7()); }
(rule__DictionaryEditableTable__EntityattributeAssignment_7)
{ after(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeAssignment_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__8
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__8__Impl
	rule__DictionaryEditableTable__Group__9
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__8__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getColumncontrolsKeyword_8()); }

	'columncontrols' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getColumncontrolsKeyword_8()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__9
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__9__Impl
	rule__DictionaryEditableTable__Group__10
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__9__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLeftCurlyBracketKeyword_9()); }

	'{' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getLeftCurlyBracketKeyword_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__10
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__10__Impl
	rule__DictionaryEditableTable__Group__11
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__10__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getColumncontrolsAssignment_10()); }
(rule__DictionaryEditableTable__ColumncontrolsAssignment_10)*
{ after(grammarAccess.getDictionaryEditableTableAccess().getColumncontrolsAssignment_10()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__11
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__11__Impl
	rule__DictionaryEditableTable__Group__12
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__11__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getRightCurlyBracketKeyword_11()); }

	'}' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getRightCurlyBracketKeyword_11()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group__12
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group__12__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group__12__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getRightCurlyBracketKeyword_12()); }

	'}' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getRightCurlyBracketKeyword_12()); }
)

;
finally {
	restoreStackSize(stackSize);
}




























rule__DictionaryEditableTable__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group_3__0__Impl
	rule__DictionaryEditableTable__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLayoutdataKeyword_3_0()); }

	'layoutdata' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getLayoutdataKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLayoutdataAssignment_3_1()); }
(rule__DictionaryEditableTable__LayoutdataAssignment_3_1)
{ after(grammarAccess.getDictionaryEditableTableAccess().getLayoutdataAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryEditableTable__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group_4__0__Impl
	rule__DictionaryEditableTable__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLayoutKeyword_4_0()); }

	'layout' 

{ after(grammarAccess.getDictionaryEditableTableAccess().getLayoutKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEditableTable__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEditableTable__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLayoutAssignment_4_1()); }
(rule__DictionaryEditableTable__LayoutAssignment_4_1)
{ after(grammarAccess.getDictionaryEditableTableAccess().getLayoutAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryAssignmentTable__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__0__Impl
	rule__DictionaryAssignmentTable__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getAssignmenttableKeyword_0()); }

	'assignmenttable' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getAssignmenttableKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__1__Impl
	rule__DictionaryAssignmentTable__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getNameAssignment_1()); }
(rule__DictionaryAssignmentTable__NameAssignment_1)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__2__Impl
	rule__DictionaryAssignmentTable__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__3__Impl
	rule__DictionaryAssignmentTable__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getGroup_3()); }
(rule__DictionaryAssignmentTable__Group_3__0)?
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__4__Impl
	rule__DictionaryAssignmentTable__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getGroup_4()); }
(rule__DictionaryAssignmentTable__Group_4__0)?
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__5__Impl
	rule__DictionaryAssignmentTable__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getContainercontentsAssignment_5()); }
(rule__DictionaryAssignmentTable__ContainercontentsAssignment_5)*
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getContainercontentsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__6__Impl
	rule__DictionaryAssignmentTable__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeKeyword_6()); }

	'entityattribute' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__7__Impl
	rule__DictionaryAssignmentTable__Group__8
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeAssignment_7()); }
(rule__DictionaryAssignmentTable__EntityattributeAssignment_7)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeAssignment_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__8
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__8__Impl
	rule__DictionaryAssignmentTable__Group__9
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__8__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryKeyword_8()); }

	'dictionary' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryKeyword_8()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__9
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__9__Impl
	rule__DictionaryAssignmentTable__Group__10
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__9__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryAssignment_9()); }
(rule__DictionaryAssignmentTable__DictionaryAssignment_9)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryAssignment_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__10
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__10__Impl
	rule__DictionaryAssignmentTable__Group__11
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__10__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getColumncontrolsKeyword_10()); }

	'columncontrols' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getColumncontrolsKeyword_10()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__11
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__11__Impl
	rule__DictionaryAssignmentTable__Group__12
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__11__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLeftCurlyBracketKeyword_11()); }

	'{' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLeftCurlyBracketKeyword_11()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__12
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__12__Impl
	rule__DictionaryAssignmentTable__Group__13
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__12__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getColumncontrolsAssignment_12()); }
(rule__DictionaryAssignmentTable__ColumncontrolsAssignment_12)*
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getColumncontrolsAssignment_12()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__13
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__13__Impl
	rule__DictionaryAssignmentTable__Group__14
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__13__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getRightCurlyBracketKeyword_13()); }

	'}' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getRightCurlyBracketKeyword_13()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group__14
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group__14__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group__14__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getRightCurlyBracketKeyword_14()); }

	'}' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getRightCurlyBracketKeyword_14()); }
)

;
finally {
	restoreStackSize(stackSize);
}
































rule__DictionaryAssignmentTable__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group_3__0__Impl
	rule__DictionaryAssignmentTable__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutdataKeyword_3_0()); }

	'layoutdata' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutdataKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutdataAssignment_3_1()); }
(rule__DictionaryAssignmentTable__LayoutdataAssignment_3_1)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutdataAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryAssignmentTable__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group_4__0__Impl
	rule__DictionaryAssignmentTable__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutKeyword_4_0()); }

	'layout' 

{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryAssignmentTable__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryAssignmentTable__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutAssignment_4_1()); }
(rule__DictionaryAssignmentTable__LayoutAssignment_4_1)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Labels__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group__0__Impl
	rule__Labels__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getLabelsAction_0()); }
(

)
{ after(grammarAccess.getLabelsAccess().getLabelsAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group__1__Impl
	rule__Labels__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getGroup_1()); }
(rule__Labels__Group_1__0)?
{ after(grammarAccess.getLabelsAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group__2__Impl
	rule__Labels__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getGroup_2()); }
(rule__Labels__Group_2__0)?
{ after(grammarAccess.getLabelsAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group__3__Impl
	rule__Labels__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getGroup_3()); }
(rule__Labels__Group_3__0)?
{ after(grammarAccess.getLabelsAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group__4__Impl
	rule__Labels__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getGroup_4()); }
(rule__Labels__Group_4__0)?
{ after(grammarAccess.getLabelsAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getGroup_5()); }
(rule__Labels__Group_5__0)?
{ after(grammarAccess.getLabelsAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__Labels__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_1__0__Impl
	rule__Labels__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getLabelKeyword_1_0()); }

	'label' 

{ after(grammarAccess.getLabelsAccess().getLabelKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getLabelAssignment_1_1()); }
(rule__Labels__LabelAssignment_1_1)
{ after(grammarAccess.getLabelsAccess().getLabelAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Labels__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_2__0__Impl
	rule__Labels__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getFilterLabelKeyword_2_0()); }

	'filterLabel' 

{ after(grammarAccess.getLabelsAccess().getFilterLabelKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getFilterLabelAssignment_2_1()); }
(rule__Labels__FilterLabelAssignment_2_1)
{ after(grammarAccess.getLabelsAccess().getFilterLabelAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Labels__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_3__0__Impl
	rule__Labels__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getColumnLabelKeyword_3_0()); }

	'columnLabel' 

{ after(grammarAccess.getLabelsAccess().getColumnLabelKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getColumnLabelAssignment_3_1()); }
(rule__Labels__ColumnLabelAssignment_3_1)
{ after(grammarAccess.getLabelsAccess().getColumnLabelAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Labels__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_4__0__Impl
	rule__Labels__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getEditorLabelKeyword_4_0()); }

	'editorLabel' 

{ after(grammarAccess.getLabelsAccess().getEditorLabelKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getEditorLabelAssignment_4_1()); }
(rule__Labels__EditorLabelAssignment_4_1)
{ after(grammarAccess.getLabelsAccess().getEditorLabelAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Labels__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_5__0__Impl
	rule__Labels__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getToolTipKeyword_5_0()); }

	'toolTip' 

{ after(grammarAccess.getLabelsAccess().getToolTipKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Labels__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Labels__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getToolTipAssignment_5_1()); }
(rule__Labels__ToolTipAssignment_5_1)
{ after(grammarAccess.getLabelsAccess().getToolTipAssignment_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BaseDictionaryControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group__0__Impl
	rule__BaseDictionaryControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getGroup_0()); }
(rule__BaseDictionaryControl__Group_0__0)?
{ after(grammarAccess.getBaseDictionaryControlAccess().getGroup_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group__1__Impl
	rule__BaseDictionaryControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getGroup_1()); }
(rule__BaseDictionaryControl__Group_1__0)?
{ after(grammarAccess.getBaseDictionaryControlAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group__2__Impl
	rule__BaseDictionaryControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getLabelsAssignment_2()); }
(rule__BaseDictionaryControl__LabelsAssignment_2)
{ after(grammarAccess.getBaseDictionaryControlAccess().getLabelsAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group__3__Impl
	rule__BaseDictionaryControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getMandatoryAssignment_3()); }
(rule__BaseDictionaryControl__MandatoryAssignment_3)?
{ after(grammarAccess.getBaseDictionaryControlAccess().getMandatoryAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group__4__Impl
	rule__BaseDictionaryControl__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getGroup_4()); }
(rule__BaseDictionaryControl__Group_4__0)?
{ after(grammarAccess.getBaseDictionaryControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getGroup_5()); }
(rule__BaseDictionaryControl__Group_5__0)?
{ after(grammarAccess.getBaseDictionaryControlAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__BaseDictionaryControl__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_0__0__Impl
	rule__BaseDictionaryControl__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeKeyword_0_0()); }

	'entityattribute' 

{ after(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeKeyword_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeAssignment_0_1()); }
(rule__BaseDictionaryControl__EntityattributeAssignment_0_1)
{ after(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeAssignment_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BaseDictionaryControl__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_1__0__Impl
	rule__BaseDictionaryControl__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getTypeKeyword_1_0()); }

	'type' 

{ after(grammarAccess.getBaseDictionaryControlAccess().getTypeKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getTypeAssignment_1_1()); }
(rule__BaseDictionaryControl__TypeAssignment_1_1)
{ after(grammarAccess.getBaseDictionaryControlAccess().getTypeAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BaseDictionaryControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_4__0__Impl
	rule__BaseDictionaryControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getWidthKeyword_4_0()); }

	'width' 

{ after(grammarAccess.getBaseDictionaryControlAccess().getWidthKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getWidthAssignment_4_1()); }
(rule__BaseDictionaryControl__WidthAssignment_4_1)
{ after(grammarAccess.getBaseDictionaryControlAccess().getWidthAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__BaseDictionaryControl__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_5__0__Impl
	rule__BaseDictionaryControl__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getReadonlyKeyword_5_0()); }

	'readonly' 

{ after(grammarAccess.getBaseDictionaryControlAccess().getReadonlyKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__BaseDictionaryControl__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__BaseDictionaryControl__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getReadonlyAssignment_5_1()); }
(rule__BaseDictionaryControl__ReadonlyAssignment_5_1)
{ after(grammarAccess.getBaseDictionaryControlAccess().getReadonlyAssignment_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryControlGroupOptionMultiFilterField__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionMultiFilterField__Group__0__Impl
	rule__DictionaryControlGroupOptionMultiFilterField__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionMultiFilterField__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getDictionaryControlGroupOptionMultiFilterFieldAction_0()); }
(

)
{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getDictionaryControlGroupOptionMultiFilterFieldAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroupOptionMultiFilterField__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionMultiFilterField__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionMultiFilterField__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getGroup_1()); }
(rule__DictionaryControlGroupOptionMultiFilterField__Group_1__0)?
{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryControlGroupOptionMultiFilterField__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionMultiFilterField__Group_1__0__Impl
	rule__DictionaryControlGroupOptionMultiFilterField__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionMultiFilterField__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getMultiFilterFieldKeyword_1_0()); }

	'multiFilterField' 

{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getMultiFilterFieldKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroupOptionMultiFilterField__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionMultiFilterField__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionMultiFilterField__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getMultiFilterFieldAssignment_1_1()); }
(rule__DictionaryControlGroupOptionMultiFilterField__MultiFilterFieldAssignment_1_1)
{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getMultiFilterFieldAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryControlGroupOptionsContainer__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionsContainer__Group__0__Impl
	rule__DictionaryControlGroupOptionsContainer__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionsContainer__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getDictionaryControlGroupOptionsContainerAction_0()); }
(

)
{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getDictionaryControlGroupOptionsContainerAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroupOptionsContainer__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionsContainer__Group__1__Impl
	rule__DictionaryControlGroupOptionsContainer__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionsContainer__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getGroupoptionsKeyword_1()); }

	'groupoptions' 

{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getGroupoptionsKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroupOptionsContainer__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionsContainer__Group__2__Impl
	rule__DictionaryControlGroupOptionsContainer__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionsContainer__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroupOptionsContainer__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionsContainer__Group__3__Impl
	rule__DictionaryControlGroupOptionsContainer__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionsContainer__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getOptionsAssignment_3()); }
(rule__DictionaryControlGroupOptionsContainer__OptionsAssignment_3)
{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getOptionsAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroupOptionsContainer__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroupOptionsContainer__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionsContainer__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryControlGroup__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group__0__Impl
	rule__DictionaryControlGroup__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getDictionaryControlGroupAction_0()); }
(

)
{ after(grammarAccess.getDictionaryControlGroupAccess().getDictionaryControlGroupAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group__1__Impl
	rule__DictionaryControlGroup__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getControlgroupKeyword_1()); }

	'controlgroup' 

{ after(grammarAccess.getDictionaryControlGroupAccess().getControlgroupKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group__2__Impl
	rule__DictionaryControlGroup__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getNameAssignment_2()); }
(rule__DictionaryControlGroup__NameAssignment_2)?
{ after(grammarAccess.getDictionaryControlGroupAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group__3__Impl
	rule__DictionaryControlGroup__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getGroup_3()); }
(rule__DictionaryControlGroup__Group_3__0)?
{ after(grammarAccess.getDictionaryControlGroupAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getGroup_4()); }
(rule__DictionaryControlGroup__Group_4__0)?
{ after(grammarAccess.getDictionaryControlGroupAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryControlGroup__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_3__0__Impl
	rule__DictionaryControlGroup__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryControlGroupAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getRefAssignment_3_1()); }
(rule__DictionaryControlGroup__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryControlGroupAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryControlGroup__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_4__0__Impl
	rule__DictionaryControlGroup__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryControlGroupAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_4__1__Impl
	rule__DictionaryControlGroup__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getControlGroupOptionsAssignment_4_1()); }
(rule__DictionaryControlGroup__ControlGroupOptionsAssignment_4_1)?
{ after(grammarAccess.getDictionaryControlGroupAccess().getControlGroupOptionsAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_4__2__Impl
	rule__DictionaryControlGroup__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getBaseControlAssignment_4_2()); }
(rule__DictionaryControlGroup__BaseControlAssignment_4_2)
{ after(grammarAccess.getDictionaryControlGroupAccess().getBaseControlAssignment_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_4__3__Impl
	rule__DictionaryControlGroup__Group_4__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getGroupcontrolsAssignment_4_3()); }
(rule__DictionaryControlGroup__GroupcontrolsAssignment_4_3)*
{ after(grammarAccess.getDictionaryControlGroupAccess().getGroupcontrolsAssignment_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryControlGroup__Group_4__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryControlGroup__Group_4__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__Group_4__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getRightCurlyBracketKeyword_4_4()); }

	'}' 

{ after(grammarAccess.getDictionaryControlGroupAccess().getRightCurlyBracketKeyword_4_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryHierarchicalControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group__0__Impl
	rule__DictionaryHierarchicalControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getDictionaryHierarchicalControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getDictionaryHierarchicalControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group__1__Impl
	rule__DictionaryHierarchicalControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalcontrolKeyword_1()); }

	'hierarchicalcontrol' 

{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalcontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group__2__Impl
	rule__DictionaryHierarchicalControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getNameAssignment_2()); }
(rule__DictionaryHierarchicalControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group__3__Impl
	rule__DictionaryHierarchicalControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getGroup_3()); }
(rule__DictionaryHierarchicalControl__Group_3__0)?
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getGroup_4()); }
(rule__DictionaryHierarchicalControl__Group_4__0)?
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryHierarchicalControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_3__0__Impl
	rule__DictionaryHierarchicalControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryHierarchicalControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryHierarchicalControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_4__0__Impl
	rule__DictionaryHierarchicalControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_4__1__Impl
	rule__DictionaryHierarchicalControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryHierarchicalControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_4__2__Impl
	rule__DictionaryHierarchicalControl__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalIdKeyword_4_2()); }

	'hierarchicalId' 

{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalIdKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_4__3__Impl
	rule__DictionaryHierarchicalControl__Group_4__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalIdAssignment_4_3()); }
(rule__DictionaryHierarchicalControl__HierarchicalIdAssignment_4_3)
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalIdAssignment_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryHierarchicalControl__Group_4__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryHierarchicalControl__Group_4__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__Group_4__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getRightCurlyBracketKeyword_4_4()); }

	'}' 

{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getRightCurlyBracketKeyword_4_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryTextControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group__0__Impl
	rule__DictionaryTextControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getDictionaryTextControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryTextControlAccess().getDictionaryTextControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group__1__Impl
	rule__DictionaryTextControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getTextcontrolKeyword_1()); }

	'textcontrol' 

{ after(grammarAccess.getDictionaryTextControlAccess().getTextcontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group__2__Impl
	rule__DictionaryTextControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getNameAssignment_2()); }
(rule__DictionaryTextControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryTextControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group__3__Impl
	rule__DictionaryTextControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getGroup_3()); }
(rule__DictionaryTextControl__Group_3__0)?
{ after(grammarAccess.getDictionaryTextControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getGroup_4()); }
(rule__DictionaryTextControl__Group_4__0)?
{ after(grammarAccess.getDictionaryTextControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryTextControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group_3__0__Impl
	rule__DictionaryTextControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryTextControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryTextControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryTextControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryTextControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group_4__0__Impl
	rule__DictionaryTextControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryTextControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group_4__1__Impl
	rule__DictionaryTextControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryTextControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryTextControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryTextControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryTextControl__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getRightCurlyBracketKeyword_4_2()); }

	'}' 

{ after(grammarAccess.getDictionaryTextControlAccess().getRightCurlyBracketKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DictionaryIntegerControlInputType__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControlInputType__Group__0__Impl
	rule__DictionaryIntegerControlInputType__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControlInputType__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getDictionaryIntegerControlInputTypeAction_0()); }
(

)
{ after(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getDictionaryIntegerControlInputTypeAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControlInputType__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControlInputType__Group__1__Impl
	rule__DictionaryIntegerControlInputType__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControlInputType__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getInputtypeKeyword_1()); }

	'inputtype' 

{ after(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getInputtypeKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControlInputType__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControlInputType__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControlInputType__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getInputtypeAssignment_2()); }
(rule__DictionaryIntegerControlInputType__InputtypeAssignment_2)
{ after(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getInputtypeAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DictionaryIntegerControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group__0__Impl
	rule__DictionaryIntegerControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getDictionaryIntegerControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryIntegerControlAccess().getDictionaryIntegerControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group__1__Impl
	rule__DictionaryIntegerControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getIntegercontrolKeyword_1()); }

	'integercontrol' 

{ after(grammarAccess.getDictionaryIntegerControlAccess().getIntegercontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group__2__Impl
	rule__DictionaryIntegerControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getNameAssignment_2()); }
(rule__DictionaryIntegerControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryIntegerControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group__3__Impl
	rule__DictionaryIntegerControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getGroup_3()); }
(rule__DictionaryIntegerControl__Group_3__0)?
{ after(grammarAccess.getDictionaryIntegerControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getGroup_4()); }
(rule__DictionaryIntegerControl__Group_4__0)?
{ after(grammarAccess.getDictionaryIntegerControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryIntegerControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group_3__0__Impl
	rule__DictionaryIntegerControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryIntegerControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryIntegerControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryIntegerControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryIntegerControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group_4__0__Impl
	rule__DictionaryIntegerControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryIntegerControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group_4__1__Impl
	rule__DictionaryIntegerControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryIntegerControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryIntegerControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group_4__2__Impl
	rule__DictionaryIntegerControl__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getOptionsAssignment_4_2()); }
(rule__DictionaryIntegerControl__OptionsAssignment_4_2)*
{ after(grammarAccess.getDictionaryIntegerControlAccess().getOptionsAssignment_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryIntegerControl__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryIntegerControl__Group_4__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getRightCurlyBracketKeyword_4_3()); }

	'}' 

{ after(grammarAccess.getDictionaryIntegerControlAccess().getRightCurlyBracketKeyword_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__DictionaryBigDecimalControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group__0__Impl
	rule__DictionaryBigDecimalControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getDictionaryBigDecimalControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getDictionaryBigDecimalControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group__1__Impl
	rule__DictionaryBigDecimalControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getBigdecimalcontrolKeyword_1()); }

	'bigdecimalcontrol' 

{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getBigdecimalcontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group__2__Impl
	rule__DictionaryBigDecimalControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getNameAssignment_2()); }
(rule__DictionaryBigDecimalControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group__3__Impl
	rule__DictionaryBigDecimalControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getGroup_3()); }
(rule__DictionaryBigDecimalControl__Group_3__0)?
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getGroup_4()); }
(rule__DictionaryBigDecimalControl__Group_4__0)?
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryBigDecimalControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group_3__0__Impl
	rule__DictionaryBigDecimalControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryBigDecimalControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryBigDecimalControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group_4__0__Impl
	rule__DictionaryBigDecimalControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group_4__1__Impl
	rule__DictionaryBigDecimalControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryBigDecimalControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBigDecimalControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBigDecimalControl__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getRightCurlyBracketKeyword_4_2()); }

	'}' 

{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getRightCurlyBracketKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DictionaryBooleanControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group__0__Impl
	rule__DictionaryBooleanControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getDictionaryBooleanControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryBooleanControlAccess().getDictionaryBooleanControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group__1__Impl
	rule__DictionaryBooleanControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getBooleancontrolKeyword_1()); }

	'booleancontrol' 

{ after(grammarAccess.getDictionaryBooleanControlAccess().getBooleancontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group__2__Impl
	rule__DictionaryBooleanControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getNameAssignment_2()); }
(rule__DictionaryBooleanControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryBooleanControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group__3__Impl
	rule__DictionaryBooleanControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getGroup_3()); }
(rule__DictionaryBooleanControl__Group_3__0)?
{ after(grammarAccess.getDictionaryBooleanControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getGroup_4()); }
(rule__DictionaryBooleanControl__Group_4__0)?
{ after(grammarAccess.getDictionaryBooleanControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryBooleanControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group_3__0__Impl
	rule__DictionaryBooleanControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryBooleanControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryBooleanControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryBooleanControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryBooleanControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group_4__0__Impl
	rule__DictionaryBooleanControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryBooleanControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group_4__1__Impl
	rule__DictionaryBooleanControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryBooleanControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryBooleanControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryBooleanControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryBooleanControl__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getRightCurlyBracketKeyword_4_2()); }

	'}' 

{ after(grammarAccess.getDictionaryBooleanControlAccess().getRightCurlyBracketKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DictionaryDateControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group__0__Impl
	rule__DictionaryDateControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getDictionaryDateControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryDateControlAccess().getDictionaryDateControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group__1__Impl
	rule__DictionaryDateControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getDatecontrolKeyword_1()); }

	'datecontrol' 

{ after(grammarAccess.getDictionaryDateControlAccess().getDatecontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group__2__Impl
	rule__DictionaryDateControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getNameAssignment_2()); }
(rule__DictionaryDateControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryDateControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group__3__Impl
	rule__DictionaryDateControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getGroup_3()); }
(rule__DictionaryDateControl__Group_3__0)?
{ after(grammarAccess.getDictionaryDateControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getGroup_4()); }
(rule__DictionaryDateControl__Group_4__0)?
{ after(grammarAccess.getDictionaryDateControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryDateControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group_3__0__Impl
	rule__DictionaryDateControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryDateControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryDateControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryDateControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryDateControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group_4__0__Impl
	rule__DictionaryDateControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryDateControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group_4__1__Impl
	rule__DictionaryDateControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryDateControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryDateControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryDateControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryDateControl__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getRightCurlyBracketKeyword_4_2()); }

	'}' 

{ after(grammarAccess.getDictionaryDateControlAccess().getRightCurlyBracketKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DictionaryEnumerationControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group__0__Impl
	rule__DictionaryEnumerationControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getDictionaryEnumerationControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getDictionaryEnumerationControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group__1__Impl
	rule__DictionaryEnumerationControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getEnumerationcontrolKeyword_1()); }

	'enumerationcontrol' 

{ after(grammarAccess.getDictionaryEnumerationControlAccess().getEnumerationcontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group__2__Impl
	rule__DictionaryEnumerationControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getNameAssignment_2()); }
(rule__DictionaryEnumerationControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group__3__Impl
	rule__DictionaryEnumerationControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getGroup_3()); }
(rule__DictionaryEnumerationControl__Group_3__0)?
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getGroup_4()); }
(rule__DictionaryEnumerationControl__Group_4__0)?
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryEnumerationControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group_3__0__Impl
	rule__DictionaryEnumerationControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryEnumerationControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryEnumerationControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryEnumerationControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group_4__0__Impl
	rule__DictionaryEnumerationControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryEnumerationControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group_4__1__Impl
	rule__DictionaryEnumerationControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryEnumerationControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryEnumerationControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryEnumerationControl__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getRightCurlyBracketKeyword_4_2()); }

	'}' 

{ after(grammarAccess.getDictionaryEnumerationControlAccess().getRightCurlyBracketKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__DictionaryReferenceControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group__0__Impl
	rule__DictionaryReferenceControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryReferenceControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryReferenceControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group__1__Impl
	rule__DictionaryReferenceControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getReferencecontrolKeyword_1()); }

	'referencecontrol' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getReferencecontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group__2__Impl
	rule__DictionaryReferenceControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getNameAssignment_2()); }
(rule__DictionaryReferenceControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryReferenceControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group__3__Impl
	rule__DictionaryReferenceControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getGroup_3()); }
(rule__DictionaryReferenceControl__Group_3__0)?
{ after(grammarAccess.getDictionaryReferenceControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4()); }
(rule__DictionaryReferenceControl__Group_4__0)?
{ after(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryReferenceControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_3__0__Impl
	rule__DictionaryReferenceControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryReferenceControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryReferenceControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4__0__Impl
	rule__DictionaryReferenceControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4__1__Impl
	rule__DictionaryReferenceControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryReferenceControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4__2__Impl
	rule__DictionaryReferenceControl__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4_2()); }
(rule__DictionaryReferenceControl__Group_4_2__0)?
{ after(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4__3__Impl
	rule__DictionaryReferenceControl__Group_4__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4_3()); }
(rule__DictionaryReferenceControl__Group_4_3__0)?
{ after(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4__4__Impl
	rule__DictionaryReferenceControl__Group_4__5
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4_4()); }
(rule__DictionaryReferenceControl__Group_4_4__0)?
{ after(grammarAccess.getDictionaryReferenceControlAccess().getGroup_4_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getRightCurlyBracketKeyword_4_5()); }

	'}' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getRightCurlyBracketKeyword_4_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__DictionaryReferenceControl__Group_4_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_2__0__Impl
	rule__DictionaryReferenceControl__Group_4_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryKeyword_4_2_0()); }

	'dictionary' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryKeyword_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryAssignment_4_2_1()); }
(rule__DictionaryReferenceControl__DictionaryAssignment_4_2_1)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryAssignment_4_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryReferenceControl__Group_4_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_3__0__Impl
	rule__DictionaryReferenceControl__Group_4_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getControlTypeKeyword_4_3_0()); }

	'controlType' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getControlTypeKeyword_4_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getControlTypeAssignment_4_3_1()); }
(rule__DictionaryReferenceControl__ControlTypeAssignment_4_3_1)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getControlTypeAssignment_4_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryReferenceControl__Group_4_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_4__0__Impl
	rule__DictionaryReferenceControl__Group_4_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getLabelcontrolsKeyword_4_4_0()); }

	'labelcontrols' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getLabelcontrolsKeyword_4_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_4__1__Impl
	rule__DictionaryReferenceControl__Group_4_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getLeftCurlyBracketKeyword_4_4_1()); }

	'{' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getLeftCurlyBracketKeyword_4_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_4__2__Impl
	rule__DictionaryReferenceControl__Group_4_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getLabelcontrolsAssignment_4_4_2()); }
(rule__DictionaryReferenceControl__LabelcontrolsAssignment_4_4_2)*
{ after(grammarAccess.getDictionaryReferenceControlAccess().getLabelcontrolsAssignment_4_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryReferenceControl__Group_4_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryReferenceControl__Group_4_4__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__Group_4_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getRightCurlyBracketKeyword_4_4_3()); }

	'}' 

{ after(grammarAccess.getDictionaryReferenceControlAccess().getRightCurlyBracketKeyword_4_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__DictionaryFileControl__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group__0__Impl
	rule__DictionaryFileControl__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getDictionaryFileControlAction_0()); }
(

)
{ after(grammarAccess.getDictionaryFileControlAccess().getDictionaryFileControlAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group__1__Impl
	rule__DictionaryFileControl__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getFilecontrolKeyword_1()); }

	'filecontrol' 

{ after(grammarAccess.getDictionaryFileControlAccess().getFilecontrolKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group__2__Impl
	rule__DictionaryFileControl__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getNameAssignment_2()); }
(rule__DictionaryFileControl__NameAssignment_2)?
{ after(grammarAccess.getDictionaryFileControlAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group__3__Impl
	rule__DictionaryFileControl__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getGroup_3()); }
(rule__DictionaryFileControl__Group_3__0)?
{ after(grammarAccess.getDictionaryFileControlAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getGroup_4()); }
(rule__DictionaryFileControl__Group_4__0)?
{ after(grammarAccess.getDictionaryFileControlAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__DictionaryFileControl__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group_3__0__Impl
	rule__DictionaryFileControl__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getRefKeyword_3_0()); }

	'ref' 

{ after(grammarAccess.getDictionaryFileControlAccess().getRefKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getRefAssignment_3_1()); }
(rule__DictionaryFileControl__RefAssignment_3_1)
{ after(grammarAccess.getDictionaryFileControlAccess().getRefAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__DictionaryFileControl__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group_4__0__Impl
	rule__DictionaryFileControl__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getLeftCurlyBracketKeyword_4_0()); }

	'{' 

{ after(grammarAccess.getDictionaryFileControlAccess().getLeftCurlyBracketKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group_4__1__Impl
	rule__DictionaryFileControl__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getBaseControlAssignment_4_1()); }
(rule__DictionaryFileControl__BaseControlAssignment_4_1)
{ after(grammarAccess.getDictionaryFileControlAccess().getBaseControlAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__DictionaryFileControl__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__DictionaryFileControl__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getRightCurlyBracketKeyword_4_2()); }

	'}' 

{ after(grammarAccess.getDictionaryFileControlAccess().getRightCurlyBracketKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__Module__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__0__Impl
	rule__Module__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getModuleKeyword_0()); }

	'module' 

{ after(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__1__Impl
	rule__Module__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getNameAssignment_1()); }
(rule__Module__NameAssignment_1)
{ after(grammarAccess.getModuleAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__2__Impl
	rule__Module__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__3__Impl
	rule__Module__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getModuledefinitionKeyword_3()); }

	'moduledefinition' 

{ after(grammarAccess.getModuleAccess().getModuledefinitionKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__4__Impl
	rule__Module__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getModuledefinitionAssignment_4()); }
(rule__Module__ModuledefinitionAssignment_4)
{ after(grammarAccess.getModuleAccess().getModuledefinitionAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__5__Impl
	rule__Module__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getGroup_5()); }
(rule__Module__Group_5__0)?
{ after(grammarAccess.getModuleAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__Module__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group_5__0__Impl
	rule__Module__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getParametersKeyword_5_0()); }

	'parameters' 

{ after(grammarAccess.getModuleAccess().getParametersKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group_5__1__Impl
	rule__Module__Group_5__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_5_1()); }

	'{' 

{ after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group_5__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group_5__2__Impl
	rule__Module__Group_5__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group_5__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getModuleParametersAssignment_5_2()); }
(rule__Module__ModuleParametersAssignment_5_2)*
{ after(grammarAccess.getModuleAccess().getModuleParametersAssignment_5_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Module__Group_5__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Module__Group_5__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Module__Group_5__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5_3()); }

	'}' 

{ after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__ModuleParameter__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleParameter__Group__0__Impl
	rule__ModuleParameter__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleParameter__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleParameterAccess().getModuleDefinitionParameterAssignment_0()); }
(rule__ModuleParameter__ModuleDefinitionParameterAssignment_0)
{ after(grammarAccess.getModuleParameterAccess().getModuleDefinitionParameterAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleParameter__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleParameter__Group__1__Impl
	rule__ModuleParameter__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleParameter__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleParameterAccess().getEqualsSignKeyword_1()); }

	'=' 

{ after(grammarAccess.getModuleParameterAccess().getEqualsSignKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleParameter__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleParameter__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleParameter__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleParameterAccess().getValueAssignment_2()); }
(rule__ModuleParameter__ValueAssignment_2)
{ after(grammarAccess.getModuleParameterAccess().getValueAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__ModuleDefinition__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group__0__Impl
	rule__ModuleDefinition__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getModuledefinitionKeyword_0()); }

	'moduledefinition' 

{ after(grammarAccess.getModuleDefinitionAccess().getModuledefinitionKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group__1__Impl
	rule__ModuleDefinition__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getNameAssignment_1()); }
(rule__ModuleDefinition__NameAssignment_1)
{ after(grammarAccess.getModuleDefinitionAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group__2__Impl
	rule__ModuleDefinition__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getModuleDefinitionAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group__3__Impl
	rule__ModuleDefinition__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getGroup_3()); }
(rule__ModuleDefinition__Group_3__0)?
{ after(grammarAccess.getModuleDefinitionAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getModuleDefinitionAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__ModuleDefinition__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group_3__0__Impl
	rule__ModuleDefinition__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getParametersKeyword_3_0()); }

	'parameters' 

{ after(grammarAccess.getModuleDefinitionAccess().getParametersKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group_3__1__Impl
	rule__ModuleDefinition__Group_3__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getLeftCurlyBracketKeyword_3_1()); }

	'{' 

{ after(grammarAccess.getModuleDefinitionAccess().getLeftCurlyBracketKeyword_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group_3__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group_3__2__Impl
	rule__ModuleDefinition__Group_3__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group_3__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getModuleDefinitionParametersAssignment_3_2()); }
(rule__ModuleDefinition__ModuleDefinitionParametersAssignment_3_2)*
{ after(grammarAccess.getModuleDefinitionAccess().getModuleDefinitionParametersAssignment_3_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinition__Group_3__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinition__Group_3__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__Group_3__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getRightCurlyBracketKeyword_3_3()); }

	'}' 

{ after(grammarAccess.getModuleDefinitionAccess().getRightCurlyBracketKeyword_3_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__ModuleDefinitionParameter__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinitionParameter__Group__0__Impl
	rule__ModuleDefinitionParameter__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getParameterKeyword_0()); }

	'parameter' 

{ after(grammarAccess.getModuleDefinitionParameterAccess().getParameterKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinitionParameter__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinitionParameter__Group__1__Impl
	rule__ModuleDefinitionParameter__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getNameAssignment_1()); }
(rule__ModuleDefinitionParameter__NameAssignment_1)
{ after(grammarAccess.getModuleDefinitionParameterAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinitionParameter__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinitionParameter__Group__2__Impl
	rule__ModuleDefinitionParameter__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getModuleDefinitionParameterAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinitionParameter__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinitionParameter__Group__3__Impl
	rule__ModuleDefinitionParameter__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getTypeKeyword_3()); }

	'type' 

{ after(grammarAccess.getModuleDefinitionParameterAccess().getTypeKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinitionParameter__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinitionParameter__Group__4__Impl
	rule__ModuleDefinitionParameter__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getTypeAssignment_4()); }
(rule__ModuleDefinitionParameter__TypeAssignment_4)
{ after(grammarAccess.getModuleDefinitionParameterAccess().getTypeAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ModuleDefinitionParameter__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ModuleDefinitionParameter__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getModuleDefinitionParameterAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__ServiceOptions__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceOptions__Group__0__Impl
	rule__ServiceOptions__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceOptions__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceOptionsAccess().getServiceOptionsAction_0()); }
(

)
{ after(grammarAccess.getServiceOptionsAccess().getServiceOptionsAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceOptions__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceOptions__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceOptions__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceOptionsAccess().getNonpublicAssignment_1()); }
(rule__ServiceOptions__NonpublicAssignment_1)?
{ after(grammarAccess.getServiceOptionsAccess().getNonpublicAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__ServiceMethod__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__0__Impl
	rule__ServiceMethod__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getMethodKeyword_0()); }

	'method' 

{ after(grammarAccess.getServiceMethodAccess().getMethodKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__1__Impl
	rule__ServiceMethod__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getGroup_1()); }
(rule__ServiceMethod__Group_1__0)?
{ after(grammarAccess.getServiceMethodAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__2__Impl
	rule__ServiceMethod__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getReturnTypeAssignment_2()); }
(rule__ServiceMethod__ReturnTypeAssignment_2)
{ after(grammarAccess.getServiceMethodAccess().getReturnTypeAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__3__Impl
	rule__ServiceMethod__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getNameAssignment_3()); }
(rule__ServiceMethod__NameAssignment_3)
{ after(grammarAccess.getServiceMethodAccess().getNameAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__4__Impl
	rule__ServiceMethod__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getLeftParenthesisKeyword_4()); }

	'(' 

{ after(grammarAccess.getServiceMethodAccess().getLeftParenthesisKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__5__Impl
	rule__ServiceMethod__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getGroup_5()); }
(rule__ServiceMethod__Group_5__0)?
{ after(grammarAccess.getServiceMethodAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getRightParenthesisKeyword_6()); }

	')' 

{ after(grammarAccess.getServiceMethodAccess().getRightParenthesisKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__ServiceMethod__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_1__0__Impl
	rule__ServiceMethod__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getLessThanSignKeyword_1_0()); }

	'<' 

{ after(grammarAccess.getServiceMethodAccess().getLessThanSignKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_1__1__Impl
	rule__ServiceMethod__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getTypeParameterAssignment_1_1()); }
(rule__ServiceMethod__TypeParameterAssignment_1_1)
{ after(grammarAccess.getServiceMethodAccess().getTypeParameterAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group_1__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_1__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_1__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getGreaterThanSignKeyword_1_2()); }

	'>' 

{ after(grammarAccess.getServiceMethodAccess().getGreaterThanSignKeyword_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__ServiceMethod__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_5__0__Impl
	rule__ServiceMethod__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getParamsAssignment_5_0()); }
(rule__ServiceMethod__ParamsAssignment_5_0)
{ after(grammarAccess.getServiceMethodAccess().getParamsAssignment_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getGroup_5_1()); }
(rule__ServiceMethod__Group_5_1__0)*
{ after(grammarAccess.getServiceMethodAccess().getGroup_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__ServiceMethod__Group_5_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_5_1__0__Impl
	rule__ServiceMethod__Group_5_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_5_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getCommaSpaceKeyword_5_1_0()); }

	', ' 

{ after(grammarAccess.getServiceMethodAccess().getCommaSpaceKeyword_5_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ServiceMethod__Group_5_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ServiceMethod__Group_5_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__Group_5_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getParamsAssignment_5_1_1()); }
(rule__ServiceMethod__ParamsAssignment_5_1_1)
{ after(grammarAccess.getServiceMethodAccess().getParamsAssignment_5_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Service__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__0__Impl
	rule__Service__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getServiceAction_0()); }
(

)
{ after(grammarAccess.getServiceAccess().getServiceAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__1__Impl
	rule__Service__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getServiceKeyword_1()); }

	'service' 

{ after(grammarAccess.getServiceAccess().getServiceKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__2__Impl
	rule__Service__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getNameAssignment_2()); }
(rule__Service__NameAssignment_2)
{ after(grammarAccess.getServiceAccess().getNameAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__3__Impl
	rule__Service__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getServiceAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__4__Impl
	rule__Service__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getGroup_4()); }
(rule__Service__Group_4__0)?
{ after(grammarAccess.getServiceAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__5__Impl
	rule__Service__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getRemoteMethodsAssignment_5()); }
(rule__Service__RemoteMethodsAssignment_5)*
{ after(grammarAccess.getServiceAccess().getRemoteMethodsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getServiceAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__Service__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group_4__0__Impl
	rule__Service__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getOptions1Keyword_4_0()); }

	'options1' 

{ after(grammarAccess.getServiceAccess().getOptions1Keyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group_4__1__Impl
	rule__Service__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getLeftCurlyBracketKeyword_4_1()); }

	'{' 

{ after(grammarAccess.getServiceAccess().getLeftCurlyBracketKeyword_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group_4__2__Impl
	rule__Service__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getRemoteServiceOptionsAssignment_4_2()); }
(rule__Service__RemoteServiceOptionsAssignment_4_2)
{ after(grammarAccess.getServiceAccess().getRemoteServiceOptionsAssignment_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Service__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Service__Group_4__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Service__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getRightCurlyBracketKeyword_4_3()); }

	'}' 

{ after(grammarAccess.getServiceAccess().getRightCurlyBracketKeyword_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__NavigationNode__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__0__Impl
	rule__NavigationNode__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getNavigationnodeKeyword_0()); }

	'navigationnode' 

{ after(grammarAccess.getNavigationNodeAccess().getNavigationnodeKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__1__Impl
	rule__NavigationNode__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getNameAssignment_1()); }
(rule__NavigationNode__NameAssignment_1)
{ after(grammarAccess.getNavigationNodeAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__2__Impl
	rule__NavigationNode__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getNavigationNodeAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__3__Impl
	rule__NavigationNode__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getGroup_3()); }
(rule__NavigationNode__Group_3__0)?
{ after(grammarAccess.getNavigationNodeAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__4__Impl
	rule__NavigationNode__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getGroup_4()); }
(rule__NavigationNode__Group_4__0)?
{ after(grammarAccess.getNavigationNodeAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__5__Impl
	rule__NavigationNode__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getGroup_5()); }
(rule__NavigationNode__Group_5__0)?
{ after(grammarAccess.getNavigationNodeAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__6__Impl
	rule__NavigationNode__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getGroup_6()); }
(rule__NavigationNode__Group_6__0)?
{ after(grammarAccess.getNavigationNodeAccess().getGroup_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__7__Impl
	rule__NavigationNode__Group__8
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getGroup_7()); }
(rule__NavigationNode__Group_7__0)?
{ after(grammarAccess.getNavigationNodeAccess().getGroup_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__8
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__8__Impl
	rule__NavigationNode__Group__9
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__8__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getNavigationNodesAssignment_8()); }
(rule__NavigationNode__NavigationNodesAssignment_8)*
{ after(grammarAccess.getNavigationNodeAccess().getNavigationNodesAssignment_8()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group__9
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group__9__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group__9__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getRightCurlyBracketKeyword_9()); }

	'}' 

{ after(grammarAccess.getNavigationNodeAccess().getRightCurlyBracketKeyword_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}






















rule__NavigationNode__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_3__0__Impl
	rule__NavigationNode__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getLabelKeyword_3_0()); }

	'label' 

{ after(grammarAccess.getNavigationNodeAccess().getLabelKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getLabelAssignment_3_1()); }
(rule__NavigationNode__LabelAssignment_3_1)
{ after(grammarAccess.getNavigationNodeAccess().getLabelAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__NavigationNode__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_4__0__Impl
	rule__NavigationNode__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleDefinitionKeyword_4_0()); }

	'moduleDefinition' 

{ after(grammarAccess.getNavigationNodeAccess().getModuleDefinitionKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleDefinitionAssignment_4_1()); }
(rule__NavigationNode__ModuleDefinitionAssignment_4_1)
{ after(grammarAccess.getNavigationNodeAccess().getModuleDefinitionAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__NavigationNode__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_5__0__Impl
	rule__NavigationNode__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleKeyword_5_0()); }

	'module' 

{ after(grammarAccess.getNavigationNodeAccess().getModuleKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleAssignment_5_1()); }
(rule__NavigationNode__ModuleAssignment_5_1)
{ after(grammarAccess.getNavigationNodeAccess().getModuleAssignment_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__NavigationNode__Group_6__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_6__0__Impl
	rule__NavigationNode__Group_6__1
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_6__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionaryEditorKeyword_6_0()); }

	'dictionaryEditor' 

{ after(grammarAccess.getNavigationNodeAccess().getDictionaryEditorKeyword_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group_6__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_6__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_6__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionaryEditorAssignment_6_1()); }
(rule__NavigationNode__DictionaryEditorAssignment_6_1)
{ after(grammarAccess.getNavigationNodeAccess().getDictionaryEditorAssignment_6_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__NavigationNode__Group_7__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_7__0__Impl
	rule__NavigationNode__Group_7__1
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_7__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionarySearchKeyword_7_0()); }

	'dictionarySearch' 

{ after(grammarAccess.getNavigationNodeAccess().getDictionarySearchKeyword_7_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__NavigationNode__Group_7__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__NavigationNode__Group_7__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__Group_7__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionarySearchAssignment_7_1()); }
(rule__NavigationNode__DictionarySearchAssignment_7_1)
{ after(grammarAccess.getNavigationNodeAccess().getDictionarySearchAssignment_7_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAssignment__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_0__0__Impl
	rule__XAssignment__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
(

)
{ after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAssignment__Group_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_0__1__Impl
	rule__XAssignment__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
(rule__XAssignment__FeatureAssignment_0_1)
{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAssignment__Group_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_0__2__Impl
	rule__XAssignment__Group_0__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
	ruleOpSingleAssign
{ after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAssignment__Group_0__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_0__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_0__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
(rule__XAssignment__ValueAssignment_0_3)
{ after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XAssignment__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1__0__Impl
	rule__XAssignment__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
	ruleXOrExpression
{ after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAssignment__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
(rule__XAssignment__Group_1_1__0)?
{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAssignment__Group_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1_1__0__Impl
	rule__XAssignment__Group_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
(rule__XAssignment__Group_1_1_0__0)
{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAssignment__Group_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
(rule__XAssignment__RightOperandAssignment_1_1_1)
{ after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAssignment__Group_1_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
(rule__XAssignment__Group_1_1_0_0__0)
{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XAssignment__Group_1_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1_1_0_0__0__Impl
	rule__XAssignment__Group_1_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
(

)
{ after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAssignment__Group_1_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAssignment__Group_1_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__Group_1_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
(rule__XAssignment__FeatureAssignment_1_1_0_0_1)
{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpMultiAssign__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpMultiAssign__Group_5__0__Impl
	rule__OpMultiAssign__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }

	'<' 

{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpMultiAssign__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpMultiAssign__Group_5__1__Impl
	rule__OpMultiAssign__Group_5__2
;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }

	'<' 

{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpMultiAssign__Group_5__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpMultiAssign__Group_5__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Group_5__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }

	'=' 

{ after(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__OpMultiAssign__Group_6__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpMultiAssign__Group_6__0__Impl
	rule__OpMultiAssign__Group_6__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Group_6__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }

	'>' 

{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpMultiAssign__Group_6__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpMultiAssign__Group_6__1__Impl
	rule__OpMultiAssign__Group_6__2
;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Group_6__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
(
	'>' 
)?
{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpMultiAssign__Group_6__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpMultiAssign__Group_6__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpMultiAssign__Group_6__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }

	'>=' 

{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XOrExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group__0__Impl
	rule__XOrExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
	ruleXAndExpression
{ after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XOrExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
(rule__XOrExpression__Group_1__0)*
{ after(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XOrExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group_1__0__Impl
	rule__XOrExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
(rule__XOrExpression__Group_1_0__0)
{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XOrExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
(rule__XOrExpression__RightOperandAssignment_1_1)
{ after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XOrExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
(rule__XOrExpression__Group_1_0_0__0)
{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XOrExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group_1_0_0__0__Impl
	rule__XOrExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XOrExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOrExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
(rule__XOrExpression__FeatureAssignment_1_0_0_1)
{ after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAndExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group__0__Impl
	rule__XAndExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
	ruleXEqualityExpression
{ after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAndExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
(rule__XAndExpression__Group_1__0)*
{ after(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAndExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group_1__0__Impl
	rule__XAndExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
(rule__XAndExpression__Group_1_0__0)
{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAndExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
(rule__XAndExpression__RightOperandAssignment_1_1)
{ after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAndExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
(rule__XAndExpression__Group_1_0_0__0)
{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XAndExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group_1_0_0__0__Impl
	rule__XAndExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAndExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAndExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
(rule__XAndExpression__FeatureAssignment_1_0_0_1)
{ after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XEqualityExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group__0__Impl
	rule__XEqualityExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
	ruleXRelationalExpression
{ after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XEqualityExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
(rule__XEqualityExpression__Group_1__0)*
{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XEqualityExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group_1__0__Impl
	rule__XEqualityExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
(rule__XEqualityExpression__Group_1_0__0)
{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XEqualityExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
(rule__XEqualityExpression__RightOperandAssignment_1_1)
{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XEqualityExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
(rule__XEqualityExpression__Group_1_0_0__0)
{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XEqualityExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group_1_0_0__0__Impl
	rule__XEqualityExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XEqualityExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XEqualityExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
(rule__XEqualityExpression__FeatureAssignment_1_0_0_1)
{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XRelationalExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group__0__Impl
	rule__XRelationalExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
	ruleXOtherOperatorExpression
{ after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XRelationalExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
(rule__XRelationalExpression__Alternatives_1)*
{ after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XRelationalExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_0__0__Impl
	rule__XRelationalExpression__Group_1_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
(rule__XRelationalExpression__Group_1_0_0__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XRelationalExpression__Group_1_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
(rule__XRelationalExpression__TypeAssignment_1_0_1)
{ after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XRelationalExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_0_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
(rule__XRelationalExpression__Group_1_0_0_0__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XRelationalExpression__Group_1_0_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_0_0_0__0__Impl
	rule__XRelationalExpression__Group_1_0_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_0_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
(

)
{ after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XRelationalExpression__Group_1_0_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_0_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_0_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }

	'instanceof' 

{ after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XRelationalExpression__Group_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_1__0__Impl
	rule__XRelationalExpression__Group_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
(rule__XRelationalExpression__Group_1_1_0__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XRelationalExpression__Group_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
(rule__XRelationalExpression__RightOperandAssignment_1_1_1)
{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XRelationalExpression__Group_1_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
(rule__XRelationalExpression__Group_1_1_0_0__0)
{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XRelationalExpression__Group_1_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_1_0_0__0__Impl
	rule__XRelationalExpression__Group_1_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
(

)
{ after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XRelationalExpression__Group_1_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XRelationalExpression__Group_1_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__Group_1_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
(rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1)
{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpCompare__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpCompare__Group_1__0__Impl
	rule__OpCompare__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpCompare__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); }

	'<' 

{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpCompare__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpCompare__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpCompare__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); }

	'=' 

{ after(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XOtherOperatorExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group__0__Impl
	rule__XOtherOperatorExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
	ruleXAdditiveExpression
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XOtherOperatorExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
(rule__XOtherOperatorExpression__Group_1__0)*
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XOtherOperatorExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group_1__0__Impl
	rule__XOtherOperatorExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
(rule__XOtherOperatorExpression__Group_1_0__0)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XOtherOperatorExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
(rule__XOtherOperatorExpression__RightOperandAssignment_1_1)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XOtherOperatorExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
(rule__XOtherOperatorExpression__Group_1_0_0__0)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XOtherOperatorExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
	rule__XOtherOperatorExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XOtherOperatorExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
(rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpOther__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_2__0__Impl
	rule__OpOther__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }

	'>' 

{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpOther__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }

	'..' 

{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpOther__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_5__0__Impl
	rule__OpOther__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }

	'>' 

{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpOther__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_5__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
(rule__OpOther__Alternatives_5_1)
{ after(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpOther__Group_5_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_5_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_5_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
(rule__OpOther__Group_5_1_0_0__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__OpOther__Group_5_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_5_1_0_0__0__Impl
	rule__OpOther__Group_5_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_5_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); }

	'>' 

{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpOther__Group_5_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_5_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_5_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); }

	'>' 

{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpOther__Group_6__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_6__0__Impl
	rule__OpOther__Group_6__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_6__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); }

	'<' 

{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpOther__Group_6__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_6__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_6__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); }
(rule__OpOther__Alternatives_6_1)
{ after(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__OpOther__Group_6_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_6_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_6_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); }
(rule__OpOther__Group_6_1_0_0__0)
{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__OpOther__Group_6_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_6_1_0_0__0__Impl
	rule__OpOther__Group_6_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_6_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); }

	'<' 

{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__OpOther__Group_6_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__OpOther__Group_6_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__OpOther__Group_6_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); }

	'<' 

{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAdditiveExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group__0__Impl
	rule__XAdditiveExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); }
	ruleXMultiplicativeExpression
{ after(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAdditiveExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); }
(rule__XAdditiveExpression__Group_1__0)*
{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAdditiveExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group_1__0__Impl
	rule__XAdditiveExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); }
(rule__XAdditiveExpression__Group_1_0__0)
{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAdditiveExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); }
(rule__XAdditiveExpression__RightOperandAssignment_1_1)
{ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XAdditiveExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); }
(rule__XAdditiveExpression__Group_1_0_0__0)
{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XAdditiveExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group_1_0_0__0__Impl
	rule__XAdditiveExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XAdditiveExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XAdditiveExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); }
(rule__XAdditiveExpression__FeatureAssignment_1_0_0_1)
{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMultiplicativeExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group__0__Impl
	rule__XMultiplicativeExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); }
	ruleXUnaryOperation
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMultiplicativeExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); }
(rule__XMultiplicativeExpression__Group_1__0)*
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMultiplicativeExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group_1__0__Impl
	rule__XMultiplicativeExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); }
(rule__XMultiplicativeExpression__Group_1_0__0)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMultiplicativeExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); }
(rule__XMultiplicativeExpression__RightOperandAssignment_1_1)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMultiplicativeExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); }
(rule__XMultiplicativeExpression__Group_1_0_0__0)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XMultiplicativeExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group_1_0_0__0__Impl
	rule__XMultiplicativeExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMultiplicativeExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); }
(rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XUnaryOperation__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XUnaryOperation__Group_0__0__Impl
	rule__XUnaryOperation__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XUnaryOperation__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); }
(

)
{ after(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XUnaryOperation__Group_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XUnaryOperation__Group_0__1__Impl
	rule__XUnaryOperation__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XUnaryOperation__Group_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); }
(rule__XUnaryOperation__FeatureAssignment_0_1)
{ after(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XUnaryOperation__Group_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XUnaryOperation__Group_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XUnaryOperation__Group_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); }
(rule__XUnaryOperation__OperandAssignment_0_2)
{ after(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XCastedExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group__0__Impl
	rule__XCastedExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); }
	ruleXPostfixOperation
{ after(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCastedExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); }
(rule__XCastedExpression__Group_1__0)*
{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XCastedExpression__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group_1__0__Impl
	rule__XCastedExpression__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); }
(rule__XCastedExpression__Group_1_0__0)
{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCastedExpression__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); }
(rule__XCastedExpression__TypeAssignment_1_1)
{ after(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XCastedExpression__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); }
(rule__XCastedExpression__Group_1_0_0__0)
{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XCastedExpression__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group_1_0_0__0__Impl
	rule__XCastedExpression__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); }
(

)
{ after(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCastedExpression__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCastedExpression__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); }

	'as' 

{ after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XPostfixOperation__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XPostfixOperation__Group__0__Impl
	rule__XPostfixOperation__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XPostfixOperation__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); }
	ruleXMemberFeatureCall
{ after(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XPostfixOperation__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XPostfixOperation__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XPostfixOperation__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); }
(rule__XPostfixOperation__Group_1__0)?
{ after(grammarAccess.getXPostfixOperationAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XPostfixOperation__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XPostfixOperation__Group_1__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XPostfixOperation__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); }
(rule__XPostfixOperation__Group_1_0__0)
{ after(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XPostfixOperation__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XPostfixOperation__Group_1_0__0__Impl
	rule__XPostfixOperation__Group_1_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XPostfixOperation__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); }
(

)
{ after(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XPostfixOperation__Group_1_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XPostfixOperation__Group_1_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XPostfixOperation__Group_1_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); }
(rule__XPostfixOperation__FeatureAssignment_1_0_1)
{ after(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMemberFeatureCall__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group__0__Impl
	rule__XMemberFeatureCall__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); }
	ruleXPrimaryExpression
{ after(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); }
(rule__XMemberFeatureCall__Alternatives_1)*
{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMemberFeatureCall__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0__0__Impl
	rule__XMemberFeatureCall__Group_1_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); }
(rule__XMemberFeatureCall__Group_1_0_0__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); }
(rule__XMemberFeatureCall__ValueAssignment_1_0_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMemberFeatureCall__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); }
(rule__XMemberFeatureCall__Group_1_0_0_0__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XMemberFeatureCall__Group_1_0_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl
	rule__XMemberFeatureCall__Group_1_0_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); }
(

)
{ after(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_0_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl
	rule__XMemberFeatureCall__Group_1_0_0_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); }
(rule__XMemberFeatureCall__Alternatives_1_0_0_0_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_0_0_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl
	rule__XMemberFeatureCall__Group_1_0_0_0__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); }
(rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2)
{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_0_0_0__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); }
	ruleOpSingleAssign
{ after(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XMemberFeatureCall__Group_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1__0__Impl
	rule__XMemberFeatureCall__Group_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); }
(rule__XMemberFeatureCall__Group_1_1_0__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1__1__Impl
	rule__XMemberFeatureCall__Group_1_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); }
(rule__XMemberFeatureCall__Group_1_1_1__0)?
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1__2__Impl
	rule__XMemberFeatureCall__Group_1_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); }
(rule__XMemberFeatureCall__FeatureAssignment_1_1_2)
{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1__3__Impl
	rule__XMemberFeatureCall__Group_1_1__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); }
(rule__XMemberFeatureCall__Group_1_1_3__0)?
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); }
(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4)?
{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__XMemberFeatureCall__Group_1_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); }
(rule__XMemberFeatureCall__Group_1_1_0_0__0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XMemberFeatureCall__Group_1_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl
	rule__XMemberFeatureCall__Group_1_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); }
(

)
{ after(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); }
(rule__XMemberFeatureCall__Alternatives_1_1_0_0_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMemberFeatureCall__Group_1_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_1__0__Impl
	rule__XMemberFeatureCall__Group_1_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); }

	'<' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_1__1__Impl
	rule__XMemberFeatureCall__Group_1_1_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); }
(rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_1__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_1__2__Impl
	rule__XMemberFeatureCall__Group_1_1_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_1__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); }
(rule__XMemberFeatureCall__Group_1_1_1_2__0)*
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_1__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_1__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_1__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); }

	'>' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XMemberFeatureCall__Group_1_1_1_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl
	rule__XMemberFeatureCall__Group_1_1_1_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); }

	',' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_1_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); }
(rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMemberFeatureCall__Group_1_1_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3__0__Impl
	rule__XMemberFeatureCall__Group_1_1_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); }
(rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3__1__Impl
	rule__XMemberFeatureCall__Group_1_1_3__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); }
(rule__XMemberFeatureCall__Alternatives_1_1_3_1)?
{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_3__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); }

	')' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XMemberFeatureCall__Group_1_1_3_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl
	rule__XMemberFeatureCall__Group_1_1_3_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); }
(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0)
{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_3_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); }
(rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0)*
{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl
	rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); }

	',' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); }
(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1)
{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XSetLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group__0__Impl
	rule__XSetLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); }
(

)
{ after(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSetLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group__1__Impl
	rule__XSetLiteral__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); }

	'#' 

{ after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSetLiteral__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group__2__Impl
	rule__XSetLiteral__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); }

	'{' 

{ after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSetLiteral__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group__3__Impl
	rule__XSetLiteral__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getGroup_3()); }
(rule__XSetLiteral__Group_3__0)?
{ after(grammarAccess.getXSetLiteralAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSetLiteral__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); }

	'}' 

{ after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__XSetLiteral__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group_3__0__Impl
	rule__XSetLiteral__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); }
(rule__XSetLiteral__ElementsAssignment_3_0)
{ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSetLiteral__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); }
(rule__XSetLiteral__Group_3_1__0)*
{ after(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XSetLiteral__Group_3_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group_3_1__0__Impl
	rule__XSetLiteral__Group_3_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group_3_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); }

	',' 

{ after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSetLiteral__Group_3_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSetLiteral__Group_3_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__Group_3_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); }
(rule__XSetLiteral__ElementsAssignment_3_1_1)
{ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XListLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group__0__Impl
	rule__XListLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); }
(

)
{ after(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XListLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group__1__Impl
	rule__XListLiteral__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); }

	'#' 

{ after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XListLiteral__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group__2__Impl
	rule__XListLiteral__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); }

	'[' 

{ after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XListLiteral__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group__3__Impl
	rule__XListLiteral__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getGroup_3()); }
(rule__XListLiteral__Group_3__0)?
{ after(grammarAccess.getXListLiteralAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XListLiteral__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); }

	']' 

{ after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__XListLiteral__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group_3__0__Impl
	rule__XListLiteral__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); }
(rule__XListLiteral__ElementsAssignment_3_0)
{ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XListLiteral__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); }
(rule__XListLiteral__Group_3_1__0)*
{ after(grammarAccess.getXListLiteralAccess().getGroup_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XListLiteral__Group_3_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group_3_1__0__Impl
	rule__XListLiteral__Group_3_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group_3_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); }

	',' 

{ after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XListLiteral__Group_3_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XListLiteral__Group_3_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__Group_3_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); }
(rule__XListLiteral__ElementsAssignment_3_1_1)
{ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XClosure__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group__0__Impl
	rule__XClosure__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getGroup_0()); }
(rule__XClosure__Group_0__0)
{ after(grammarAccess.getXClosureAccess().getGroup_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group__1__Impl
	rule__XClosure__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getGroup_1()); }
(rule__XClosure__Group_1__0)?
{ after(grammarAccess.getXClosureAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group__2__Impl
	rule__XClosure__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); }
(rule__XClosure__ExpressionAssignment_2)
{ after(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); }

	']' 

{ after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XClosure__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getGroup_0_0()); }
(rule__XClosure__Group_0_0__0)
{ after(grammarAccess.getXClosureAccess().getGroup_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XClosure__Group_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_0_0__0__Impl
	rule__XClosure__Group_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); }
(

)
{ after(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); }

	'[' 

{ after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XClosure__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getGroup_1_0()); }
(rule__XClosure__Group_1_0__0)
{ after(grammarAccess.getXClosureAccess().getGroup_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XClosure__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1_0__0__Impl
	rule__XClosure__Group_1_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); }
(rule__XClosure__Group_1_0_0__0)?
{ after(grammarAccess.getXClosureAccess().getGroup_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group_1_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); }
(rule__XClosure__ExplicitSyntaxAssignment_1_0_1)
{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XClosure__Group_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1_0_0__0__Impl
	rule__XClosure__Group_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); }
(rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0)
{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); }
(rule__XClosure__Group_1_0_0_1__0)*
{ after(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XClosure__Group_1_0_0_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1_0_0_1__0__Impl
	rule__XClosure__Group_1_0_0_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1_0_0_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); }

	',' 

{ after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XClosure__Group_1_0_0_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XClosure__Group_1_0_0_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__Group_1_0_0_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); }
(rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1)
{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XExpressionInClosure__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XExpressionInClosure__Group__0__Impl
	rule__XExpressionInClosure__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XExpressionInClosure__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); }
(

)
{ after(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XExpressionInClosure__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XExpressionInClosure__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XExpressionInClosure__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); }
(rule__XExpressionInClosure__Group_1__0)*
{ after(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XExpressionInClosure__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XExpressionInClosure__Group_1__0__Impl
	rule__XExpressionInClosure__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XExpressionInClosure__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); }
(rule__XExpressionInClosure__ExpressionsAssignment_1_0)
{ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XExpressionInClosure__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XExpressionInClosure__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XExpressionInClosure__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); }
(
	';' 
)?
{ after(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XShortClosure__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group__0__Impl
	rule__XShortClosure__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getGroup_0()); }
(rule__XShortClosure__Group_0__0)
{ after(grammarAccess.getXShortClosureAccess().getGroup_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XShortClosure__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); }
(rule__XShortClosure__ExpressionAssignment_1)
{ after(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XShortClosure__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); }
(rule__XShortClosure__Group_0_0__0)
{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XShortClosure__Group_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0__0__Impl
	rule__XShortClosure__Group_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); }
(

)
{ after(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XShortClosure__Group_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0__1__Impl
	rule__XShortClosure__Group_0_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); }
(rule__XShortClosure__Group_0_0_1__0)?
{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XShortClosure__Group_0_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); }
(rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2)
{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XShortClosure__Group_0_0_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0_1__0__Impl
	rule__XShortClosure__Group_0_0_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); }
(rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0)
{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XShortClosure__Group_0_0_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); }
(rule__XShortClosure__Group_0_0_1_1__0)*
{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XShortClosure__Group_0_0_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0_1_1__0__Impl
	rule__XShortClosure__Group_0_0_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); }

	',' 

{ after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XShortClosure__Group_0_0_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XShortClosure__Group_0_0_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__Group_0_0_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); }
(rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1)
{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XParenthesizedExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XParenthesizedExpression__Group__0__Impl
	rule__XParenthesizedExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XParenthesizedExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); }

	'(' 

{ after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XParenthesizedExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XParenthesizedExpression__Group__1__Impl
	rule__XParenthesizedExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XParenthesizedExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); }
	ruleXExpression
{ after(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XParenthesizedExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XParenthesizedExpression__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XParenthesizedExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); }

	')' 

{ after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XIfExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__0__Impl
	rule__XIfExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); }
(

)
{ after(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__1__Impl
	rule__XIfExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); }

	'if' 

{ after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__2__Impl
	rule__XIfExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); }

	'(' 

{ after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__3__Impl
	rule__XIfExpression__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); }
(rule__XIfExpression__IfAssignment_3)
{ after(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__4__Impl
	rule__XIfExpression__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); }

	')' 

{ after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__5__Impl
	rule__XIfExpression__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); }
(rule__XIfExpression__ThenAssignment_5)
{ after(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getGroup_6()); }
(rule__XIfExpression__Group_6__0)?
{ after(grammarAccess.getXIfExpressionAccess().getGroup_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__XIfExpression__Group_6__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group_6__0__Impl
	rule__XIfExpression__Group_6__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group_6__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); }
(
	'else' 
)
{ after(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XIfExpression__Group_6__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XIfExpression__Group_6__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__Group_6__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); }
(rule__XIfExpression__ElseAssignment_6_1)
{ after(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XSwitchExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__0__Impl
	rule__XSwitchExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); }
(

)
{ after(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__1__Impl
	rule__XSwitchExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); }

	'switch' 

{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__2__Impl
	rule__XSwitchExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); }
(rule__XSwitchExpression__Alternatives_2)
{ after(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__3__Impl
	rule__XSwitchExpression__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__4__Impl
	rule__XSwitchExpression__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
(rule__XSwitchExpression__CasesAssignment_4)*
{ after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__5__Impl
	rule__XSwitchExpression__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); }
(rule__XSwitchExpression__Group_5__0)?
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); }

	'}' 

{ after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__XSwitchExpression__Group_2_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0__0__Impl
	rule__XSwitchExpression__Group_2_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); }
(rule__XSwitchExpression__Group_2_0_0__0)
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_2_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0__1__Impl
	rule__XSwitchExpression__Group_2_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); }
(rule__XSwitchExpression__SwitchAssignment_2_0_1)
{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_2_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); }

	')' 

{ after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XSwitchExpression__Group_2_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); }
(rule__XSwitchExpression__Group_2_0_0_0__0)
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XSwitchExpression__Group_2_0_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0_0_0__0__Impl
	rule__XSwitchExpression__Group_2_0_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); }

	'(' 

{ after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_2_0_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0_0_0__1__Impl
	rule__XSwitchExpression__Group_2_0_0_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); }
(rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1)
{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_2_0_0_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_0_0_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_0_0_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); }

	':' 

{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XSwitchExpression__Group_2_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_1__0__Impl
	rule__XSwitchExpression__Group_2_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); }
(rule__XSwitchExpression__Group_2_1_0__0)?
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_2_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); }
(rule__XSwitchExpression__SwitchAssignment_2_1_1)
{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XSwitchExpression__Group_2_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_1_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); }
(rule__XSwitchExpression__Group_2_1_0_0__0)
{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XSwitchExpression__Group_2_1_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_1_0_0__0__Impl
	rule__XSwitchExpression__Group_2_1_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_1_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); }
(rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0)
{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_2_1_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_2_1_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_2_1_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); }

	':' 

{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XSwitchExpression__Group_5__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_5__0__Impl
	rule__XSwitchExpression__Group_5__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_5__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); }

	'default' 

{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_5__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_5__1__Impl
	rule__XSwitchExpression__Group_5__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_5__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); }

	':' 

{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSwitchExpression__Group_5__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSwitchExpression__Group_5__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__Group_5__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); }
(rule__XSwitchExpression__DefaultAssignment_5_2)
{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XCasePart__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group__0__Impl
	rule__XCasePart__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); }
(

)
{ after(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCasePart__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group__1__Impl
	rule__XCasePart__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); }
(rule__XCasePart__TypeGuardAssignment_1)?
{ after(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCasePart__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group__2__Impl
	rule__XCasePart__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getGroup_2()); }
(rule__XCasePart__Group_2__0)?
{ after(grammarAccess.getXCasePartAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCasePart__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getAlternatives_3()); }
(rule__XCasePart__Alternatives_3)
{ after(grammarAccess.getXCasePartAccess().getAlternatives_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XCasePart__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group_2__0__Impl
	rule__XCasePart__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); }

	'case' 

{ after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCasePart__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); }
(rule__XCasePart__CaseAssignment_2_1)
{ after(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XCasePart__Group_3_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group_3_0__0__Impl
	rule__XCasePart__Group_3_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group_3_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); }

	':' 

{ after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCasePart__Group_3_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCasePart__Group_3_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__Group_3_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); }
(rule__XCasePart__ThenAssignment_3_0_1)
{ after(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XForLoopExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group__0__Impl
	rule__XForLoopExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); }
(rule__XForLoopExpression__Group_0__0)
{ after(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group__1__Impl
	rule__XForLoopExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); }
(rule__XForLoopExpression__ForExpressionAssignment_1)
{ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group__2__Impl
	rule__XForLoopExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); }

	')' 

{ after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); }
(rule__XForLoopExpression__EachExpressionAssignment_3)
{ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XForLoopExpression__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); }
(rule__XForLoopExpression__Group_0_0__0)
{ after(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XForLoopExpression__Group_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group_0_0__0__Impl
	rule__XForLoopExpression__Group_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); }
(

)
{ after(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group_0_0__1__Impl
	rule__XForLoopExpression__Group_0_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); }

	'for' 

{ after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group_0_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group_0_0__2__Impl
	rule__XForLoopExpression__Group_0_0__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group_0_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }

	'(' 

{ after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group_0_0__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group_0_0__3__Impl
	rule__XForLoopExpression__Group_0_0__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group_0_0__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); }
(rule__XForLoopExpression__DeclaredParamAssignment_0_0_3)
{ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XForLoopExpression__Group_0_0__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XForLoopExpression__Group_0_0__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__Group_0_0__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); }

	':' 

{ after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__XBasicForLoopExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__0__Impl
	rule__XBasicForLoopExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); }
(

)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__1__Impl
	rule__XBasicForLoopExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); }

	'for' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__2__Impl
	rule__XBasicForLoopExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); }

	'(' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__3__Impl
	rule__XBasicForLoopExpression__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); }
(rule__XBasicForLoopExpression__Group_3__0)?
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__4__Impl
	rule__XBasicForLoopExpression__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); }

	';' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__5__Impl
	rule__XBasicForLoopExpression__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); }
(rule__XBasicForLoopExpression__ExpressionAssignment_5)?
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__6__Impl
	rule__XBasicForLoopExpression__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); }

	';' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__7
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__7__Impl
	rule__XBasicForLoopExpression__Group__8
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__7__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); }
(rule__XBasicForLoopExpression__Group_7__0)?
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__8
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__8__Impl
	rule__XBasicForLoopExpression__Group__9
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__8__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); }

	')' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group__9
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group__9__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group__9__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); }
(rule__XBasicForLoopExpression__EachExpressionAssignment_9)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); }
)

;
finally {
	restoreStackSize(stackSize);
}






















rule__XBasicForLoopExpression__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_3__0__Impl
	rule__XBasicForLoopExpression__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); }
(rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); }
(rule__XBasicForLoopExpression__Group_3_1__0)*
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XBasicForLoopExpression__Group_3_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_3_1__0__Impl
	rule__XBasicForLoopExpression__Group_3_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_3_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); }

	',' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group_3_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_3_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_3_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); }
(rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XBasicForLoopExpression__Group_7__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_7__0__Impl
	rule__XBasicForLoopExpression__Group_7__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_7__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); }
(rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group_7__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_7__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_7__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); }
(rule__XBasicForLoopExpression__Group_7_1__0)*
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XBasicForLoopExpression__Group_7_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_7_1__0__Impl
	rule__XBasicForLoopExpression__Group_7_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_7_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); }

	',' 

{ after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBasicForLoopExpression__Group_7_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBasicForLoopExpression__Group_7_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__Group_7_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); }
(rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1)
{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XWhileExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XWhileExpression__Group__0__Impl
	rule__XWhileExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); }
(

)
{ after(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XWhileExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XWhileExpression__Group__1__Impl
	rule__XWhileExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); }

	'while' 

{ after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XWhileExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XWhileExpression__Group__2__Impl
	rule__XWhileExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); }

	'(' 

{ after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XWhileExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XWhileExpression__Group__3__Impl
	rule__XWhileExpression__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); }
(rule__XWhileExpression__PredicateAssignment_3)
{ after(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XWhileExpression__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XWhileExpression__Group__4__Impl
	rule__XWhileExpression__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); }

	')' 

{ after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XWhileExpression__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XWhileExpression__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); }
(rule__XWhileExpression__BodyAssignment_5)
{ after(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__XDoWhileExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__0__Impl
	rule__XDoWhileExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); }
(

)
{ after(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XDoWhileExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__1__Impl
	rule__XDoWhileExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); }

	'do' 

{ after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XDoWhileExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__2__Impl
	rule__XDoWhileExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); }
(rule__XDoWhileExpression__BodyAssignment_2)
{ after(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XDoWhileExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__3__Impl
	rule__XDoWhileExpression__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); }

	'while' 

{ after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XDoWhileExpression__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__4__Impl
	rule__XDoWhileExpression__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); }

	'(' 

{ after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XDoWhileExpression__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__5__Impl
	rule__XDoWhileExpression__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); }
(rule__XDoWhileExpression__PredicateAssignment_5)
{ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XDoWhileExpression__Group__6
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XDoWhileExpression__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__Group__6__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); }

	')' 

{ after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); }
)

;
finally {
	restoreStackSize(stackSize);
}
















rule__XBlockExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBlockExpression__Group__0__Impl
	rule__XBlockExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); }
(

)
{ after(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBlockExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBlockExpression__Group__1__Impl
	rule__XBlockExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); }

	'{' 

{ after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBlockExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBlockExpression__Group__2__Impl
	rule__XBlockExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); }
(rule__XBlockExpression__Group_2__0)*
{ after(grammarAccess.getXBlockExpressionAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBlockExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBlockExpression__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); }

	'}' 

{ after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XBlockExpression__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBlockExpression__Group_2__0__Impl
	rule__XBlockExpression__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); }
(rule__XBlockExpression__ExpressionsAssignment_2_0)
{ after(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBlockExpression__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBlockExpression__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); }
(
	';' 
)?
{ after(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XVariableDeclaration__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group__0__Impl
	rule__XVariableDeclaration__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); }
(

)
{ after(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XVariableDeclaration__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group__1__Impl
	rule__XVariableDeclaration__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); }
(rule__XVariableDeclaration__Alternatives_1)
{ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XVariableDeclaration__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group__2__Impl
	rule__XVariableDeclaration__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); }
(rule__XVariableDeclaration__Alternatives_2)
{ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XVariableDeclaration__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); }
(rule__XVariableDeclaration__Group_3__0)?
{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XVariableDeclaration__Group_2_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group_2_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group_2_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); }
(rule__XVariableDeclaration__Group_2_0_0__0)
{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XVariableDeclaration__Group_2_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group_2_0_0__0__Impl
	rule__XVariableDeclaration__Group_2_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group_2_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); }
(rule__XVariableDeclaration__TypeAssignment_2_0_0_0)
{ after(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XVariableDeclaration__Group_2_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group_2_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group_2_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); }
(rule__XVariableDeclaration__NameAssignment_2_0_0_1)
{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XVariableDeclaration__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group_3__0__Impl
	rule__XVariableDeclaration__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); }

	'=' 

{ after(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XVariableDeclaration__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XVariableDeclaration__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); }
(rule__XVariableDeclaration__RightAssignment_3_1)
{ after(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmFormalParameter__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmFormalParameter__Group__0__Impl
	rule__JvmFormalParameter__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmFormalParameter__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
(rule__JvmFormalParameter__ParameterTypeAssignment_0)?
{ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmFormalParameter__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmFormalParameter__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmFormalParameter__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); }
(rule__JvmFormalParameter__NameAssignment_1)
{ after(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__FullJvmFormalParameter__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FullJvmFormalParameter__Group__0__Impl
	rule__FullJvmFormalParameter__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__FullJvmFormalParameter__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
(rule__FullJvmFormalParameter__ParameterTypeAssignment_0)
{ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__FullJvmFormalParameter__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__FullJvmFormalParameter__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__FullJvmFormalParameter__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); }
(rule__FullJvmFormalParameter__NameAssignment_1)
{ after(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XFeatureCall__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group__0__Impl
	rule__XFeatureCall__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); }
(

)
{ after(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group__1__Impl
	rule__XFeatureCall__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getGroup_1()); }
(rule__XFeatureCall__Group_1__0)?
{ after(grammarAccess.getXFeatureCallAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group__2__Impl
	rule__XFeatureCall__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); }
(rule__XFeatureCall__FeatureAssignment_2)
{ after(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group__3__Impl
	rule__XFeatureCall__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getGroup_3()); }
(rule__XFeatureCall__Group_3__0)?
{ after(grammarAccess.getXFeatureCallAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); }
(rule__XFeatureCall__FeatureCallArgumentsAssignment_4)?
{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__XFeatureCall__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_1__0__Impl
	rule__XFeatureCall__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); }

	'<' 

{ after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_1__1__Impl
	rule__XFeatureCall__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); }
(rule__XFeatureCall__TypeArgumentsAssignment_1_1)
{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_1__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_1__2__Impl
	rule__XFeatureCall__Group_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_1__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); }
(rule__XFeatureCall__Group_1_2__0)*
{ after(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_1__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_1__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_1__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); }

	'>' 

{ after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XFeatureCall__Group_1_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_1_2__0__Impl
	rule__XFeatureCall__Group_1_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_1_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); }

	',' 

{ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_1_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_1_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_1_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); }
(rule__XFeatureCall__TypeArgumentsAssignment_1_2_1)
{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XFeatureCall__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3__0__Impl
	rule__XFeatureCall__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); }
(rule__XFeatureCall__ExplicitOperationCallAssignment_3_0)
{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3__1__Impl
	rule__XFeatureCall__Group_3__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); }
(rule__XFeatureCall__Alternatives_3_1)?
{ after(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_3__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); }

	')' 

{ after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XFeatureCall__Group_3_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3_1_1__0__Impl
	rule__XFeatureCall__Group_3_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); }
(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0)
{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_3_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); }
(rule__XFeatureCall__Group_3_1_1_1__0)*
{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XFeatureCall__Group_3_1_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3_1_1_1__0__Impl
	rule__XFeatureCall__Group_3_1_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3_1_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); }

	',' 

{ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFeatureCall__Group_3_1_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFeatureCall__Group_3_1_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__Group_3_1_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); }
(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1)
{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XConstructorCall__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group__0__Impl
	rule__XConstructorCall__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); }
(

)
{ after(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group__1__Impl
	rule__XConstructorCall__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); }

	'new' 

{ after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group__2__Impl
	rule__XConstructorCall__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); }
(rule__XConstructorCall__ConstructorAssignment_2)
{ after(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group__3__Impl
	rule__XConstructorCall__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getGroup_3()); }
(rule__XConstructorCall__Group_3__0)?
{ after(grammarAccess.getXConstructorCallAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group__4__Impl
	rule__XConstructorCall__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getGroup_4()); }
(rule__XConstructorCall__Group_4__0)?
{ after(grammarAccess.getXConstructorCallAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); }
(rule__XConstructorCall__ArgumentsAssignment_5)?
{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__XConstructorCall__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_3__0__Impl
	rule__XConstructorCall__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); }
(
	'<' 
)
{ after(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_3__1__Impl
	rule__XConstructorCall__Group_3__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); }
(rule__XConstructorCall__TypeArgumentsAssignment_3_1)
{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_3__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_3__2__Impl
	rule__XConstructorCall__Group_3__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_3__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); }
(rule__XConstructorCall__Group_3_2__0)*
{ after(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_3__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_3__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_3__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); }

	'>' 

{ after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XConstructorCall__Group_3_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_3_2__0__Impl
	rule__XConstructorCall__Group_3_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_3_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); }

	',' 

{ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_3_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_3_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_3_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); }
(rule__XConstructorCall__TypeArgumentsAssignment_3_2_1)
{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XConstructorCall__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4__0__Impl
	rule__XConstructorCall__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); }
(rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0)
{ after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4__1__Impl
	rule__XConstructorCall__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); }
(rule__XConstructorCall__Alternatives_4_1)?
{ after(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); }

	')' 

{ after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XConstructorCall__Group_4_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4_1_1__0__Impl
	rule__XConstructorCall__Group_4_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); }
(rule__XConstructorCall__ArgumentsAssignment_4_1_1_0)
{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_4_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); }
(rule__XConstructorCall__Group_4_1_1_1__0)*
{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XConstructorCall__Group_4_1_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4_1_1_1__0__Impl
	rule__XConstructorCall__Group_4_1_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4_1_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); }

	',' 

{ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XConstructorCall__Group_4_1_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XConstructorCall__Group_4_1_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__Group_4_1_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); }
(rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1)
{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XBooleanLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBooleanLiteral__Group__0__Impl
	rule__XBooleanLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XBooleanLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); }
(

)
{ after(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XBooleanLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XBooleanLiteral__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XBooleanLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); }
(rule__XBooleanLiteral__Alternatives_1)
{ after(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XNullLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XNullLiteral__Group__0__Impl
	rule__XNullLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XNullLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); }
(

)
{ after(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XNullLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XNullLiteral__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XNullLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); }

	'null' 

{ after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XNumberLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XNumberLiteral__Group__0__Impl
	rule__XNumberLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XNumberLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); }
(

)
{ after(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XNumberLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XNumberLiteral__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XNumberLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); }
(rule__XNumberLiteral__ValueAssignment_1)
{ after(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XStringLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XStringLiteral__Group__0__Impl
	rule__XStringLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XStringLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); }
(

)
{ after(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XStringLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XStringLiteral__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XStringLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); }
(rule__XStringLiteral__ValueAssignment_1)
{ after(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XTypeLiteral__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTypeLiteral__Group__0__Impl
	rule__XTypeLiteral__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); }
(

)
{ after(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTypeLiteral__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTypeLiteral__Group__1__Impl
	rule__XTypeLiteral__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); }

	'typeof' 

{ after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTypeLiteral__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTypeLiteral__Group__2__Impl
	rule__XTypeLiteral__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); }

	'(' 

{ after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTypeLiteral__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTypeLiteral__Group__3__Impl
	rule__XTypeLiteral__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); }
(rule__XTypeLiteral__TypeAssignment_3)
{ after(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTypeLiteral__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTypeLiteral__Group__4__Impl
	rule__XTypeLiteral__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); }
(rule__XTypeLiteral__ArrayDimensionsAssignment_4)*
{ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTypeLiteral__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTypeLiteral__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); }

	')' 

{ after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__XThrowExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XThrowExpression__Group__0__Impl
	rule__XThrowExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XThrowExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); }
(

)
{ after(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XThrowExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XThrowExpression__Group__1__Impl
	rule__XThrowExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XThrowExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); }

	'throw' 

{ after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XThrowExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XThrowExpression__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XThrowExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); }
(rule__XThrowExpression__ExpressionAssignment_2)
{ after(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XReturnExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XReturnExpression__Group__0__Impl
	rule__XReturnExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XReturnExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); }
(

)
{ after(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XReturnExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XReturnExpression__Group__1__Impl
	rule__XReturnExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XReturnExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); }

	'return' 

{ after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XReturnExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XReturnExpression__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XReturnExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); }
(rule__XReturnExpression__ExpressionAssignment_2)?
{ after(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XTryCatchFinallyExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group__0__Impl
	rule__XTryCatchFinallyExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); }
(

)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTryCatchFinallyExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group__1__Impl
	rule__XTryCatchFinallyExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); }

	'try' 

{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTryCatchFinallyExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group__2__Impl
	rule__XTryCatchFinallyExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); }
(rule__XTryCatchFinallyExpression__ExpressionAssignment_2)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTryCatchFinallyExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); }
(rule__XTryCatchFinallyExpression__Alternatives_3)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XTryCatchFinallyExpression__Group_3_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group_3_0__0__Impl
	rule__XTryCatchFinallyExpression__Group_3_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group_3_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
(rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
)
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
(rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0)*
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
)
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTryCatchFinallyExpression__Group_3_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); }
(rule__XTryCatchFinallyExpression__Group_3_0_1__0)?
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XTryCatchFinallyExpression__Group_3_0_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl
	rule__XTryCatchFinallyExpression__Group_3_0_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); }
(
	'finally' 
)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTryCatchFinallyExpression__Group_3_0_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); }
(rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XTryCatchFinallyExpression__Group_3_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group_3_1__0__Impl
	rule__XTryCatchFinallyExpression__Group_3_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group_3_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); }

	'finally' 

{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XTryCatchFinallyExpression__Group_3_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); }
(rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1)
{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XSynchronizedExpression__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group__0__Impl
	rule__XSynchronizedExpression__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); }
(rule__XSynchronizedExpression__Group_0__0)
{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSynchronizedExpression__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group__1__Impl
	rule__XSynchronizedExpression__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); }
(rule__XSynchronizedExpression__ParamAssignment_1)
{ after(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSynchronizedExpression__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group__2__Impl
	rule__XSynchronizedExpression__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); }

	')' 

{ after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSynchronizedExpression__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); }
(rule__XSynchronizedExpression__ExpressionAssignment_3)
{ after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__XSynchronizedExpression__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); }
(rule__XSynchronizedExpression__Group_0_0__0)
{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__XSynchronizedExpression__Group_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group_0_0__0__Impl
	rule__XSynchronizedExpression__Group_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); }
(

)
{ after(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSynchronizedExpression__Group_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group_0_0__1__Impl
	rule__XSynchronizedExpression__Group_0_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); }

	'synchronized' 

{ after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XSynchronizedExpression__Group_0_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XSynchronizedExpression__Group_0_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__Group_0_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }

	'(' 

{ after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XCatchClause__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCatchClause__Group__0__Impl
	rule__XCatchClause__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); }
(
	'catch' 
)
{ after(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCatchClause__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCatchClause__Group__1__Impl
	rule__XCatchClause__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); }

	'(' 

{ after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCatchClause__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCatchClause__Group__2__Impl
	rule__XCatchClause__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); }
(rule__XCatchClause__DeclaredParamAssignment_2)
{ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCatchClause__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCatchClause__Group__3__Impl
	rule__XCatchClause__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); }

	')' 

{ after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XCatchClause__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XCatchClause__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); }
(rule__XCatchClause__ExpressionAssignment_4)
{ after(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__QualifiedName__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedName__Group__0__Impl
	rule__QualifiedName__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedName__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
	ruleValidID
{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__QualifiedName__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedName__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedName__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
(rule__QualifiedName__Group_1__0)*
{ after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__QualifiedName__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedName__Group_1__0__Impl
	rule__QualifiedName__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedName__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
(
	'.' 
)
{ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__QualifiedName__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedName__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedName__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
	ruleValidID
{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Number__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Number__Group_1__0__Impl
	rule__Number__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getAlternatives_1_0()); }
(rule__Number__Alternatives_1_0)
{ after(grammarAccess.getNumberAccess().getAlternatives_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Number__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Number__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getGroup_1_1()); }
(rule__Number__Group_1_1__0)?
{ after(grammarAccess.getNumberAccess().getGroup_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Number__Group_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Number__Group_1_1__0__Impl
	rule__Number__Group_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Group_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); }

	'.' 

{ after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Number__Group_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Number__Group_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Group_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); }
(rule__Number__Alternatives_1_1_1)
{ after(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}







rule__JvmTypeReference__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeReference__Group_0__0__Impl
	rule__JvmTypeReference__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeReference__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); }
	ruleJvmParameterizedTypeReference
{ after(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmTypeReference__Group_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeReference__Group_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeReference__Group_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); }
(rule__JvmTypeReference__Group_0_1__0)*
{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmTypeReference__Group_0_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeReference__Group_0_1__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeReference__Group_0_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); }
(rule__JvmTypeReference__Group_0_1_0__0)
{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__JvmTypeReference__Group_0_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeReference__Group_0_1_0__0__Impl
	rule__JvmTypeReference__Group_0_1_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeReference__Group_0_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); }
(

)
{ after(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmTypeReference__Group_0_1_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeReference__Group_0_1_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeReference__Group_0_1_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); }
	ruleArrayBrackets
{ after(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__ArrayBrackets__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ArrayBrackets__Group__0__Impl
	rule__ArrayBrackets__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ArrayBrackets__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); }

	'[' 

{ after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__ArrayBrackets__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__ArrayBrackets__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ArrayBrackets__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); }

	']' 

{ after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XFunctionTypeRef__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group__0__Impl
	rule__XFunctionTypeRef__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); }
(rule__XFunctionTypeRef__Group_0__0)?
{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFunctionTypeRef__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group__1__Impl
	rule__XFunctionTypeRef__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); }

	'=>' 

{ after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFunctionTypeRef__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); }
(rule__XFunctionTypeRef__ReturnTypeAssignment_2)
{ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XFunctionTypeRef__Group_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0__0__Impl
	rule__XFunctionTypeRef__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); }

	'(' 

{ after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFunctionTypeRef__Group_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0__1__Impl
	rule__XFunctionTypeRef__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); }
(rule__XFunctionTypeRef__Group_0_1__0)?
{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFunctionTypeRef__Group_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); }

	')' 

{ after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XFunctionTypeRef__Group_0_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0_1__0__Impl
	rule__XFunctionTypeRef__Group_0_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); }
(rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0)
{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFunctionTypeRef__Group_0_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); }
(rule__XFunctionTypeRef__Group_0_1_1__0)*
{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__XFunctionTypeRef__Group_0_1_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0_1_1__0__Impl
	rule__XFunctionTypeRef__Group_0_1_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0_1_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); }

	',' 

{ after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XFunctionTypeRef__Group_0_1_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XFunctionTypeRef__Group_0_1_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__Group_0_1_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); }
(rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1)
{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmParameterizedTypeReference__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group__0__Impl
	rule__JvmParameterizedTypeReference__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); }
(rule__JvmParameterizedTypeReference__TypeAssignment_0)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); }
(rule__JvmParameterizedTypeReference__Group_1__0)?
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmParameterizedTypeReference__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1__0__Impl
	rule__JvmParameterizedTypeReference__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); }
(
	'<' 
)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1__1__Impl
	rule__JvmParameterizedTypeReference__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); }
(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1__2__Impl
	rule__JvmParameterizedTypeReference__Group_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); }
(rule__JvmParameterizedTypeReference__Group_1_2__0)*
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1__3__Impl
	rule__JvmParameterizedTypeReference__Group_1__4
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); }

	'>' 

{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); }
(rule__JvmParameterizedTypeReference__Group_1_4__0)*
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__JvmParameterizedTypeReference__Group_1_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_2__0__Impl
	rule__JvmParameterizedTypeReference__Group_1_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); }

	',' 

{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); }
(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmParameterizedTypeReference__Group_1_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4__0__Impl
	rule__JvmParameterizedTypeReference__Group_1_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); }
(rule__JvmParameterizedTypeReference__Group_1_4_0__0)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4__1__Impl
	rule__JvmParameterizedTypeReference__Group_1_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); }
(rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); }
(rule__JvmParameterizedTypeReference__Group_1_4_2__0)?
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__JvmParameterizedTypeReference__Group_1_4_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); }
(rule__JvmParameterizedTypeReference__Group_1_4_0_0__0)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl
	rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); }
(

)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); }

	'.' 

{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmParameterizedTypeReference__Group_1_4_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl
	rule__JvmParameterizedTypeReference__Group_1_4_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); }
(
	'<' 
)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl
	rule__JvmParameterizedTypeReference__Group_1_4_2__2
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); }
(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4_2__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl
	rule__JvmParameterizedTypeReference__Group_1_4_2__3
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); }
(rule__JvmParameterizedTypeReference__Group_1_4_2_2__0)*
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4_2__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); }

	'>' 

{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl
	rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); }

	',' 

{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); }
(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmWildcardTypeReference__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group__0__Impl
	rule__JvmWildcardTypeReference__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); }
(

)
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmWildcardTypeReference__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group__1__Impl
	rule__JvmWildcardTypeReference__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); }

	'?' 

{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmWildcardTypeReference__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); }
(rule__JvmWildcardTypeReference__Alternatives_2)?
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__JvmWildcardTypeReference__Group_2_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group_2_0__0__Impl
	rule__JvmWildcardTypeReference__Group_2_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group_2_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); }
(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0)
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmWildcardTypeReference__Group_2_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group_2_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group_2_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); }
(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1)*
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmWildcardTypeReference__Group_2_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group_2_1__0__Impl
	rule__JvmWildcardTypeReference__Group_2_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group_2_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); }
(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0)
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmWildcardTypeReference__Group_2_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmWildcardTypeReference__Group_2_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__Group_2_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); }
(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1)*
{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmUpperBound__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmUpperBound__Group__0__Impl
	rule__JvmUpperBound__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmUpperBound__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); }

	'extends' 

{ after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmUpperBound__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmUpperBound__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmUpperBound__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); }
(rule__JvmUpperBound__TypeReferenceAssignment_1)
{ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmUpperBoundAnded__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmUpperBoundAnded__Group__0__Impl
	rule__JvmUpperBoundAnded__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmUpperBoundAnded__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); }

	'&' 

{ after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmUpperBoundAnded__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmUpperBoundAnded__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmUpperBoundAnded__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); }
(rule__JvmUpperBoundAnded__TypeReferenceAssignment_1)
{ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmLowerBound__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmLowerBound__Group__0__Impl
	rule__JvmLowerBound__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmLowerBound__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); }

	'super' 

{ after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmLowerBound__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmLowerBound__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmLowerBound__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); }
(rule__JvmLowerBound__TypeReferenceAssignment_1)
{ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmLowerBoundAnded__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmLowerBoundAnded__Group__0__Impl
	rule__JvmLowerBoundAnded__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmLowerBoundAnded__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); }

	'&' 

{ after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmLowerBoundAnded__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmLowerBoundAnded__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmLowerBoundAnded__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); }
(rule__JvmLowerBoundAnded__TypeReferenceAssignment_1)
{ after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmTypeParameter__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeParameter__Group__0__Impl
	rule__JvmTypeParameter__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getNameAssignment_0()); }
(rule__JvmTypeParameter__NameAssignment_0)
{ after(grammarAccess.getJvmTypeParameterAccess().getNameAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmTypeParameter__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeParameter__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getGroup_1()); }
(rule__JvmTypeParameter__Group_1__0)?
{ after(grammarAccess.getJvmTypeParameterAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__JvmTypeParameter__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeParameter__Group_1__0__Impl
	rule__JvmTypeParameter__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0()); }
(rule__JvmTypeParameter__ConstraintsAssignment_1_0)
{ after(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__JvmTypeParameter__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__JvmTypeParameter__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_1()); }
(rule__JvmTypeParameter__ConstraintsAssignment_1_1)*
{ after(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__QualifiedNameWithWildcard__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedNameWithWildcard__Group__0__Impl
	rule__QualifiedNameWithWildcard__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedNameWithWildcard__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
	ruleQualifiedName
{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__QualifiedNameWithWildcard__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedNameWithWildcard__Group__1__Impl
	rule__QualifiedNameWithWildcard__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedNameWithWildcard__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); }

	'.' 

{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__QualifiedNameWithWildcard__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedNameWithWildcard__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedNameWithWildcard__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); }

	'*' 

{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XImportDeclaration__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group__0__Impl
	rule__XImportDeclaration__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); }

	'import' 

{ after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XImportDeclaration__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group__1__Impl
	rule__XImportDeclaration__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); }
(rule__XImportDeclaration__Alternatives_1)
{ after(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XImportDeclaration__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); }
(
	';' 
)?
{ after(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__XImportDeclaration__Group_1_0__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group_1_0__0__Impl
	rule__XImportDeclaration__Group_1_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group_1_0__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); }
(rule__XImportDeclaration__StaticAssignment_1_0_0)
{ after(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XImportDeclaration__Group_1_0__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group_1_0__1__Impl
	rule__XImportDeclaration__Group_1_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group_1_0__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); }
(rule__XImportDeclaration__ExtensionAssignment_1_0_1)?
{ after(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XImportDeclaration__Group_1_0__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group_1_0__2__Impl
	rule__XImportDeclaration__Group_1_0__3
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group_1_0__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); }
(rule__XImportDeclaration__ImportedTypeAssignment_1_0_2)
{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__XImportDeclaration__Group_1_0__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__XImportDeclaration__Group_1_0__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__Group_1_0__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3()); }
(rule__XImportDeclaration__Alternatives_1_0_3)
{ after(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__QualifiedNameInStaticImport__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedNameInStaticImport__Group__0__Impl
	rule__QualifiedNameInStaticImport__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedNameInStaticImport__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); }
	ruleValidID
{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__QualifiedNameInStaticImport__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__QualifiedNameInStaticImport__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__QualifiedNameInStaticImport__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); }

	'.' 

{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}







rule__ModelRoot__ImportSectionAssignment_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelRootAccess().getImportSectionXImportSectionParserRuleCall_0_0_0()); }
	ruleXImportSection{ after(grammarAccess.getModelRootAccess().getImportSectionXImportSectionParserRuleCall_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModelRoot__ModelRootAssignment_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelRootAccess().getModelRootModelParserRuleCall_0_1_0()); }
	ruleModel{ after(grammarAccess.getModelRootAccess().getModelRootModelParserRuleCall_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Model__ModelNameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getModelNameValidIDParserRuleCall_1_0()); }
	ruleValidID{ after(grammarAccess.getModelAccess().getModelNameValidIDParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Model__ElementsAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModelAccess().getElementsPackageDeclarationParserRuleCall_3_0()); }
	rulePackageDeclaration{ after(grammarAccess.getModelAccess().getElementsPackageDeclarationParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__PackageNameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getPackageNameQualifiedNameParserRuleCall_1_0()); }
	ruleQualifiedName{ after(grammarAccess.getPackageDeclarationAccess().getPackageNameQualifiedNameParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__PackageDeclaration__ElementsAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getPackageDeclarationAccess().getElementsAbstractElementParserRuleCall_3_0()); }
	ruleAbstractElement{ after(grammarAccess.getPackageDeclarationAccess().getElementsAbstractElementParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getEnumerationAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Enumeration__EnumerationValuesAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationAccess().getEnumerationValuesEnumerationValueParserRuleCall_3_0()); }
	ruleEnumerationValue{ after(grammarAccess.getEnumerationAccess().getEnumerationValuesEnumerationValueParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationValue__NameAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationValueAccess().getNameIDTerminalRuleCall_0_0()); }
	RULE_ID{ after(grammarAccess.getEnumerationValueAccess().getNameIDTerminalRuleCall_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationValue__ValueAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationValueAccess().getValueSTRINGTerminalRuleCall_1_1_0()); }
	RULE_STRING{ after(grammarAccess.getEnumerationValueAccess().getValueSTRINGTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__NaturalKeyAttributesAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeCrossReference_3_0()); }
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_3_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_3_0_1()); }
)
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeCrossReference_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityNaturalKeyFields__NaturalKeyAttributesAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeCrossReference_4_1_0()); }
(
{ before(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_4_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_4_1_0_1()); }
)
{ after(grammarAccess.getEntityNaturalKeyFieldsAccess().getNaturalKeyAttributesEntityAttributeCrossReference_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityHierarchical__HierarchicalAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityHierarchicalAccess().getHierarchicalXBooleanLiteralParserRuleCall_2_0()); }
	ruleXBooleanLiteral{ after(grammarAccess.getEntityHierarchicalAccess().getHierarchicalXBooleanLiteralParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDisableIdField__DisableIdFieldAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDisableIdFieldAccess().getDisableIdFieldXBooleanLiteralParserRuleCall_2_0()); }
	ruleXBooleanLiteral{ after(grammarAccess.getEntityDisableIdFieldAccess().getDisableIdFieldXBooleanLiteralParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityLabelField__LabelAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityLabelFieldAccess().getLabelSTRINGTerminalRuleCall_2_0()); }
	RULE_STRING{ after(grammarAccess.getEntityLabelFieldAccess().getLabelSTRINGTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityPluralLabelField__PluralLabelAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityPluralLabelFieldAccess().getPluralLabelSTRINGTerminalRuleCall_2_0()); }
	RULE_STRING{ after(grammarAccess.getEntityPluralLabelFieldAccess().getPluralLabelSTRINGTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__EntityOptionsContainer__OptionsAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityOptionsContainerAccess().getOptionsEntityOptionsParserRuleCall_3_0()); }
	ruleEntityOptions{ after(grammarAccess.getEntityOptionsContainerAccess().getOptionsEntityOptionsParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__ExtendsAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getExtendsEntityCrossReference_2_1_0()); }
(
{ before(grammarAccess.getEntityAccess().getExtendsEntityQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEntityAccess().getExtendsEntityQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getEntityAccess().getExtendsEntityCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__JvmtypeAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getJvmtypeJvmTypeReferenceParserRuleCall_3_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getEntityAccess().getJvmtypeJvmTypeReferenceParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__EntityOptionsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getEntityOptionsEntityOptionsContainerParserRuleCall_5_0()); }
	ruleEntityOptionsContainer{ after(grammarAccess.getEntityAccess().getEntityOptionsEntityOptionsContainerParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Entity__AttributesAssignment_6
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityAccess().getAttributesEntityAttributeParserRuleCall_6_0()); }
	ruleEntityAttribute{ after(grammarAccess.getEntityAccess().getAttributesEntityAttributeParserRuleCall_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getValueObjectAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__ExtendsAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getExtendsValueObjectCrossReference_2_1_0()); }
(
{ before(grammarAccess.getValueObjectAccess().getExtendsValueObjectQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getValueObjectAccess().getExtendsValueObjectQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getValueObjectAccess().getExtendsValueObjectCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__JvmtypeAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getJvmtypeJvmTypeReferenceParserRuleCall_3_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getValueObjectAccess().getJvmtypeJvmTypeReferenceParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObject__AttributesAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectAccess().getAttributesEntityAttributeParserRuleCall_5_0()); }
	ruleEntityAttribute{ after(grammarAccess.getValueObjectAccess().getAttributesEntityAttributeParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}





rule__BaseDataType__BaseDatatypePropertiesAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeAccess().getBaseDatatypePropertiesBaseDataTypePropertiesParserRuleCall_1_0()); }
	ruleBaseDataTypeProperties{ after(grammarAccess.getBaseDataTypeAccess().getBaseDatatypePropertiesBaseDataTypePropertiesParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeWidth__WidthAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeWidthAccess().getWidthINTTerminalRuleCall_2_0()); }
	RULE_INT{ after(grammarAccess.getBaseDataTypeWidthAccess().getWidthINTTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDataTypeLabel__LabelAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDataTypeLabelAccess().getLabelSTRINGTerminalRuleCall_2_0()); }
	RULE_STRING{ after(grammarAccess.getBaseDataTypeLabelAccess().getLabelSTRINGTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getStringDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getRefStringDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getStringDataTypeAccess().getRefStringDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getStringDataTypeAccess().getRefStringDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getStringDataTypeAccess().getRefStringDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getStringDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__MaxLengthAssignment_5_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getMaxLengthINTTerminalRuleCall_5_1_0()); }
	RULE_INT{ after(grammarAccess.getStringDataTypeAccess().getMaxLengthINTTerminalRuleCall_5_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringDataType__MinLengthAssignment_6_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringDataTypeAccess().getMinLengthINTTerminalRuleCall_6_1_0()); }
	RULE_INT{ after(grammarAccess.getStringDataTypeAccess().getMinLengthINTTerminalRuleCall_6_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getTypeStringDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getStringEntityAttributeAccess().getTypeStringDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getStringEntityAttributeAccess().getTypeStringDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getStringEntityAttributeAccess().getTypeStringDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__CardinalityAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
	ruleCardinality{ after(grammarAccess.getStringEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__StringEntityAttribute__NameAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getStringEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
	RULE_ID{ after(grammarAccess.getStringEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__MapEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getTypeMapDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getMapEntityAttributeAccess().getTypeMapDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getMapEntityAttributeAccess().getTypeMapDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getMapEntityAttributeAccess().getTypeMapDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__KeyTypeAssignment_2_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getKeyTypeSimpleTypesEnumRuleCall_2_0_0()); }
	ruleSimpleTypes{ after(grammarAccess.getMapEntityAttributeAccess().getKeyTypeSimpleTypesEnumRuleCall_2_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__ValueTypeAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getValueTypeSimpleTypesEnumRuleCall_2_1_0()); }
	ruleSimpleTypes{ after(grammarAccess.getMapEntityAttributeAccess().getValueTypeSimpleTypesEnumRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__MapEntityAttribute__NameAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMapEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
	RULE_ID{ after(grammarAccess.getMapEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getBooleanDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getRefBooleanDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getBooleanDataTypeAccess().getRefBooleanDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getBooleanDataTypeAccess().getRefBooleanDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getBooleanDataTypeAccess().getRefBooleanDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getBooleanDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getTypeBooleanDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getTypeBooleanDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getBooleanEntityAttributeAccess().getTypeBooleanDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getBooleanEntityAttributeAccess().getTypeBooleanDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BooleanEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBooleanEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getBooleanEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getIntegerDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getRefIntegerDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getIntegerDataTypeAccess().getRefIntegerDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getIntegerDataTypeAccess().getRefIntegerDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getIntegerDataTypeAccess().getRefIntegerDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getIntegerDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getTypeIntegerDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getTypeIntegerDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getIntegerEntityAttributeAccess().getTypeIntegerDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getIntegerEntityAttributeAccess().getTypeIntegerDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__IntegerEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getIntegerEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getIntegerEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDateDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getRefDateDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getDateDataTypeAccess().getRefDateDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDateDataTypeAccess().getRefDateDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getDateDataTypeAccess().getRefDateDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DateDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getDateDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DateEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateEntityAttributeAccess().getTypeDateDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getDateEntityAttributeAccess().getTypeDateDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDateEntityAttributeAccess().getTypeDateDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getDateEntityAttributeAccess().getTypeDateDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DateEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDateEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDateEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDecimalDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getRefDecimalDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getDecimalDataTypeAccess().getRefDecimalDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDecimalDataTypeAccess().getRefDecimalDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getDecimalDataTypeAccess().getRefDecimalDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getDecimalDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getTypeDecimalDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getTypeDecimalDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDecimalEntityAttributeAccess().getTypeDecimalDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getDecimalEntityAttributeAccess().getTypeDecimalDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DecimalEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDecimalEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDecimalEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getLongDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getRefLongDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getLongDataTypeAccess().getRefLongDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getLongDataTypeAccess().getRefLongDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getLongDataTypeAccess().getRefLongDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LongDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getLongDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LongEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongEntityAttributeAccess().getTypeLongDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getLongEntityAttributeAccess().getTypeLongDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getLongEntityAttributeAccess().getTypeLongDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getLongEntityAttributeAccess().getTypeLongDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LongEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLongEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getLongEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getFloatDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getRefFloatDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getFloatDataTypeAccess().getRefFloatDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getFloatDataTypeAccess().getRefFloatDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getFloatDataTypeAccess().getRefFloatDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FloatDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getFloatDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FloatEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getTypeFloatDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getTypeFloatDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getFloatEntityAttributeAccess().getTypeFloatDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getFloatEntityAttributeAccess().getTypeFloatDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FloatEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFloatEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getFloatEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDoubleDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getRefDoubleDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getDoubleDataTypeAccess().getRefDoubleDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDoubleDataTypeAccess().getRefDoubleDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getDoubleDataTypeAccess().getRefDoubleDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getDoubleDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getTypeDoubleDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getTypeDoubleDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDoubleEntityAttributeAccess().getTypeDoubleDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getDoubleEntityAttributeAccess().getTypeDoubleDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DoubleEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDoubleEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDoubleEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getBinaryDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getRefBinaryDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getBinaryDataTypeAccess().getRefBinaryDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getBinaryDataTypeAccess().getRefBinaryDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getBinaryDataTypeAccess().getRefBinaryDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getBinaryDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getTypeBinaryDataTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getTypeBinaryDataTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getBinaryEntityAttributeAccess().getTypeBinaryDataTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getBinaryEntityAttributeAccess().getTypeBinaryDataTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BinaryEntityAttribute__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBinaryEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getBinaryEntityAttributeAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getEntityDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getRefEntityDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getEntityDataTypeAccess().getRefEntityDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEntityDataTypeAccess().getRefEntityDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getEntityDataTypeAccess().getRefEntityDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getEntityDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityDataType__EntityAssignment_6
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityDataTypeAccess().getEntityEntityCrossReference_6_0()); }
(
{ before(grammarAccess.getEntityDataTypeAccess().getEntityEntityQualifiedNameParserRuleCall_6_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEntityDataTypeAccess().getEntityEntityQualifiedNameParserRuleCall_6_0_1()); }
)
{ after(grammarAccess.getEntityDataTypeAccess().getEntityEntityCrossReference_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getTypeEntityAttributeTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getTypeEntityAttributeTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEntityEntityAttributeAccess().getTypeEntityAttributeTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getEntityEntityAttributeAccess().getTypeEntityAttributeTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__CardinalityAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
	ruleCardinality{ after(grammarAccess.getEntityEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EntityEntityAttribute__NameAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEntityEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
	RULE_ID{ after(grammarAccess.getEntityEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getTypeValueObjectCrossReference_1_0()); }
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getTypeValueObjectQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getValueObjectEntityAttributeAccess().getTypeValueObjectQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getValueObjectEntityAttributeAccess().getTypeValueObjectCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__CardinalityAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
	ruleCardinality{ after(grammarAccess.getValueObjectEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ValueObjectEntityAttribute__NameAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getValueObjectEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
	RULE_ID{ after(grammarAccess.getValueObjectEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getEnumerationDataTypeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__RefAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getRefEnumerationDataTypeCrossReference_2_1_0()); }
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getRefEnumerationDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEnumerationDataTypeAccess().getRefEnumerationDataTypeQualifiedNameParserRuleCall_2_1_0_1()); }
)
{ after(grammarAccess.getEnumerationDataTypeAccess().getRefEnumerationDataTypeCrossReference_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__BaseDataTypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
	ruleBaseDataType{ after(grammarAccess.getEnumerationDataTypeAccess().getBaseDataTypeBaseDataTypeParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationDataType__EnumerationAssignment_6
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getEnumerationEnumerationCrossReference_6_0()); }
(
{ before(grammarAccess.getEnumerationDataTypeAccess().getEnumerationEnumerationQualifiedNameParserRuleCall_6_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEnumerationDataTypeAccess().getEnumerationEnumerationQualifiedNameParserRuleCall_6_0_1()); }
)
{ after(grammarAccess.getEnumerationDataTypeAccess().getEnumerationEnumerationCrossReference_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__TypeAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getTypeEnumerationAttributeTypeCrossReference_1_0()); }
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getTypeEnumerationAttributeTypeQualifiedNameParserRuleCall_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getEnumerationEntityAttributeAccess().getTypeEnumerationAttributeTypeQualifiedNameParserRuleCall_1_0_1()); }
)
{ after(grammarAccess.getEnumerationEntityAttributeAccess().getTypeEnumerationAttributeTypeCrossReference_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__CardinalityAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
	ruleCardinality{ after(grammarAccess.getEnumerationEntityAttributeAccess().getCardinalityCardinalityEnumRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__EnumerationEntityAttribute__NameAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getEnumerationEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
	RULE_ID{ after(grammarAccess.getEnumerationEntityAttributeAccess().getNameIDTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__EntityAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getEntityEntityCrossReference_4_0()); }
(
{ before(grammarAccess.getDictionaryAccess().getEntityEntityQualifiedNameParserRuleCall_4_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryAccess().getEntityEntityQualifiedNameParserRuleCall_4_0_1()); }
)
{ after(grammarAccess.getDictionaryAccess().getEntityEntityCrossReference_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__LabelAssignment_5_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLabelSTRINGTerminalRuleCall_5_1_0()); }
	RULE_STRING{ after(grammarAccess.getDictionaryAccess().getLabelSTRINGTerminalRuleCall_5_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__PluralLabelAssignment_6_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getPluralLabelSTRINGTerminalRuleCall_6_1_0()); }
	RULE_STRING{ after(grammarAccess.getDictionaryAccess().getPluralLabelSTRINGTerminalRuleCall_6_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__DictionarycontrolsAssignment_7_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionarycontrolsDictionaryControlParserRuleCall_7_2_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryAccess().getDictionarycontrolsDictionaryControlParserRuleCall_7_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__LabelcontrolsAssignment_8_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getLabelcontrolsDictionaryControlParserRuleCall_8_2_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryAccess().getLabelcontrolsDictionaryControlParserRuleCall_8_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__DictionarysearchAssignment_9
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionarysearchDictionarySearchParserRuleCall_9_0()); }
	ruleDictionarySearch{ after(grammarAccess.getDictionaryAccess().getDictionarysearchDictionarySearchParserRuleCall_9_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Dictionary__DictionaryeditorAssignment_10
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAccess().getDictionaryeditorDictionaryEditorParserRuleCall_10_0()); }
	ruleDictionaryEditor{ after(grammarAccess.getDictionaryAccess().getDictionaryeditorDictionaryEditorParserRuleCall_10_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionarySearchAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__LabelAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getLabelSTRINGTerminalRuleCall_3_1_0()); }
	RULE_STRING{ after(grammarAccess.getDictionarySearchAccess().getLabelSTRINGTerminalRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__DictionaryfiltersAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getDictionaryfiltersDictionaryFilterParserRuleCall_4_0()); }
	ruleDictionaryFilter{ after(grammarAccess.getDictionarySearchAccess().getDictionaryfiltersDictionaryFilterParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionarySearch__DictionaryresultAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionarySearchAccess().getDictionaryresultDictionaryResultParserRuleCall_5_0()); }
	ruleDictionaryResult{ after(grammarAccess.getDictionarySearchAccess().getDictionaryresultDictionaryResultParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryEditorAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__LabelAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLabelSTRINGTerminalRuleCall_3_1_0()); }
	RULE_STRING{ after(grammarAccess.getDictionaryEditorAccess().getLabelSTRINGTerminalRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__LayoutdataAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLayoutdataColumnLayoutDataParserRuleCall_4_0()); }
	ruleColumnLayoutData{ after(grammarAccess.getDictionaryEditorAccess().getLayoutdataColumnLayoutDataParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__LayoutAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getLayoutColumnLayoutParserRuleCall_5_0()); }
	ruleColumnLayout{ after(grammarAccess.getDictionaryEditorAccess().getLayoutColumnLayoutParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditor__ContainercontentsAssignment_6
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditorAccess().getContainercontentsDictionaryContainerContentParserRuleCall_6_0()); }
	ruleDictionaryContainerContent{ after(grammarAccess.getDictionaryEditorAccess().getContainercontentsDictionaryContainerContentParserRuleCall_6_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryFilterAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__LayoutdataAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_0()); }
	ruleColumnLayoutData{ after(grammarAccess.getDictionaryFilterAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__LayoutAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getLayoutColumnLayoutParserRuleCall_4_0()); }
	ruleColumnLayout{ after(grammarAccess.getDictionaryFilterAccess().getLayoutColumnLayoutParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFilter__ContainercontentsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFilterAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
	ruleDictionaryContainerContent{ after(grammarAccess.getDictionaryFilterAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryResultAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryResult__ResultcolumnsAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryResultAccess().getResultcolumnsDictionaryControlParserRuleCall_3_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryResultAccess().getResultcolumnsDictionaryControlParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayout__ColumnsAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutAccess().getColumnsINTTerminalRuleCall_3_0()); }
	RULE_INT{ after(grammarAccess.getColumnLayoutAccess().getColumnsINTTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ColumnLayoutData__ColumnspanAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getColumnLayoutDataAccess().getColumnspanINTTerminalRuleCall_3_0()); }
	RULE_INT{ after(grammarAccess.getColumnLayoutDataAccess().getColumnspanINTTerminalRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryCompositeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__LayoutdataAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_0()); }
	ruleColumnLayoutData{ after(grammarAccess.getDictionaryCompositeAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__LayoutAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getLayoutColumnLayoutParserRuleCall_4_0()); }
	ruleColumnLayout{ after(grammarAccess.getDictionaryCompositeAccess().getLayoutColumnLayoutParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryComposite__ContainercontentsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryCompositeAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
	ruleDictionaryContainerContent{ after(grammarAccess.getDictionaryCompositeAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryEditableTableAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__LayoutdataAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_1_0()); }
	ruleColumnLayoutData{ after(grammarAccess.getDictionaryEditableTableAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__LayoutAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getLayoutColumnLayoutParserRuleCall_4_1_0()); }
	ruleColumnLayout{ after(grammarAccess.getDictionaryEditableTableAccess().getLayoutColumnLayoutParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__ContainercontentsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
	ruleDictionaryContainerContent{ after(grammarAccess.getDictionaryEditableTableAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__EntityattributeAssignment_7
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeEntityAttributeCrossReference_7_0()); }
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1()); }
)
{ after(grammarAccess.getDictionaryEditableTableAccess().getEntityattributeEntityAttributeCrossReference_7_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEditableTable__ColumncontrolsAssignment_10
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEditableTableAccess().getColumncontrolsDictionaryControlParserRuleCall_10_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryEditableTableAccess().getColumncontrolsDictionaryControlParserRuleCall_10_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryAssignmentTableAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__LayoutdataAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_1_0()); }
	ruleColumnLayoutData{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutdataColumnLayoutDataParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__LayoutAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutColumnLayoutParserRuleCall_4_1_0()); }
	ruleColumnLayout{ after(grammarAccess.getDictionaryAssignmentTableAccess().getLayoutColumnLayoutParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__ContainercontentsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
	ruleDictionaryContainerContent{ after(grammarAccess.getDictionaryAssignmentTableAccess().getContainercontentsDictionaryContainerContentParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__EntityattributeAssignment_7
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeEntityAttributeCrossReference_7_0()); }
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1()); }
)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getEntityattributeEntityAttributeCrossReference_7_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__DictionaryAssignment_9
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryDictionaryCrossReference_9_0()); }
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryDictionaryQualifiedNameParserRuleCall_9_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryDictionaryQualifiedNameParserRuleCall_9_0_1()); }
)
{ after(grammarAccess.getDictionaryAssignmentTableAccess().getDictionaryDictionaryCrossReference_9_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryAssignmentTable__ColumncontrolsAssignment_12
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryAssignmentTableAccess().getColumncontrolsDictionaryControlParserRuleCall_12_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryAssignmentTableAccess().getColumncontrolsDictionaryControlParserRuleCall_12_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__LabelAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getLabelSTRINGTerminalRuleCall_1_1_0()); }
	RULE_STRING{ after(grammarAccess.getLabelsAccess().getLabelSTRINGTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__FilterLabelAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getFilterLabelSTRINGTerminalRuleCall_2_1_0()); }
	RULE_STRING{ after(grammarAccess.getLabelsAccess().getFilterLabelSTRINGTerminalRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__ColumnLabelAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getColumnLabelSTRINGTerminalRuleCall_3_1_0()); }
	RULE_STRING{ after(grammarAccess.getLabelsAccess().getColumnLabelSTRINGTerminalRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__EditorLabelAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getEditorLabelSTRINGTerminalRuleCall_4_1_0()); }
	RULE_STRING{ after(grammarAccess.getLabelsAccess().getEditorLabelSTRINGTerminalRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Labels__ToolTipAssignment_5_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLabelsAccess().getToolTipSTRINGTerminalRuleCall_5_1_0()); }
	RULE_STRING{ after(grammarAccess.getLabelsAccess().getToolTipSTRINGTerminalRuleCall_5_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__EntityattributeAssignment_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeEntityAttributeCrossReference_0_1_0()); }
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeEntityAttributeQualifiedNameParserRuleCall_0_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeEntityAttributeQualifiedNameParserRuleCall_0_1_0_1()); }
)
{ after(grammarAccess.getBaseDictionaryControlAccess().getEntityattributeEntityAttributeCrossReference_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__TypeAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getTypeDatatypeCrossReference_1_1_0()); }
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getTypeDatatypeQualifiedNameParserRuleCall_1_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getBaseDictionaryControlAccess().getTypeDatatypeQualifiedNameParserRuleCall_1_1_0_1()); }
)
{ after(grammarAccess.getBaseDictionaryControlAccess().getTypeDatatypeCrossReference_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__LabelsAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getLabelsLabelsParserRuleCall_2_0()); }
	ruleLabels{ after(grammarAccess.getBaseDictionaryControlAccess().getLabelsLabelsParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__MandatoryAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getMandatoryMandatoryKeyword_3_0()); }
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getMandatoryMandatoryKeyword_3_0()); }

	'mandatory' 

{ after(grammarAccess.getBaseDictionaryControlAccess().getMandatoryMandatoryKeyword_3_0()); }
)

{ after(grammarAccess.getBaseDictionaryControlAccess().getMandatoryMandatoryKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__WidthAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getWidthINTTerminalRuleCall_4_1_0()); }
	RULE_INT{ after(grammarAccess.getBaseDictionaryControlAccess().getWidthINTTerminalRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__BaseDictionaryControl__ReadonlyAssignment_5_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getBaseDictionaryControlAccess().getReadonlyXBooleanLiteralParserRuleCall_5_1_0()); }
	ruleXBooleanLiteral{ after(grammarAccess.getBaseDictionaryControlAccess().getReadonlyXBooleanLiteralParserRuleCall_5_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionMultiFilterField__MultiFilterFieldAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getMultiFilterFieldXBooleanLiteralParserRuleCall_1_1_0()); }
	ruleXBooleanLiteral{ after(grammarAccess.getDictionaryControlGroupOptionMultiFilterFieldAccess().getMultiFilterFieldXBooleanLiteralParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroupOptionsContainer__OptionsAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getOptionsDictionaryControlGroupOptionsParserRuleCall_3_0()); }
	ruleDictionaryControlGroupOptions{ after(grammarAccess.getDictionaryControlGroupOptionsContainerAccess().getOptionsDictionaryControlGroupOptionsParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryControlGroupAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getRefDictionaryControlGroupCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getRefDictionaryControlGroupQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryControlGroupAccess().getRefDictionaryControlGroupQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryControlGroupAccess().getRefDictionaryControlGroupCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__ControlGroupOptionsAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getControlGroupOptionsDictionaryControlGroupOptionsContainerParserRuleCall_4_1_0()); }
	ruleDictionaryControlGroupOptionsContainer{ after(grammarAccess.getDictionaryControlGroupAccess().getControlGroupOptionsDictionaryControlGroupOptionsContainerParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__BaseControlAssignment_4_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_2_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryControlGroupAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryControlGroup__GroupcontrolsAssignment_4_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryControlGroupAccess().getGroupcontrolsDictionaryControlParserRuleCall_4_3_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryControlGroupAccess().getGroupcontrolsDictionaryControlParserRuleCall_4_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getRefDictionaryHierarchicalControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getRefDictionaryHierarchicalControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getRefDictionaryHierarchicalControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getRefDictionaryHierarchicalControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryHierarchicalControl__HierarchicalIdAssignment_4_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalIdSTRINGTerminalRuleCall_4_3_0()); }
	RULE_STRING{ after(grammarAccess.getDictionaryHierarchicalControlAccess().getHierarchicalIdSTRINGTerminalRuleCall_4_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryTextControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getRefDictionaryTextControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryTextControlAccess().getRefDictionaryTextControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryTextControlAccess().getRefDictionaryTextControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryTextControlAccess().getRefDictionaryTextControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryTextControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryTextControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryTextControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControlInputType__InputtypeAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getInputtypeIntegerControlInputTypeEnumRuleCall_2_0()); }
	ruleIntegerControlInputType{ after(grammarAccess.getDictionaryIntegerControlInputTypeAccess().getInputtypeIntegerControlInputTypeEnumRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryIntegerControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getRefDictionaryIntegerControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getRefDictionaryIntegerControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryIntegerControlAccess().getRefDictionaryIntegerControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryIntegerControlAccess().getRefDictionaryIntegerControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryIntegerControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryIntegerControl__OptionsAssignment_4_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryIntegerControlAccess().getOptionsDictionaryIntegerControlOptionsParserRuleCall_4_2_0()); }
	ruleDictionaryIntegerControlOptions{ after(grammarAccess.getDictionaryIntegerControlAccess().getOptionsDictionaryIntegerControlOptionsParserRuleCall_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getRefDictionaryBigDecimalControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getRefDictionaryBigDecimalControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getRefDictionaryBigDecimalControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getRefDictionaryBigDecimalControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBigDecimalControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBigDecimalControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryBigDecimalControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryBooleanControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getRefDictionaryBooleanControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getRefDictionaryBooleanControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryBooleanControlAccess().getRefDictionaryBooleanControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryBooleanControlAccess().getRefDictionaryBooleanControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryBooleanControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryBooleanControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryBooleanControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryDateControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getRefDictionaryDateControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryDateControlAccess().getRefDictionaryDateControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryDateControlAccess().getRefDictionaryDateControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryDateControlAccess().getRefDictionaryDateControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryDateControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryDateControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryDateControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryEnumerationControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getRefDictionaryEnumerationControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getRefDictionaryEnumerationControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryEnumerationControlAccess().getRefDictionaryEnumerationControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryEnumerationControlAccess().getRefDictionaryEnumerationControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryEnumerationControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryEnumerationControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryEnumerationControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryReferenceControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getRefDictionaryReferenceControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getRefDictionaryReferenceControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryReferenceControlAccess().getRefDictionaryReferenceControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getRefDictionaryReferenceControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryReferenceControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__DictionaryAssignment_4_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryDictionaryCrossReference_4_2_1_0()); }
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryDictionaryQualifiedNameParserRuleCall_4_2_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryDictionaryQualifiedNameParserRuleCall_4_2_1_0_1()); }
)
{ after(grammarAccess.getDictionaryReferenceControlAccess().getDictionaryDictionaryCrossReference_4_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__ControlTypeAssignment_4_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getControlTypeReferenceControlTypeEnumRuleCall_4_3_1_0()); }
	ruleReferenceControlType{ after(grammarAccess.getDictionaryReferenceControlAccess().getControlTypeReferenceControlTypeEnumRuleCall_4_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryReferenceControl__LabelcontrolsAssignment_4_4_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryReferenceControlAccess().getLabelcontrolsDictionaryControlParserRuleCall_4_4_2_0()); }
	ruleDictionaryControl{ after(grammarAccess.getDictionaryReferenceControlAccess().getLabelcontrolsDictionaryControlParserRuleCall_4_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getDictionaryFileControlAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__RefAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getRefDictionaryFileControlCrossReference_3_1_0()); }
(
{ before(grammarAccess.getDictionaryFileControlAccess().getRefDictionaryFileControlQualifiedNameParserRuleCall_3_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getDictionaryFileControlAccess().getRefDictionaryFileControlQualifiedNameParserRuleCall_3_1_0_1()); }
)
{ after(grammarAccess.getDictionaryFileControlAccess().getRefDictionaryFileControlCrossReference_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__DictionaryFileControl__BaseControlAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getDictionaryFileControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
	ruleBaseDictionaryControl{ after(grammarAccess.getDictionaryFileControlAccess().getBaseControlBaseDictionaryControlParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Module__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Module__ModuledefinitionAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getModuledefinitionModuleDefinitionCrossReference_4_0()); }
(
{ before(grammarAccess.getModuleAccess().getModuledefinitionModuleDefinitionQualifiedNameParserRuleCall_4_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getModuleAccess().getModuledefinitionModuleDefinitionQualifiedNameParserRuleCall_4_0_1()); }
)
{ after(grammarAccess.getModuleAccess().getModuledefinitionModuleDefinitionCrossReference_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Module__ModuleParametersAssignment_5_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleAccess().getModuleParametersModuleParameterParserRuleCall_5_2_0()); }
	ruleModuleParameter{ after(grammarAccess.getModuleAccess().getModuleParametersModuleParameterParserRuleCall_5_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleParameter__ModuleDefinitionParameterAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleParameterAccess().getModuleDefinitionParameterModuleDefinitionParameterCrossReference_0_0()); }
(
{ before(grammarAccess.getModuleParameterAccess().getModuleDefinitionParameterModuleDefinitionParameterQualifiedNameParserRuleCall_0_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getModuleParameterAccess().getModuleDefinitionParameterModuleDefinitionParameterQualifiedNameParserRuleCall_0_0_1()); }
)
{ after(grammarAccess.getModuleParameterAccess().getModuleDefinitionParameterModuleDefinitionParameterCrossReference_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleParameter__ValueAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleParameterAccess().getValueSTRINGTerminalRuleCall_2_0()); }
	RULE_STRING{ after(grammarAccess.getModuleParameterAccess().getValueSTRINGTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getModuleDefinitionAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinition__ModuleDefinitionParametersAssignment_3_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionAccess().getModuleDefinitionParametersModuleDefinitionParameterParserRuleCall_3_2_0()); }
	ruleModuleDefinitionParameter{ after(grammarAccess.getModuleDefinitionAccess().getModuleDefinitionParametersModuleDefinitionParameterParserRuleCall_3_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getModuleDefinitionParameterAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ModuleDefinitionParameter__TypeAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getModuleDefinitionParameterAccess().getTypeSimpleTypesEnumRuleCall_4_0()); }
	ruleSimpleTypes{ after(grammarAccess.getModuleDefinitionParameterAccess().getTypeSimpleTypesEnumRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceOptions__NonpublicAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceOptionsAccess().getNonpublicNonpublicKeyword_1_0()); }
(
{ before(grammarAccess.getServiceOptionsAccess().getNonpublicNonpublicKeyword_1_0()); }

	'nonpublic' 

{ after(grammarAccess.getServiceOptionsAccess().getNonpublicNonpublicKeyword_1_0()); }
)

{ after(grammarAccess.getServiceOptionsAccess().getNonpublicNonpublicKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__TypeParameterAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getTypeParameterJvmTypeParameterParserRuleCall_1_1_0()); }
	ruleJvmTypeParameter{ after(grammarAccess.getServiceMethodAccess().getTypeParameterJvmTypeParameterParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__ReturnTypeAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getServiceMethodAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__NameAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getNameValidIDParserRuleCall_3_0()); }
	ruleValidID{ after(grammarAccess.getServiceMethodAccess().getNameValidIDParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__ParamsAssignment_5_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getParamsFullJvmFormalParameterParserRuleCall_5_0_0()); }
	ruleFullJvmFormalParameter{ after(grammarAccess.getServiceMethodAccess().getParamsFullJvmFormalParameterParserRuleCall_5_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__ServiceMethod__ParamsAssignment_5_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceMethodAccess().getParamsFullJvmFormalParameterParserRuleCall_5_1_1_0()); }
	ruleFullJvmFormalParameter{ after(grammarAccess.getServiceMethodAccess().getParamsFullJvmFormalParameterParserRuleCall_5_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Service__NameAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getNameIDTerminalRuleCall_2_0()); }
	RULE_ID{ after(grammarAccess.getServiceAccess().getNameIDTerminalRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Service__RemoteServiceOptionsAssignment_4_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getRemoteServiceOptionsServiceOptionsParserRuleCall_4_2_0()); }
	ruleServiceOptions{ after(grammarAccess.getServiceAccess().getRemoteServiceOptionsServiceOptionsParserRuleCall_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Service__RemoteMethodsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getServiceAccess().getRemoteMethodsServiceMethodParserRuleCall_5_0()); }
	ruleServiceMethod{ after(grammarAccess.getServiceAccess().getRemoteMethodsServiceMethodParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getNameIDTerminalRuleCall_1_0()); }
	RULE_ID{ after(grammarAccess.getNavigationNodeAccess().getNameIDTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__LabelAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getLabelSTRINGTerminalRuleCall_3_1_0()); }
	RULE_STRING{ after(grammarAccess.getNavigationNodeAccess().getLabelSTRINGTerminalRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__ModuleDefinitionAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleDefinitionModuleDefinitionCrossReference_4_1_0()); }
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleDefinitionModuleDefinitionQualifiedNameParserRuleCall_4_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getNavigationNodeAccess().getModuleDefinitionModuleDefinitionQualifiedNameParserRuleCall_4_1_0_1()); }
)
{ after(grammarAccess.getNavigationNodeAccess().getModuleDefinitionModuleDefinitionCrossReference_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__ModuleAssignment_5_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleModuleCrossReference_5_1_0()); }
(
{ before(grammarAccess.getNavigationNodeAccess().getModuleModuleQualifiedNameParserRuleCall_5_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getNavigationNodeAccess().getModuleModuleQualifiedNameParserRuleCall_5_1_0_1()); }
)
{ after(grammarAccess.getNavigationNodeAccess().getModuleModuleCrossReference_5_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__DictionaryEditorAssignment_6_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionaryEditorDictionaryEditorCrossReference_6_1_0()); }
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionaryEditorDictionaryEditorQualifiedNameParserRuleCall_6_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getNavigationNodeAccess().getDictionaryEditorDictionaryEditorQualifiedNameParserRuleCall_6_1_0_1()); }
)
{ after(grammarAccess.getNavigationNodeAccess().getDictionaryEditorDictionaryEditorCrossReference_6_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__DictionarySearchAssignment_7_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionarySearchDictionarySearchCrossReference_7_1_0()); }
(
{ before(grammarAccess.getNavigationNodeAccess().getDictionarySearchDictionarySearchQualifiedNameParserRuleCall_7_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getNavigationNodeAccess().getDictionarySearchDictionarySearchQualifiedNameParserRuleCall_7_1_0_1()); }
)
{ after(grammarAccess.getNavigationNodeAccess().getDictionarySearchDictionarySearchCrossReference_7_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__NavigationNode__NavigationNodesAssignment_8
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getNavigationNodeAccess().getNavigationNodesNavigationNodeParserRuleCall_8_0()); }
	ruleNavigationNode{ after(grammarAccess.getNavigationNodeAccess().getNavigationNodesNavigationNodeParserRuleCall_8_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__FeatureAssignment_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
(
{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); }
	ruleFeatureCallID{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); }
)
{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__ValueAssignment_0_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); }
	ruleXAssignment{ after(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__FeatureAssignment_1_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
(
{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); }
	ruleOpMultiAssign{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAssignment__RightOperandAssignment_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); }
	ruleXAssignment{ after(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__FeatureAssignment_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
(
{ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); }
	ruleOpOr{ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XOrExpression__RightOperandAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); }
	ruleXAndExpression{ after(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__FeatureAssignment_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
(
{ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); }
	ruleOpAnd{ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAndExpression__RightOperandAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); }
	ruleXEqualityExpression{ after(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__FeatureAssignment_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
(
{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); }
	ruleOpEquality{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XEqualityExpression__RightOperandAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); }
	ruleXRelationalExpression{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__TypeAssignment_1_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
(
{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); }
	ruleOpCompare{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XRelationalExpression__RightOperandAssignment_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); }
	ruleXOtherOperatorExpression{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); }
	ruleOpOther{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XOtherOperatorExpression__RightOperandAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); }
	ruleXAdditiveExpression{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); }
	ruleOpAdd{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XAdditiveExpression__RightOperandAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); }
	ruleXMultiplicativeExpression{ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); }
	ruleOpMulti{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); }
)
{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMultiplicativeExpression__RightOperandAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); }
	ruleXUnaryOperation{ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XUnaryOperation__FeatureAssignment_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
(
{ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); }
	ruleOpUnary{ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); }
)
{ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XUnaryOperation__OperandAssignment_0_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); }
	ruleXUnaryOperation{ after(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCastedExpression__TypeAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XPostfixOperation__FeatureAssignment_1_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); }
(
{ before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); }
	ruleOpPostfix{ after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); }
)
{ after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }

	'::' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
)

{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); }
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); }
	ruleFeatureCallID{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); }
)
{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__ValueAssignment_1_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); }
	ruleXAssignment{ after(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }

	'?.' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
)

{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }

	'::' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
)

{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__FeatureAssignment_1_1_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); }
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); }
	ruleIdOrSuper{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); }
)
{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }

	'(' 

{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
)

{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); }
	ruleXShortClosure{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); }
	ruleXExpression{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); }
	ruleXClosure{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__ElementsAssignment_3_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
	ruleXExpression{ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSetLiteral__ElementsAssignment_3_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__ElementsAssignment_3_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
	ruleXExpression{ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XListLiteral__ElementsAssignment_3_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__ExplicitSyntaxAssignment_1_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
(
{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }

	'|' 

{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
)

{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XClosure__ExpressionAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); }
	ruleXExpressionInClosure{ after(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XExpressionInClosure__ExpressionsAssignment_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); }
	ruleXExpressionOrVarDeclaration{ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
(
{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }

	'|' 

{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
)

{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XShortClosure__ExpressionAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); }
	ruleXExpression{ after(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__IfAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); }
	ruleXExpression{ after(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__ThenAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); }
	ruleXExpression{ after(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XIfExpression__ElseAssignment_6_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); }
	ruleXExpression{ after(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__SwitchAssignment_2_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); }
	ruleXExpression{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__SwitchAssignment_2_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__CasesAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); }
	ruleXCasePart{ after(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSwitchExpression__DefaultAssignment_5_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); }
	ruleXExpression{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__TypeGuardAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__CaseAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); }
	ruleXExpression{ after(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__ThenAssignment_3_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); }
	ruleXExpression{ after(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCasePart__FallThroughAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
(
{ before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }

	',' 

{ after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
)

{ after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); }
	ruleJvmFormalParameter{ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__ForExpressionAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); }
	ruleXExpression{ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XForLoopExpression__EachExpressionAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); }
	ruleXExpression{ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); }
	ruleXExpressionOrVarDeclaration{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); }
	ruleXExpressionOrVarDeclaration{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__ExpressionAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); }
	ruleXExpression{ after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); }
	ruleXExpression{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBasicForLoopExpression__EachExpressionAssignment_9
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); }
	ruleXExpression{ after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__PredicateAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); }
	ruleXExpression{ after(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XWhileExpression__BodyAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); }
	ruleXExpression{ after(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__BodyAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); }
	ruleXExpression{ after(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XDoWhileExpression__PredicateAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); }
	ruleXExpression{ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBlockExpression__ExpressionsAssignment_2_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); }
	ruleXExpressionOrVarDeclaration{ after(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__WriteableAssignment_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
(
{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }

	'var' 

{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
)

{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__TypeAssignment_2_0_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__NameAssignment_2_0_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); }
	ruleValidID{ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__NameAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); }
	ruleValidID{ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XVariableDeclaration__RightAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); }
	ruleXExpression{ after(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmFormalParameter__ParameterTypeAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmFormalParameter__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
	ruleValidID{ after(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FullJvmFormalParameter__ParameterTypeAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__FullJvmFormalParameter__NameAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
	ruleValidID{ after(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__TypeArgumentsAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__FeatureAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); }
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); }
	ruleIdOrSuper{ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); }
)
{ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
(
{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }

	'(' 

{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
)

{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); }
	ruleXShortClosure{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); }
	ruleXExpression{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFeatureCall__FeatureCallArgumentsAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); }
	ruleXClosure{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__ConstructorAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); }
(
{ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); }
)
{ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__TypeArgumentsAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
(
{ before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }

	'(' 

{ after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
)

{ after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__ArgumentsAssignment_4_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); }
	ruleXShortClosure{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); }
	ruleXExpression{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XConstructorCall__ArgumentsAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); }
	ruleXClosure{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XBooleanLiteral__IsTrueAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
(
{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }

	'true' 

{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
)

{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XNumberLiteral__ValueAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); }
	ruleNumber{ after(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XStringLiteral__ValueAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); }
	RULE_STRING{ after(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__TypeAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); }
(
{ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); }
)
{ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTypeLiteral__ArrayDimensionsAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); }
	ruleArrayBrackets{ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XThrowExpression__ExpressionAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
	ruleXExpression{ after(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XReturnExpression__ExpressionAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
	ruleXExpression{ after(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__ExpressionAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
	ruleXExpression{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); }
	ruleXCatchClause{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); }
	ruleXExpression{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__ParamAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); }
	ruleXExpression{ after(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XSynchronizedExpression__ExpressionAssignment_3
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); }
	ruleXExpression{ after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__DeclaredParamAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); }
	ruleFullJvmFormalParameter{ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XCatchClause__ExpressionAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); }
	ruleXExpression{ after(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XFunctionTypeRef__ReturnTypeAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__TypeAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); }
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); }
)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); }
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); }
	ruleValidID{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); }
)
{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); }
	ruleJvmArgumentTypeReference{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); }
	ruleJvmUpperBound{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); }
	ruleJvmUpperBoundAnded{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); }
	ruleJvmLowerBound{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); }
	ruleJvmLowerBoundAnded{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmUpperBound__TypeReferenceAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmLowerBound__TypeReferenceAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
	ruleJvmTypeReference{ after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__NameAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getNameValidIDParserRuleCall_0_0()); }
	ruleValidID{ after(grammarAccess.getJvmTypeParameterAccess().getNameValidIDParserRuleCall_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__ConstraintsAssignment_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getConstraintsJvmUpperBoundParserRuleCall_1_0_0()); }
	ruleJvmUpperBound{ after(grammarAccess.getJvmTypeParameterAccess().getConstraintsJvmUpperBoundParserRuleCall_1_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__JvmTypeParameter__ConstraintsAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getJvmTypeParameterAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_1_1_0()); }
	ruleJvmUpperBoundAnded{ after(grammarAccess.getJvmTypeParameterAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportSection__ImportDeclarationsAssignment
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); }
	ruleXImportDeclaration{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__StaticAssignment_1_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
(
{ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }

	'static' 

{ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
)

{ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__ExtensionAssignment_1_0_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
(
{ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }

	'extension' 

{ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
)

{ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__ImportedTypeAssignment_1_0_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); }
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_1_0_2_0_1()); }
	ruleQualifiedNameInStaticImport{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_1_0_2_0_1()); }
)
{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__WildcardAssignment_1_0_3_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); }
(
{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); }

	'*' 

{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); }
)

{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__MemberNameAssignment_1_0_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); }
	ruleValidID{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__ImportedTypeAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); }
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); }
	ruleQualifiedName{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); }
)
{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__XImportDeclaration__ImportedNamespaceAssignment_1_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); }
	ruleQualifiedNameWithWildcard{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;

RULE_INT : '0'..'9' ('0'..'9'|'_')*;

RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;

RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;

RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'?|'\'' ('\\' .|~(('\\'|'\'')))* '\''?);

RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';

RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;

RULE_WS : (' '|'\t'|'\r'|'\n')+;

RULE_ANY_OTHER : .;






© 2015 - 2025 Weber Informatics LLC | Privacy Policy