package edu.ksu.cis.projects.mdcf.devicemodel.parser.antlr.internal; import org.eclipse.xtext.*; import org.eclipse.xtext.parser.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; import edu.ksu.cis.projects.mdcf.devicemodel.services.DeviceModelingLanguageGrammarAccess; import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; @SuppressWarnings("all") public class InternalDeviceModelingLanguageParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_NAT", "RULE_LIT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "'Schema'", "'Class'", "'Product'", "'type'", "'extends'", "'with'", "'feature'", "'schema'", "'class'", "'product'", "'data'", "'device'", "'app'", "'{'", "'}'", "'requires'", "':'", "'='", "'const'", "'instance'", "'val'", "'var'", "'override'", "'Const'", "'Instance'", "'Val'", "'Var'", "'Override'", "'Data'", "'Option'", "'['", "']'", "'None'", "'Some'", "'Either'", "','", "'Seq'", "'Set'", "'inv'", "'..'", "'.'", "'*'", "'constraint'", "'('", "')'", "'=='", "'!='", "'>='", "'<='", "'>'", "'<'", "'&&'", "'||'", "'==>'", "'<=='", "'+'", "'-'", "'/'", "'%'", "'!'", "'^'", "'~'" }; public static final int T__68=68; public static final int T__69=69; public static final int RULE_ID=4; public static final int T__66=66; public static final int T__67=67; public static final int T__64=64; public static final int T__29=29; public static final int T__65=65; public static final int T__28=28; public static final int T__62=62; public static final int T__27=27; public static final int T__63=63; public static final int T__26=26; public static final int T__25=25; public static final int T__24=24; public static final int T__23=23; public static final int T__22=22; public static final int T__21=21; public static final int T__20=20; public static final int T__61=61; public static final int T__60=60; public static final int EOF=-1; public static final int T__55=55; public static final int T__56=56; public static final int T__19=19; public static final int T__57=57; public static final int T__58=58; public static final int T__51=51; public static final int T__16=16; public static final int T__52=52; public static final int T__15=15; public static final int T__53=53; public static final int T__18=18; public static final int T__54=54; public static final int T__17=17; public static final int T__12=12; public static final int T__11=11; public static final int T__14=14; public static final int T__13=13; public static final int T__59=59; public static final int T__10=10; public static final int T__50=50; public static final int T__42=42; public static final int T__43=43; public static final int T__40=40; public static final int T__41=41; public static final int T__46=46; public static final int T__47=47; public static final int T__44=44; public static final int T__45=45; public static final int RULE_LIT=6; public static final int T__48=48; public static final int T__49=49; public static final int RULE_SL_COMMENT=8; public static final int RULE_ML_COMMENT=7; public static final int T__30=30; public static final int T__31=31; public static final int T__32=32; public static final int T__71=71; public static final int T__33=33; public static final int T__34=34; public static final int T__35=35; public static final int T__70=70; public static final int T__36=36; public static final int T__37=37; public static final int T__38=38; public static final int T__39=39; public static final int RULE_NAT=5; public static final int RULE_WS=9; // delegates // delegators public InternalDeviceModelingLanguageParser(TokenStream input) { this(input, new RecognizerSharedState()); } public InternalDeviceModelingLanguageParser(TokenStream input, RecognizerSharedState state) { super(input, state); } public String[] getTokenNames() { return InternalDeviceModelingLanguageParser.tokenNames; } public String getGrammarFileName() { return "../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g"; } private DeviceModelingLanguageGrammarAccess grammarAccess; public InternalDeviceModelingLanguageParser(TokenStream input, DeviceModelingLanguageGrammarAccess grammarAccess) { this(input); this.grammarAccess = grammarAccess; registerRules(grammarAccess.getGrammar()); } @Override protected String getFirstRuleName() { return "Model"; } @Override protected DeviceModelingLanguageGrammarAccess getGrammarAccess() { return grammarAccess; } // $ANTLR start "entryRuleModel" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:67:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ; public final EObject entryRuleModel() throws RecognitionException { EObject current = null; EObject iv_ruleModel = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:68:2: (iv_ruleModel= ruleModel EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:69:2: iv_ruleModel= ruleModel EOF { newCompositeNode(grammarAccess.getModelRule()); pushFollow(FOLLOW_ruleModel_in_entryRuleModel75); iv_ruleModel=ruleModel(); state._fsp--; current =iv_ruleModel; match(input,EOF,FOLLOW_EOF_in_entryRuleModel85); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleModel" // $ANTLR start "ruleModel" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:76:1: ruleModel returns [EObject current=null] : ( ( ( (lv_schema_0_0= 'Schema' ) ) | ( (lv_class_1_0= 'Class' ) ) | ( (lv_product_2_0= 'Product' ) ) )? ( (lv_decls_3_0= ruleDecl ) )* ) ; public final EObject ruleModel() throws RecognitionException { EObject current = null; Token lv_schema_0_0=null; Token lv_class_1_0=null; Token lv_product_2_0=null; EObject lv_decls_3_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:79:28: ( ( ( ( (lv_schema_0_0= 'Schema' ) ) | ( (lv_class_1_0= 'Class' ) ) | ( (lv_product_2_0= 'Product' ) ) )? ( (lv_decls_3_0= ruleDecl ) )* ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:80:1: ( ( ( (lv_schema_0_0= 'Schema' ) ) | ( (lv_class_1_0= 'Class' ) ) | ( (lv_product_2_0= 'Product' ) ) )? ( (lv_decls_3_0= ruleDecl ) )* ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:80:1: ( ( ( (lv_schema_0_0= 'Schema' ) ) | ( (lv_class_1_0= 'Class' ) ) | ( (lv_product_2_0= 'Product' ) ) )? ( (lv_decls_3_0= ruleDecl ) )* ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:80:2: ( ( (lv_schema_0_0= 'Schema' ) ) | ( (lv_class_1_0= 'Class' ) ) | ( (lv_product_2_0= 'Product' ) ) )? ( (lv_decls_3_0= ruleDecl ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:80:2: ( ( (lv_schema_0_0= 'Schema' ) ) | ( (lv_class_1_0= 'Class' ) ) | ( (lv_product_2_0= 'Product' ) ) )? int alt1=4; switch ( input.LA(1) ) { case 10: { alt1=1; } break; case 11: { alt1=2; } break; case 12: { alt1=3; } break; } switch (alt1) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:80:3: ( (lv_schema_0_0= 'Schema' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:80:3: ( (lv_schema_0_0= 'Schema' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:81:1: (lv_schema_0_0= 'Schema' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:81:1: (lv_schema_0_0= 'Schema' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:82:3: lv_schema_0_0= 'Schema' { lv_schema_0_0=(Token)match(input,10,FOLLOW_10_in_ruleModel129); newLeafNode(lv_schema_0_0, grammarAccess.getModelAccess().getSchemaSchemaKeyword_0_0_0()); if (current==null) { current = createModelElement(grammarAccess.getModelRule()); } setWithLastConsumed(current, "schema", true, "Schema"); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:96:6: ( (lv_class_1_0= 'Class' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:96:6: ( (lv_class_1_0= 'Class' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:97:1: (lv_class_1_0= 'Class' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:97:1: (lv_class_1_0= 'Class' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:98:3: lv_class_1_0= 'Class' { lv_class_1_0=(Token)match(input,11,FOLLOW_11_in_ruleModel166); newLeafNode(lv_class_1_0, grammarAccess.getModelAccess().getClassClassKeyword_0_1_0()); if (current==null) { current = createModelElement(grammarAccess.getModelRule()); } setWithLastConsumed(current, "class", true, "Class"); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:112:6: ( (lv_product_2_0= 'Product' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:112:6: ( (lv_product_2_0= 'Product' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:113:1: (lv_product_2_0= 'Product' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:113:1: (lv_product_2_0= 'Product' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:114:3: lv_product_2_0= 'Product' { lv_product_2_0=(Token)match(input,12,FOLLOW_12_in_ruleModel203); newLeafNode(lv_product_2_0, grammarAccess.getModelAccess().getProductProductKeyword_0_2_0()); if (current==null) { current = createModelElement(grammarAccess.getModelRule()); } setWithLastConsumed(current, "product", true, "Product"); } } } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:127:4: ( (lv_decls_3_0= ruleDecl ) )* loop2: do { int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==13||LA2_0==16||(LA2_0>=20 && LA2_0<=22)) ) { alt2=1; } switch (alt2) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:128:1: (lv_decls_3_0= ruleDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:128:1: (lv_decls_3_0= ruleDecl ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:129:3: lv_decls_3_0= ruleDecl { newCompositeNode(grammarAccess.getModelAccess().getDeclsDeclParserRuleCall_1_0()); pushFollow(FOLLOW_ruleDecl_in_ruleModel239); lv_decls_3_0=ruleDecl(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getModelRule()); } add( current, "decls", lv_decls_3_0, "Decl"); afterParserOrEnumRuleCall(); } } break; default : break loop2; } } while (true); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleModel" // $ANTLR start "entryRuleDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:153:1: entryRuleDecl returns [EObject current=null] : iv_ruleDecl= ruleDecl EOF ; public final EObject entryRuleDecl() throws RecognitionException { EObject current = null; EObject iv_ruleDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:154:2: (iv_ruleDecl= ruleDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:155:2: iv_ruleDecl= ruleDecl EOF { newCompositeNode(grammarAccess.getDeclRule()); pushFollow(FOLLOW_ruleDecl_in_entryRuleDecl276); iv_ruleDecl=ruleDecl(); state._fsp--; current =iv_ruleDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleDecl286); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleDecl" // $ANTLR start "ruleDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:162:1: ruleDecl returns [EObject current=null] : (this_TypeDecl_0= ruleTypeDecl | this_FeatureDecl_1= ruleFeatureDecl ) ; public final EObject ruleDecl() throws RecognitionException { EObject current = null; EObject this_TypeDecl_0 = null; EObject this_FeatureDecl_1 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:165:28: ( (this_TypeDecl_0= ruleTypeDecl | this_FeatureDecl_1= ruleFeatureDecl ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:166:1: (this_TypeDecl_0= ruleTypeDecl | this_FeatureDecl_1= ruleFeatureDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:166:1: (this_TypeDecl_0= ruleTypeDecl | this_FeatureDecl_1= ruleFeatureDecl ) int alt3=2; int LA3_0 = input.LA(1); if ( (LA3_0==13) ) { alt3=1; } else if ( (LA3_0==16||(LA3_0>=20 && LA3_0<=22)) ) { alt3=2; } else { NoViableAltException nvae = new NoViableAltException("", 3, 0, input); throw nvae; } switch (alt3) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:167:5: this_TypeDecl_0= ruleTypeDecl { newCompositeNode(grammarAccess.getDeclAccess().getTypeDeclParserRuleCall_0()); pushFollow(FOLLOW_ruleTypeDecl_in_ruleDecl333); this_TypeDecl_0=ruleTypeDecl(); state._fsp--; current = this_TypeDecl_0; afterParserOrEnumRuleCall(); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:177:5: this_FeatureDecl_1= ruleFeatureDecl { newCompositeNode(grammarAccess.getDeclAccess().getFeatureDeclParserRuleCall_1()); pushFollow(FOLLOW_ruleFeatureDecl_in_ruleDecl360); this_FeatureDecl_1=ruleFeatureDecl(); state._fsp--; current = this_FeatureDecl_1; afterParserOrEnumRuleCall(); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleDecl" // $ANTLR start "entryRuleTypeDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:193:1: entryRuleTypeDecl returns [EObject current=null] : iv_ruleTypeDecl= ruleTypeDecl EOF ; public final EObject entryRuleTypeDecl() throws RecognitionException { EObject current = null; EObject iv_ruleTypeDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:194:2: (iv_ruleTypeDecl= ruleTypeDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:195:2: iv_ruleTypeDecl= ruleTypeDecl EOF { newCompositeNode(grammarAccess.getTypeDeclRule()); pushFollow(FOLLOW_ruleTypeDecl_in_entryRuleTypeDecl395); iv_ruleTypeDecl=ruleTypeDecl(); state._fsp--; current =iv_ruleTypeDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleTypeDecl405); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleTypeDecl" // $ANTLR start "ruleTypeDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:202:1: ruleTypeDecl returns [EObject current=null] : (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* )? ) ; public final EObject ruleTypeDecl() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_name_1_0=null; Token otherlv_2=null; Token otherlv_3=null; Token otherlv_4=null; Token otherlv_5=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:205:28: ( (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* )? ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:206:1: (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:206:1: (otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:206:3: otherlv_0= 'type' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* )? { otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleTypeDecl442); newLeafNode(otherlv_0, grammarAccess.getTypeDeclAccess().getTypeKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:210:1: ( (lv_name_1_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:211:1: (lv_name_1_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:211:1: (lv_name_1_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:212:3: lv_name_1_0= RULE_ID { lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTypeDecl459); newLeafNode(lv_name_1_0, grammarAccess.getTypeDeclAccess().getNameIDTerminalRuleCall_1_0()); if (current==null) { current = createModelElement(grammarAccess.getTypeDeclRule()); } setWithLastConsumed( current, "name", lv_name_1_0, "ID"); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:228:2: (otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* )? int alt5=2; int LA5_0 = input.LA(1); if ( (LA5_0==14) ) { alt5=1; } switch (alt5) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:228:4: otherlv_2= 'extends' ( (otherlv_3= RULE_ID ) ) (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* { otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleTypeDecl477); newLeafNode(otherlv_2, grammarAccess.getTypeDeclAccess().getExtendsKeyword_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:232:1: ( (otherlv_3= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:233:1: (otherlv_3= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:233:1: (otherlv_3= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:234:3: otherlv_3= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getTypeDeclRule()); } otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTypeDecl497); newLeafNode(otherlv_3, grammarAccess.getTypeDeclAccess().getSupersTypeDeclCrossReference_2_1_0()); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:245:2: (otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) )* loop4: do { int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==15) ) { alt4=1; } switch (alt4) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:245:4: otherlv_4= 'with' ( (otherlv_5= RULE_ID ) ) { otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleTypeDecl510); newLeafNode(otherlv_4, grammarAccess.getTypeDeclAccess().getWithKeyword_2_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:249:1: ( (otherlv_5= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:250:1: (otherlv_5= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:250:1: (otherlv_5= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:251:3: otherlv_5= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getTypeDeclRule()); } otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTypeDecl530); newLeafNode(otherlv_5, grammarAccess.getTypeDeclAccess().getSupersTypeDeclCrossReference_2_2_1_0()); } } } break; default : break loop4; } } while (true); } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleTypeDecl" // $ANTLR start "entryRuleFeatureDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:270:1: entryRuleFeatureDecl returns [EObject current=null] : iv_ruleFeatureDecl= ruleFeatureDecl EOF ; public final EObject entryRuleFeatureDecl() throws RecognitionException { EObject current = null; EObject iv_ruleFeatureDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:271:2: (iv_ruleFeatureDecl= ruleFeatureDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:272:2: iv_ruleFeatureDecl= ruleFeatureDecl EOF { newCompositeNode(grammarAccess.getFeatureDeclRule()); pushFollow(FOLLOW_ruleFeatureDecl_in_entryRuleFeatureDecl570); iv_ruleFeatureDecl=ruleFeatureDecl(); state._fsp--; current =iv_ruleFeatureDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureDecl580); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleFeatureDecl" // $ANTLR start "ruleFeatureDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:279:1: ruleFeatureDecl returns [EObject current=null] : ( ( (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) | (otherlv_5= 'data' () ) | (otherlv_7= 'device' () ) | (otherlv_9= 'app' () ) ) ( (lv_name_11_0= RULE_ID ) ) (otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* )? (otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' )? (otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' )? ) ; public final EObject ruleFeatureDecl() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_schema_2_0=null; Token lv_class_3_0=null; Token lv_product_4_0=null; Token otherlv_5=null; Token otherlv_7=null; Token otherlv_9=null; Token lv_name_11_0=null; Token otherlv_12=null; Token otherlv_13=null; Token otherlv_14=null; Token otherlv_15=null; Token otherlv_16=null; Token otherlv_18=null; Token otherlv_19=null; Token otherlv_20=null; Token otherlv_24=null; EObject lv_members_17_0 = null; EObject lv_devices_21_0 = null; EObject lv_assigns_22_0 = null; EObject lv_exp_23_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:282:28: ( ( ( (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) | (otherlv_5= 'data' () ) | (otherlv_7= 'device' () ) | (otherlv_9= 'app' () ) ) ( (lv_name_11_0= RULE_ID ) ) (otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* )? (otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' )? (otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' )? ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:1: ( ( (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) | (otherlv_5= 'data' () ) | (otherlv_7= 'device' () ) | (otherlv_9= 'app' () ) ) ( (lv_name_11_0= RULE_ID ) ) (otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* )? (otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' )? (otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:1: ( ( (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) | (otherlv_5= 'data' () ) | (otherlv_7= 'device' () ) | (otherlv_9= 'app' () ) ) ( (lv_name_11_0= RULE_ID ) ) (otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* )? (otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' )? (otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:2: ( (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) | (otherlv_5= 'data' () ) | (otherlv_7= 'device' () ) | (otherlv_9= 'app' () ) ) ( (lv_name_11_0= RULE_ID ) ) (otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* )? (otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' )? (otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' )? { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:2: ( (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) | (otherlv_5= 'data' () ) | (otherlv_7= 'device' () ) | (otherlv_9= 'app' () ) ) int alt7=4; switch ( input.LA(1) ) { case 16: { alt7=1; } break; case 20: { alt7=2; } break; case 21: { alt7=3; } break; case 22: { alt7=4; } break; default: NoViableAltException nvae = new NoViableAltException("", 7, 0, input); throw nvae; } switch (alt7) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:3: (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:3: (otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:283:5: otherlv_0= 'feature' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? { otherlv_0=(Token)match(input,16,FOLLOW_16_in_ruleFeatureDecl619); newLeafNode(otherlv_0, grammarAccess.getFeatureDeclAccess().getFeatureKeyword_0_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:287:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:288:5: { current = forceCreateModelElement( grammarAccess.getFeatureDeclAccess().getFeatureAction_0_0_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:293:2: ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) )? int alt6=4; switch ( input.LA(1) ) { case 17: { alt6=1; } break; case 18: { alt6=2; } break; case 19: { alt6=3; } break; } switch (alt6) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:293:3: ( (lv_schema_2_0= 'schema' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:293:3: ( (lv_schema_2_0= 'schema' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:294:1: (lv_schema_2_0= 'schema' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:294:1: (lv_schema_2_0= 'schema' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:295:3: lv_schema_2_0= 'schema' { lv_schema_2_0=(Token)match(input,17,FOLLOW_17_in_ruleFeatureDecl647); newLeafNode(lv_schema_2_0, grammarAccess.getFeatureDeclAccess().getSchemaSchemaKeyword_0_0_2_0_0()); if (current==null) { current = createModelElement(grammarAccess.getFeatureDeclRule()); } setWithLastConsumed(current, "schema", true, "schema"); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:309:6: ( (lv_class_3_0= 'class' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:309:6: ( (lv_class_3_0= 'class' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:310:1: (lv_class_3_0= 'class' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:310:1: (lv_class_3_0= 'class' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:311:3: lv_class_3_0= 'class' { lv_class_3_0=(Token)match(input,18,FOLLOW_18_in_ruleFeatureDecl684); newLeafNode(lv_class_3_0, grammarAccess.getFeatureDeclAccess().getClassClassKeyword_0_0_2_1_0()); if (current==null) { current = createModelElement(grammarAccess.getFeatureDeclRule()); } setWithLastConsumed(current, "class", true, "class"); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:325:6: ( (lv_product_4_0= 'product' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:325:6: ( (lv_product_4_0= 'product' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:326:1: (lv_product_4_0= 'product' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:326:1: (lv_product_4_0= 'product' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:327:3: lv_product_4_0= 'product' { lv_product_4_0=(Token)match(input,19,FOLLOW_19_in_ruleFeatureDecl721); newLeafNode(lv_product_4_0, grammarAccess.getFeatureDeclAccess().getProductProductKeyword_0_0_2_2_0()); if (current==null) { current = createModelElement(grammarAccess.getFeatureDeclRule()); } setWithLastConsumed(current, "product", true, "product"); } } } break; } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:341:6: (otherlv_5= 'data' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:341:6: (otherlv_5= 'data' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:341:8: otherlv_5= 'data' () { otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleFeatureDecl756); newLeafNode(otherlv_5, grammarAccess.getFeatureDeclAccess().getDataKeyword_0_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:345:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:346:5: { current = forceCreateModelElement( grammarAccess.getFeatureDeclAccess().getDataAction_0_1_1(), current); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:352:6: (otherlv_7= 'device' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:352:6: (otherlv_7= 'device' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:352:8: otherlv_7= 'device' () { otherlv_7=(Token)match(input,21,FOLLOW_21_in_ruleFeatureDecl785); newLeafNode(otherlv_7, grammarAccess.getFeatureDeclAccess().getDeviceKeyword_0_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:356:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:357:5: { current = forceCreateModelElement( grammarAccess.getFeatureDeclAccess().getDeviceAction_0_2_1(), current); } } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:363:6: (otherlv_9= 'app' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:363:6: (otherlv_9= 'app' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:363:8: otherlv_9= 'app' () { otherlv_9=(Token)match(input,22,FOLLOW_22_in_ruleFeatureDecl814); newLeafNode(otherlv_9, grammarAccess.getFeatureDeclAccess().getAppKeyword_0_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:367:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:368:5: { current = forceCreateModelElement( grammarAccess.getFeatureDeclAccess().getAppAction_0_3_1(), current); } } } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:373:4: ( (lv_name_11_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:374:1: (lv_name_11_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:374:1: (lv_name_11_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:375:3: lv_name_11_0= RULE_ID { lv_name_11_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFeatureDecl842); newLeafNode(lv_name_11_0, grammarAccess.getFeatureDeclAccess().getNameIDTerminalRuleCall_1_0()); if (current==null) { current = createModelElement(grammarAccess.getFeatureDeclRule()); } setWithLastConsumed( current, "name", lv_name_11_0, "ID"); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:391:2: (otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* )? int alt9=2; int LA9_0 = input.LA(1); if ( (LA9_0==14) ) { alt9=1; } switch (alt9) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:391:4: otherlv_12= 'extends' ( (otherlv_13= RULE_ID ) ) (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* { otherlv_12=(Token)match(input,14,FOLLOW_14_in_ruleFeatureDecl860); newLeafNode(otherlv_12, grammarAccess.getFeatureDeclAccess().getExtendsKeyword_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:395:1: ( (otherlv_13= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:396:1: (otherlv_13= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:396:1: (otherlv_13= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:397:3: otherlv_13= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getFeatureDeclRule()); } otherlv_13=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFeatureDecl880); newLeafNode(otherlv_13, grammarAccess.getFeatureDeclAccess().getSupersFeatureDeclCrossReference_2_1_0()); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:408:2: (otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) )* loop8: do { int alt8=2; int LA8_0 = input.LA(1); if ( (LA8_0==15) ) { alt8=1; } switch (alt8) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:408:4: otherlv_14= 'with' ( (otherlv_15= RULE_ID ) ) { otherlv_14=(Token)match(input,15,FOLLOW_15_in_ruleFeatureDecl893); newLeafNode(otherlv_14, grammarAccess.getFeatureDeclAccess().getWithKeyword_2_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:412:1: ( (otherlv_15= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:413:1: (otherlv_15= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:413:1: (otherlv_15= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:414:3: otherlv_15= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getFeatureDeclRule()); } otherlv_15=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFeatureDecl913); newLeafNode(otherlv_15, grammarAccess.getFeatureDeclAccess().getSupersFeatureDeclCrossReference_2_2_1_0()); } } } break; default : break loop8; } } while (true); } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:425:6: (otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' )? int alt11=2; int LA11_0 = input.LA(1); if ( (LA11_0==23) ) { alt11=1; } switch (alt11) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:425:8: otherlv_16= '{' ( (lv_members_17_0= ruleMemberDecl ) )* otherlv_18= '}' { otherlv_16=(Token)match(input,23,FOLLOW_23_in_ruleFeatureDecl930); newLeafNode(otherlv_16, grammarAccess.getFeatureDeclAccess().getLeftCurlyBracketKeyword_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:429:1: ( (lv_members_17_0= ruleMemberDecl ) )* loop10: do { int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0==RULE_ID||LA10_0==28||(LA10_0>=30 && LA10_0<=33)||(LA10_0>=35 && LA10_0<=38)||LA10_0==48) ) { alt10=1; } switch (alt10) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:430:1: (lv_members_17_0= ruleMemberDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:430:1: (lv_members_17_0= ruleMemberDecl ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:431:3: lv_members_17_0= ruleMemberDecl { newCompositeNode(grammarAccess.getFeatureDeclAccess().getMembersMemberDeclParserRuleCall_3_1_0()); pushFollow(FOLLOW_ruleMemberDecl_in_ruleFeatureDecl951); lv_members_17_0=ruleMemberDecl(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureDeclRule()); } add( current, "members", lv_members_17_0, "MemberDecl"); afterParserOrEnumRuleCall(); } } break; default : break loop10; } } while (true); otherlv_18=(Token)match(input,24,FOLLOW_24_in_ruleFeatureDecl964); newLeafNode(otherlv_18, grammarAccess.getFeatureDeclAccess().getRightCurlyBracketKeyword_3_2()); } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:451:3: (otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' )? int alt14=2; int LA14_0 = input.LA(1); if ( (LA14_0==25) ) { alt14=1; } switch (alt14) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:451:5: otherlv_19= 'requires' otherlv_20= '{' ( (lv_devices_21_0= ruleDevice ) )* ( (lv_assigns_22_0= ruleAssignment ) )* ( (lv_exp_23_0= ruleExp ) ) otherlv_24= '}' { otherlv_19=(Token)match(input,25,FOLLOW_25_in_ruleFeatureDecl979); newLeafNode(otherlv_19, grammarAccess.getFeatureDeclAccess().getRequiresKeyword_4_0()); otherlv_20=(Token)match(input,23,FOLLOW_23_in_ruleFeatureDecl991); newLeafNode(otherlv_20, grammarAccess.getFeatureDeclAccess().getLeftCurlyBracketKeyword_4_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:459:1: ( (lv_devices_21_0= ruleDevice ) )* loop12: do { int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0==RULE_ID) ) { int LA12_1 = input.LA(2); if ( (LA12_1==26) ) { alt12=1; } } switch (alt12) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:460:1: (lv_devices_21_0= ruleDevice ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:460:1: (lv_devices_21_0= ruleDevice ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:461:3: lv_devices_21_0= ruleDevice { newCompositeNode(grammarAccess.getFeatureDeclAccess().getDevicesDeviceParserRuleCall_4_2_0()); pushFollow(FOLLOW_ruleDevice_in_ruleFeatureDecl1012); lv_devices_21_0=ruleDevice(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureDeclRule()); } add( current, "devices", lv_devices_21_0, "Device"); afterParserOrEnumRuleCall(); } } break; default : break loop12; } } while (true); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:477:3: ( (lv_assigns_22_0= ruleAssignment ) )* loop13: do { int alt13=2; int LA13_0 = input.LA(1); if ( (LA13_0==RULE_ID) ) { int LA13_2 = input.LA(2); if ( (LA13_2==27) ) { alt13=1; } } switch (alt13) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:478:1: (lv_assigns_22_0= ruleAssignment ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:478:1: (lv_assigns_22_0= ruleAssignment ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:479:3: lv_assigns_22_0= ruleAssignment { newCompositeNode(grammarAccess.getFeatureDeclAccess().getAssignsAssignmentParserRuleCall_4_3_0()); pushFollow(FOLLOW_ruleAssignment_in_ruleFeatureDecl1034); lv_assigns_22_0=ruleAssignment(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureDeclRule()); } add( current, "assigns", lv_assigns_22_0, "Assignment"); afterParserOrEnumRuleCall(); } } break; default : break loop13; } } while (true); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:495:3: ( (lv_exp_23_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:496:1: (lv_exp_23_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:496:1: (lv_exp_23_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:497:3: lv_exp_23_0= ruleExp { newCompositeNode(grammarAccess.getFeatureDeclAccess().getExpExpParserRuleCall_4_4_0()); pushFollow(FOLLOW_ruleExp_in_ruleFeatureDecl1056); lv_exp_23_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureDeclRule()); } set( current, "exp", lv_exp_23_0, "Exp"); afterParserOrEnumRuleCall(); } } otherlv_24=(Token)match(input,24,FOLLOW_24_in_ruleFeatureDecl1068); newLeafNode(otherlv_24, grammarAccess.getFeatureDeclAccess().getRightCurlyBracketKeyword_4_5()); } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleFeatureDecl" // $ANTLR start "entryRuleMemberDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:525:1: entryRuleMemberDecl returns [EObject current=null] : iv_ruleMemberDecl= ruleMemberDecl EOF ; public final EObject entryRuleMemberDecl() throws RecognitionException { EObject current = null; EObject iv_ruleMemberDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:526:2: (iv_ruleMemberDecl= ruleMemberDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:527:2: iv_ruleMemberDecl= ruleMemberDecl EOF { newCompositeNode(grammarAccess.getMemberDeclRule()); pushFollow(FOLLOW_ruleMemberDecl_in_entryRuleMemberDecl1106); iv_ruleMemberDecl=ruleMemberDecl(); state._fsp--; current =iv_ruleMemberDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleMemberDecl1116); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleMemberDecl" // $ANTLR start "ruleMemberDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:534:1: ruleMemberDecl returns [EObject current=null] : (this_AttrDecl_0= ruleAttrDecl | this_SubMemberDecl_1= ruleSubMemberDecl | this_InvariantDecl_2= ruleInvariantDecl ) ; public final EObject ruleMemberDecl() throws RecognitionException { EObject current = null; EObject this_AttrDecl_0 = null; EObject this_SubMemberDecl_1 = null; EObject this_InvariantDecl_2 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:537:28: ( (this_AttrDecl_0= ruleAttrDecl | this_SubMemberDecl_1= ruleSubMemberDecl | this_InvariantDecl_2= ruleInvariantDecl ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:538:1: (this_AttrDecl_0= ruleAttrDecl | this_SubMemberDecl_1= ruleSubMemberDecl | this_InvariantDecl_2= ruleInvariantDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:538:1: (this_AttrDecl_0= ruleAttrDecl | this_SubMemberDecl_1= ruleSubMemberDecl | this_InvariantDecl_2= ruleInvariantDecl ) int alt15=3; switch ( input.LA(1) ) { case 28: case 30: case 31: case 32: { alt15=1; } break; case RULE_ID: case 33: case 35: case 36: case 37: case 38: { alt15=2; } break; case 48: { alt15=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 15, 0, input); throw nvae; } switch (alt15) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:539:5: this_AttrDecl_0= ruleAttrDecl { newCompositeNode(grammarAccess.getMemberDeclAccess().getAttrDeclParserRuleCall_0()); pushFollow(FOLLOW_ruleAttrDecl_in_ruleMemberDecl1163); this_AttrDecl_0=ruleAttrDecl(); state._fsp--; current = this_AttrDecl_0; afterParserOrEnumRuleCall(); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:549:5: this_SubMemberDecl_1= ruleSubMemberDecl { newCompositeNode(grammarAccess.getMemberDeclAccess().getSubMemberDeclParserRuleCall_1()); pushFollow(FOLLOW_ruleSubMemberDecl_in_ruleMemberDecl1190); this_SubMemberDecl_1=ruleSubMemberDecl(); state._fsp--; current = this_SubMemberDecl_1; afterParserOrEnumRuleCall(); } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:559:5: this_InvariantDecl_2= ruleInvariantDecl { newCompositeNode(grammarAccess.getMemberDeclAccess().getInvariantDeclParserRuleCall_2()); pushFollow(FOLLOW_ruleInvariantDecl_in_ruleMemberDecl1217); this_InvariantDecl_2=ruleInvariantDecl(); state._fsp--; current = this_InvariantDecl_2; afterParserOrEnumRuleCall(); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleMemberDecl" // $ANTLR start "entryRuleAttrDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:575:1: entryRuleAttrDecl returns [EObject current=null] : iv_ruleAttrDecl= ruleAttrDecl EOF ; public final EObject entryRuleAttrDecl() throws RecognitionException { EObject current = null; EObject iv_ruleAttrDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:576:2: (iv_ruleAttrDecl= ruleAttrDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:577:2: iv_ruleAttrDecl= ruleAttrDecl EOF { newCompositeNode(grammarAccess.getAttrDeclRule()); pushFollow(FOLLOW_ruleAttrDecl_in_entryRuleAttrDecl1252); iv_ruleAttrDecl=ruleAttrDecl(); state._fsp--; current =iv_ruleAttrDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleAttrDecl1262); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleAttrDecl" // $ANTLR start "ruleAttrDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:584:1: ruleAttrDecl returns [EObject current=null] : ( ( (lv_modifier_0_0= ruleModifier ) ) ( (lv_attributeName_1_0= RULE_ID ) ) ( (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) | (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) ) ) ; public final EObject ruleAttrDecl() throws RecognitionException { EObject current = null; Token lv_attributeName_1_0=null; Token otherlv_2=null; Token otherlv_4=null; Token otherlv_6=null; EObject lv_modifier_0_0 = null; EObject lv_type_3_0 = null; EObject lv_literal_5_0 = null; EObject lv_literal_7_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:587:28: ( ( ( (lv_modifier_0_0= ruleModifier ) ) ( (lv_attributeName_1_0= RULE_ID ) ) ( (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) | (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:588:1: ( ( (lv_modifier_0_0= ruleModifier ) ) ( (lv_attributeName_1_0= RULE_ID ) ) ( (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) | (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:588:1: ( ( (lv_modifier_0_0= ruleModifier ) ) ( (lv_attributeName_1_0= RULE_ID ) ) ( (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) | (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:588:2: ( (lv_modifier_0_0= ruleModifier ) ) ( (lv_attributeName_1_0= RULE_ID ) ) ( (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) | (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:588:2: ( (lv_modifier_0_0= ruleModifier ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:589:1: (lv_modifier_0_0= ruleModifier ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:589:1: (lv_modifier_0_0= ruleModifier ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:590:3: lv_modifier_0_0= ruleModifier { newCompositeNode(grammarAccess.getAttrDeclAccess().getModifierModifierParserRuleCall_0_0()); pushFollow(FOLLOW_ruleModifier_in_ruleAttrDecl1308); lv_modifier_0_0=ruleModifier(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getAttrDeclRule()); } set( current, "modifier", lv_modifier_0_0, "Modifier"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:606:2: ( (lv_attributeName_1_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:607:1: (lv_attributeName_1_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:607:1: (lv_attributeName_1_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:608:3: lv_attributeName_1_0= RULE_ID { lv_attributeName_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAttrDecl1325); newLeafNode(lv_attributeName_1_0, grammarAccess.getAttrDeclAccess().getAttributeNameIDTerminalRuleCall_1_0()); if (current==null) { current = createModelElement(grammarAccess.getAttrDeclRule()); } setWithLastConsumed( current, "attributeName", lv_attributeName_1_0, "ID"); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:624:2: ( (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) | (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) ) int alt17=2; int LA17_0 = input.LA(1); if ( (LA17_0==26) ) { alt17=1; } else if ( (LA17_0==27) ) { alt17=2; } else { NoViableAltException nvae = new NoViableAltException("", 17, 0, input); throw nvae; } switch (alt17) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:624:3: (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:624:3: (otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:624:5: otherlv_2= ':' ( (lv_type_3_0= ruleType ) ) (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? { otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleAttrDecl1344); newLeafNode(otherlv_2, grammarAccess.getAttrDeclAccess().getColonKeyword_2_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:628:1: ( (lv_type_3_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:629:1: (lv_type_3_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:629:1: (lv_type_3_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:630:3: lv_type_3_0= ruleType { newCompositeNode(grammarAccess.getAttrDeclAccess().getTypeTypeParserRuleCall_2_0_1_0()); pushFollow(FOLLOW_ruleType_in_ruleAttrDecl1365); lv_type_3_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getAttrDeclRule()); } set( current, "type", lv_type_3_0, "Type"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:646:2: (otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) )? int alt16=2; int LA16_0 = input.LA(1); if ( (LA16_0==27) ) { alt16=1; } switch (alt16) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:646:4: otherlv_4= '=' ( (lv_literal_5_0= ruleLiteral ) ) { otherlv_4=(Token)match(input,27,FOLLOW_27_in_ruleAttrDecl1378); newLeafNode(otherlv_4, grammarAccess.getAttrDeclAccess().getEqualsSignKeyword_2_0_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:650:1: ( (lv_literal_5_0= ruleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:651:1: (lv_literal_5_0= ruleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:651:1: (lv_literal_5_0= ruleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:652:3: lv_literal_5_0= ruleLiteral { newCompositeNode(grammarAccess.getAttrDeclAccess().getLiteralLiteralParserRuleCall_2_0_2_1_0()); pushFollow(FOLLOW_ruleLiteral_in_ruleAttrDecl1399); lv_literal_5_0=ruleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getAttrDeclRule()); } set( current, "literal", lv_literal_5_0, "Literal"); afterParserOrEnumRuleCall(); } } } break; } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:669:6: (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:669:6: (otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:669:8: otherlv_6= '=' ( (lv_literal_7_0= ruleLiteral ) ) { otherlv_6=(Token)match(input,27,FOLLOW_27_in_ruleAttrDecl1421); newLeafNode(otherlv_6, grammarAccess.getAttrDeclAccess().getEqualsSignKeyword_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:673:1: ( (lv_literal_7_0= ruleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:674:1: (lv_literal_7_0= ruleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:674:1: (lv_literal_7_0= ruleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:675:3: lv_literal_7_0= ruleLiteral { newCompositeNode(grammarAccess.getAttrDeclAccess().getLiteralLiteralParserRuleCall_2_1_1_0()); pushFollow(FOLLOW_ruleLiteral_in_ruleAttrDecl1442); lv_literal_7_0=ruleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getAttrDeclRule()); } set( current, "literal", lv_literal_7_0, "Literal"); afterParserOrEnumRuleCall(); } } } } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleAttrDecl" // $ANTLR start "entryRuleModifier" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:699:1: entryRuleModifier returns [EObject current=null] : iv_ruleModifier= ruleModifier EOF ; public final EObject entryRuleModifier() throws RecognitionException { EObject current = null; EObject iv_ruleModifier = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:700:2: (iv_ruleModifier= ruleModifier EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:701:2: iv_ruleModifier= ruleModifier EOF { newCompositeNode(grammarAccess.getModifierRule()); pushFollow(FOLLOW_ruleModifier_in_entryRuleModifier1480); iv_ruleModifier=ruleModifier(); state._fsp--; current =iv_ruleModifier; match(input,EOF,FOLLOW_EOF_in_entryRuleModifier1490); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleModifier" // $ANTLR start "ruleModifier" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:708:1: ruleModifier returns [EObject current=null] : ( (otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? ) | (otherlv_6= 'val' () ) | (otherlv_8= 'var' () ) | (otherlv_10= 'override' () ) ) ; public final EObject ruleModifier() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_schema_2_0=null; Token lv_class_3_0=null; Token lv_product_4_0=null; Token lv_instance_5_0=null; Token otherlv_6=null; Token otherlv_8=null; Token otherlv_10=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:711:28: ( ( (otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? ) | (otherlv_6= 'val' () ) | (otherlv_8= 'var' () ) | (otherlv_10= 'override' () ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:712:1: ( (otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? ) | (otherlv_6= 'val' () ) | (otherlv_8= 'var' () ) | (otherlv_10= 'override' () ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:712:1: ( (otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? ) | (otherlv_6= 'val' () ) | (otherlv_8= 'var' () ) | (otherlv_10= 'override' () ) ) int alt19=4; switch ( input.LA(1) ) { case 28: { alt19=1; } break; case 30: { alt19=2; } break; case 31: { alt19=3; } break; case 32: { alt19=4; } break; default: NoViableAltException nvae = new NoViableAltException("", 19, 0, input); throw nvae; } switch (alt19) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:712:2: (otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:712:2: (otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:712:4: otherlv_0= 'const' () ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? { otherlv_0=(Token)match(input,28,FOLLOW_28_in_ruleModifier1528); newLeafNode(otherlv_0, grammarAccess.getModifierAccess().getConstKeyword_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:716:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:717:5: { current = forceCreateModelElement( grammarAccess.getModifierAccess().getConstAction_0_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:722:2: ( ( (lv_schema_2_0= 'schema' ) ) | ( (lv_class_3_0= 'class' ) ) | ( (lv_product_4_0= 'product' ) ) | ( (lv_instance_5_0= 'instance' ) ) )? int alt18=5; switch ( input.LA(1) ) { case 17: { alt18=1; } break; case 18: { alt18=2; } break; case 19: { alt18=3; } break; case 29: { alt18=4; } break; } switch (alt18) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:722:3: ( (lv_schema_2_0= 'schema' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:722:3: ( (lv_schema_2_0= 'schema' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:723:1: (lv_schema_2_0= 'schema' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:723:1: (lv_schema_2_0= 'schema' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:724:3: lv_schema_2_0= 'schema' { lv_schema_2_0=(Token)match(input,17,FOLLOW_17_in_ruleModifier1556); newLeafNode(lv_schema_2_0, grammarAccess.getModifierAccess().getSchemaSchemaKeyword_0_2_0_0()); if (current==null) { current = createModelElement(grammarAccess.getModifierRule()); } setWithLastConsumed(current, "schema", true, "schema"); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:738:6: ( (lv_class_3_0= 'class' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:738:6: ( (lv_class_3_0= 'class' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:739:1: (lv_class_3_0= 'class' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:739:1: (lv_class_3_0= 'class' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:740:3: lv_class_3_0= 'class' { lv_class_3_0=(Token)match(input,18,FOLLOW_18_in_ruleModifier1593); newLeafNode(lv_class_3_0, grammarAccess.getModifierAccess().getClassClassKeyword_0_2_1_0()); if (current==null) { current = createModelElement(grammarAccess.getModifierRule()); } setWithLastConsumed(current, "class", true, "class"); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:754:6: ( (lv_product_4_0= 'product' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:754:6: ( (lv_product_4_0= 'product' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:755:1: (lv_product_4_0= 'product' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:755:1: (lv_product_4_0= 'product' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:756:3: lv_product_4_0= 'product' { lv_product_4_0=(Token)match(input,19,FOLLOW_19_in_ruleModifier1630); newLeafNode(lv_product_4_0, grammarAccess.getModifierAccess().getProductProductKeyword_0_2_2_0()); if (current==null) { current = createModelElement(grammarAccess.getModifierRule()); } setWithLastConsumed(current, "product", true, "product"); } } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:770:6: ( (lv_instance_5_0= 'instance' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:770:6: ( (lv_instance_5_0= 'instance' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:771:1: (lv_instance_5_0= 'instance' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:771:1: (lv_instance_5_0= 'instance' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:772:3: lv_instance_5_0= 'instance' { lv_instance_5_0=(Token)match(input,29,FOLLOW_29_in_ruleModifier1667); newLeafNode(lv_instance_5_0, grammarAccess.getModifierAccess().getInstanceInstanceKeyword_0_2_3_0()); if (current==null) { current = createModelElement(grammarAccess.getModifierRule()); } setWithLastConsumed(current, "instance", true, "instance"); } } } break; } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:786:6: (otherlv_6= 'val' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:786:6: (otherlv_6= 'val' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:786:8: otherlv_6= 'val' () { otherlv_6=(Token)match(input,30,FOLLOW_30_in_ruleModifier1702); newLeafNode(otherlv_6, grammarAccess.getModifierAccess().getValKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:790:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:791:5: { current = forceCreateModelElement( grammarAccess.getModifierAccess().getValAction_1_1(), current); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:797:6: (otherlv_8= 'var' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:797:6: (otherlv_8= 'var' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:797:8: otherlv_8= 'var' () { otherlv_8=(Token)match(input,31,FOLLOW_31_in_ruleModifier1731); newLeafNode(otherlv_8, grammarAccess.getModifierAccess().getVarKeyword_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:801:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:802:5: { current = forceCreateModelElement( grammarAccess.getModifierAccess().getVarAction_2_1(), current); } } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:808:6: (otherlv_10= 'override' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:808:6: (otherlv_10= 'override' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:808:8: otherlv_10= 'override' () { otherlv_10=(Token)match(input,32,FOLLOW_32_in_ruleModifier1760); newLeafNode(otherlv_10, grammarAccess.getModifierAccess().getOverrideKeyword_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:812:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:813:5: { current = forceCreateModelElement( grammarAccess.getModifierAccess().getOverrideAction_3_1(), current); } } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleModifier" // $ANTLR start "entryRuleSubMemberDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:826:1: entryRuleSubMemberDecl returns [EObject current=null] : iv_ruleSubMemberDecl= ruleSubMemberDecl EOF ; public final EObject entryRuleSubMemberDecl() throws RecognitionException { EObject current = null; EObject iv_ruleSubMemberDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:827:2: (iv_ruleSubMemberDecl= ruleSubMemberDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:828:2: iv_ruleSubMemberDecl= ruleSubMemberDecl EOF { newCompositeNode(grammarAccess.getSubMemberDeclRule()); pushFollow(FOLLOW_ruleSubMemberDecl_in_entryRuleSubMemberDecl1806); iv_ruleSubMemberDecl=ruleSubMemberDecl(); state._fsp--; current =iv_ruleSubMemberDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleSubMemberDecl1816); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSubMemberDecl" // $ANTLR start "ruleSubMemberDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:835:1: ruleSubMemberDecl returns [EObject current=null] : ( ( (lv_modifier_0_0= ruleMModifier ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleFeatureType ) ) ) ; public final EObject ruleSubMemberDecl() throws RecognitionException { EObject current = null; Token lv_name_1_0=null; Token otherlv_2=null; EObject lv_modifier_0_0 = null; EObject lv_type_3_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:838:28: ( ( ( (lv_modifier_0_0= ruleMModifier ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleFeatureType ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:839:1: ( ( (lv_modifier_0_0= ruleMModifier ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleFeatureType ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:839:1: ( ( (lv_modifier_0_0= ruleMModifier ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleFeatureType ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:839:2: ( (lv_modifier_0_0= ruleMModifier ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( (lv_type_3_0= ruleFeatureType ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:839:2: ( (lv_modifier_0_0= ruleMModifier ) )? int alt20=2; int LA20_0 = input.LA(1); if ( (LA20_0==33||(LA20_0>=35 && LA20_0<=38)) ) { alt20=1; } switch (alt20) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:840:1: (lv_modifier_0_0= ruleMModifier ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:840:1: (lv_modifier_0_0= ruleMModifier ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:841:3: lv_modifier_0_0= ruleMModifier { newCompositeNode(grammarAccess.getSubMemberDeclAccess().getModifierMModifierParserRuleCall_0_0()); pushFollow(FOLLOW_ruleMModifier_in_ruleSubMemberDecl1862); lv_modifier_0_0=ruleMModifier(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSubMemberDeclRule()); } set( current, "modifier", lv_modifier_0_0, "MModifier"); afterParserOrEnumRuleCall(); } } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:857:3: ( (lv_name_1_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:858:1: (lv_name_1_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:858:1: (lv_name_1_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:859:3: lv_name_1_0= RULE_ID { lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubMemberDecl1880); newLeafNode(lv_name_1_0, grammarAccess.getSubMemberDeclAccess().getNameIDTerminalRuleCall_1_0()); if (current==null) { current = createModelElement(grammarAccess.getSubMemberDeclRule()); } setWithLastConsumed( current, "name", lv_name_1_0, "ID"); } } otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleSubMemberDecl1897); newLeafNode(otherlv_2, grammarAccess.getSubMemberDeclAccess().getColonKeyword_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:879:1: ( (lv_type_3_0= ruleFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:880:1: (lv_type_3_0= ruleFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:880:1: (lv_type_3_0= ruleFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:881:3: lv_type_3_0= ruleFeatureType { newCompositeNode(grammarAccess.getSubMemberDeclAccess().getTypeFeatureTypeParserRuleCall_3_0()); pushFollow(FOLLOW_ruleFeatureType_in_ruleSubMemberDecl1918); lv_type_3_0=ruleFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSubMemberDeclRule()); } set( current, "type", lv_type_3_0, "FeatureType"); afterParserOrEnumRuleCall(); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSubMemberDecl" // $ANTLR start "entryRuleMModifier" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:905:1: entryRuleMModifier returns [EObject current=null] : iv_ruleMModifier= ruleMModifier EOF ; public final EObject entryRuleMModifier() throws RecognitionException { EObject current = null; EObject iv_ruleMModifier = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:906:2: (iv_ruleMModifier= ruleMModifier EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:907:2: iv_ruleMModifier= ruleMModifier EOF { newCompositeNode(grammarAccess.getMModifierRule()); pushFollow(FOLLOW_ruleMModifier_in_entryRuleMModifier1954); iv_ruleMModifier=ruleMModifier(); state._fsp--; current =iv_ruleMModifier; match(input,EOF,FOLLOW_EOF_in_entryRuleMModifier1964); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleMModifier" // $ANTLR start "ruleMModifier" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:914:1: ruleMModifier returns [EObject current=null] : ( (otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? ) | (otherlv_6= 'Val' () ) | (otherlv_8= 'Var' () ) | (otherlv_10= 'Override' () ) | (otherlv_12= 'Data' () ) ) ; public final EObject ruleMModifier() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_schema_2_0=null; Token lv_class_3_0=null; Token lv_product_4_0=null; Token lv_instance_5_0=null; Token otherlv_6=null; Token otherlv_8=null; Token otherlv_10=null; Token otherlv_12=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:917:28: ( ( (otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? ) | (otherlv_6= 'Val' () ) | (otherlv_8= 'Var' () ) | (otherlv_10= 'Override' () ) | (otherlv_12= 'Data' () ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:918:1: ( (otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? ) | (otherlv_6= 'Val' () ) | (otherlv_8= 'Var' () ) | (otherlv_10= 'Override' () ) | (otherlv_12= 'Data' () ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:918:1: ( (otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? ) | (otherlv_6= 'Val' () ) | (otherlv_8= 'Var' () ) | (otherlv_10= 'Override' () ) | (otherlv_12= 'Data' () ) ) int alt22=5; switch ( input.LA(1) ) { case 33: { alt22=1; } break; case 35: { alt22=2; } break; case 36: { alt22=3; } break; case 37: { alt22=4; } break; case 38: { alt22=5; } break; default: NoViableAltException nvae = new NoViableAltException("", 22, 0, input); throw nvae; } switch (alt22) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:918:2: (otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:918:2: (otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:918:4: otherlv_0= 'Const' () ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? { otherlv_0=(Token)match(input,33,FOLLOW_33_in_ruleMModifier2002); newLeafNode(otherlv_0, grammarAccess.getMModifierAccess().getConstKeyword_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:922:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:923:5: { current = forceCreateModelElement( grammarAccess.getMModifierAccess().getConstAction_0_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:928:2: ( ( (lv_schema_2_0= 'Schema' ) ) | ( (lv_class_3_0= 'Class' ) ) | ( (lv_product_4_0= 'Product' ) ) | ( (lv_instance_5_0= 'Instance' ) ) )? int alt21=5; switch ( input.LA(1) ) { case 10: { alt21=1; } break; case 11: { alt21=2; } break; case 12: { alt21=3; } break; case 34: { alt21=4; } break; } switch (alt21) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:928:3: ( (lv_schema_2_0= 'Schema' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:928:3: ( (lv_schema_2_0= 'Schema' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:929:1: (lv_schema_2_0= 'Schema' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:929:1: (lv_schema_2_0= 'Schema' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:930:3: lv_schema_2_0= 'Schema' { lv_schema_2_0=(Token)match(input,10,FOLLOW_10_in_ruleMModifier2030); newLeafNode(lv_schema_2_0, grammarAccess.getMModifierAccess().getSchemaSchemaKeyword_0_2_0_0()); if (current==null) { current = createModelElement(grammarAccess.getMModifierRule()); } setWithLastConsumed(current, "schema", true, "Schema"); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:944:6: ( (lv_class_3_0= 'Class' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:944:6: ( (lv_class_3_0= 'Class' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:945:1: (lv_class_3_0= 'Class' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:945:1: (lv_class_3_0= 'Class' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:946:3: lv_class_3_0= 'Class' { lv_class_3_0=(Token)match(input,11,FOLLOW_11_in_ruleMModifier2067); newLeafNode(lv_class_3_0, grammarAccess.getMModifierAccess().getClassClassKeyword_0_2_1_0()); if (current==null) { current = createModelElement(grammarAccess.getMModifierRule()); } setWithLastConsumed(current, "class", true, "Class"); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:960:6: ( (lv_product_4_0= 'Product' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:960:6: ( (lv_product_4_0= 'Product' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:961:1: (lv_product_4_0= 'Product' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:961:1: (lv_product_4_0= 'Product' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:962:3: lv_product_4_0= 'Product' { lv_product_4_0=(Token)match(input,12,FOLLOW_12_in_ruleMModifier2104); newLeafNode(lv_product_4_0, grammarAccess.getMModifierAccess().getProductProductKeyword_0_2_2_0()); if (current==null) { current = createModelElement(grammarAccess.getMModifierRule()); } setWithLastConsumed(current, "product", true, "Product"); } } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:976:6: ( (lv_instance_5_0= 'Instance' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:976:6: ( (lv_instance_5_0= 'Instance' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:977:1: (lv_instance_5_0= 'Instance' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:977:1: (lv_instance_5_0= 'Instance' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:978:3: lv_instance_5_0= 'Instance' { lv_instance_5_0=(Token)match(input,34,FOLLOW_34_in_ruleMModifier2141); newLeafNode(lv_instance_5_0, grammarAccess.getMModifierAccess().getInstanceInstanceKeyword_0_2_3_0()); if (current==null) { current = createModelElement(grammarAccess.getMModifierRule()); } setWithLastConsumed(current, "instance", true, "Instance"); } } } break; } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:992:6: (otherlv_6= 'Val' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:992:6: (otherlv_6= 'Val' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:992:8: otherlv_6= 'Val' () { otherlv_6=(Token)match(input,35,FOLLOW_35_in_ruleMModifier2176); newLeafNode(otherlv_6, grammarAccess.getMModifierAccess().getValKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:996:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:997:5: { current = forceCreateModelElement( grammarAccess.getMModifierAccess().getValAction_1_1(), current); } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1003:6: (otherlv_8= 'Var' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1003:6: (otherlv_8= 'Var' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1003:8: otherlv_8= 'Var' () { otherlv_8=(Token)match(input,36,FOLLOW_36_in_ruleMModifier2205); newLeafNode(otherlv_8, grammarAccess.getMModifierAccess().getVarKeyword_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1007:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1008:5: { current = forceCreateModelElement( grammarAccess.getMModifierAccess().getVarAction_2_1(), current); } } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1014:6: (otherlv_10= 'Override' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1014:6: (otherlv_10= 'Override' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1014:8: otherlv_10= 'Override' () { otherlv_10=(Token)match(input,37,FOLLOW_37_in_ruleMModifier2234); newLeafNode(otherlv_10, grammarAccess.getMModifierAccess().getOverrideKeyword_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1018:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1019:5: { current = forceCreateModelElement( grammarAccess.getMModifierAccess().getOverrideAction_3_1(), current); } } } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1025:6: (otherlv_12= 'Data' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1025:6: (otherlv_12= 'Data' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1025:8: otherlv_12= 'Data' () { otherlv_12=(Token)match(input,38,FOLLOW_38_in_ruleMModifier2263); newLeafNode(otherlv_12, grammarAccess.getMModifierAccess().getDataKeyword_4_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1029:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1030:5: { current = forceCreateModelElement( grammarAccess.getMModifierAccess().getDataAction_4_1(), current); } } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleMModifier" // $ANTLR start "entryRuleAssignment" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1043:1: entryRuleAssignment returns [EObject current=null] : iv_ruleAssignment= ruleAssignment EOF ; public final EObject entryRuleAssignment() throws RecognitionException { EObject current = null; EObject iv_ruleAssignment = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1044:2: (iv_ruleAssignment= ruleAssignment EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1045:2: iv_ruleAssignment= ruleAssignment EOF { newCompositeNode(grammarAccess.getAssignmentRule()); pushFollow(FOLLOW_ruleAssignment_in_entryRuleAssignment2309); iv_ruleAssignment=ruleAssignment(); state._fsp--; current =iv_ruleAssignment; match(input,EOF,FOLLOW_EOF_in_entryRuleAssignment2319); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleAssignment" // $ANTLR start "ruleAssignment" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1052:1: ruleAssignment returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_exp_2_0= ruleExp ) ) ) ; public final EObject ruleAssignment() throws RecognitionException { EObject current = null; Token lv_name_0_0=null; Token otherlv_1=null; EObject lv_exp_2_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1055:28: ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_exp_2_0= ruleExp ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1056:1: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_exp_2_0= ruleExp ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1056:1: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_exp_2_0= ruleExp ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1056:2: ( (lv_name_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_exp_2_0= ruleExp ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1056:2: ( (lv_name_0_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1057:1: (lv_name_0_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1057:1: (lv_name_0_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1058:3: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAssignment2361); newLeafNode(lv_name_0_0, grammarAccess.getAssignmentAccess().getNameIDTerminalRuleCall_0_0()); if (current==null) { current = createModelElement(grammarAccess.getAssignmentRule()); } setWithLastConsumed( current, "name", lv_name_0_0, "ID"); } } otherlv_1=(Token)match(input,27,FOLLOW_27_in_ruleAssignment2378); newLeafNode(otherlv_1, grammarAccess.getAssignmentAccess().getEqualsSignKeyword_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1078:1: ( (lv_exp_2_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1079:1: (lv_exp_2_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1079:1: (lv_exp_2_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1080:3: lv_exp_2_0= ruleExp { newCompositeNode(grammarAccess.getAssignmentAccess().getExpExpParserRuleCall_2_0()); pushFollow(FOLLOW_ruleExp_in_ruleAssignment2399); lv_exp_2_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getAssignmentRule()); } set( current, "exp", lv_exp_2_0, "Exp"); afterParserOrEnumRuleCall(); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleAssignment" // $ANTLR start "entryRuleFeatureType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1106:1: entryRuleFeatureType returns [EObject current=null] : iv_ruleFeatureType= ruleFeatureType EOF ; public final EObject entryRuleFeatureType() throws RecognitionException { EObject current = null; EObject iv_ruleFeatureType = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1107:2: (iv_ruleFeatureType= ruleFeatureType EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1108:2: iv_ruleFeatureType= ruleFeatureType EOF { newCompositeNode(grammarAccess.getFeatureTypeRule()); pushFollow(FOLLOW_ruleFeatureType_in_entryRuleFeatureType2437); iv_ruleFeatureType=ruleFeatureType(); state._fsp--; current =iv_ruleFeatureType; match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureType2447); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleFeatureType" // $ANTLR start "ruleFeatureType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1115:1: ruleFeatureType returns [EObject current=null] : (this_BaseFeatureType_0= ruleBaseFeatureType | (otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? ) | (otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? ) | (otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? ) | (otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? ) | (otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? ) ) ; public final EObject ruleFeatureType() throws RecognitionException { EObject current = null; Token otherlv_1=null; Token otherlv_3=null; Token otherlv_5=null; Token otherlv_6=null; Token lv_none_7_0=null; Token otherlv_8=null; Token otherlv_10=null; Token otherlv_12=null; Token otherlv_13=null; Token otherlv_14=null; Token otherlv_16=null; Token otherlv_17=null; Token otherlv_19=null; Token otherlv_21=null; Token otherlv_23=null; Token otherlv_24=null; Token lv_choice_25_0=null; Token otherlv_26=null; Token otherlv_28=null; Token otherlv_29=null; Token otherlv_31=null; Token otherlv_33=null; Token otherlv_34=null; Token otherlv_35=null; Token otherlv_37=null; Token otherlv_39=null; Token otherlv_40=null; Token otherlv_42=null; Token otherlv_44=null; Token otherlv_45=null; Token otherlv_46=null; Token otherlv_48=null; Token otherlv_50=null; EObject this_BaseFeatureType_0 = null; EObject lv_base_4_0 = null; EObject lv_base_11_0 = null; EObject lv_members_15_0 = null; EObject lv_bases_20_0 = null; EObject lv_bases_22_0 = null; EObject lv_members_27_0 = null; EObject lv_base_32_0 = null; EObject lv_elements_36_0 = null; EObject lv_elements_38_0 = null; EObject lv_base_43_0 = null; EObject lv_elements_47_0 = null; EObject lv_elements_49_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1118:28: ( (this_BaseFeatureType_0= ruleBaseFeatureType | (otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? ) | (otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? ) | (otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? ) | (otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? ) | (otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1119:1: (this_BaseFeatureType_0= ruleBaseFeatureType | (otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? ) | (otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? ) | (otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? ) | (otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? ) | (otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1119:1: (this_BaseFeatureType_0= ruleBaseFeatureType | (otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? ) | (otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? ) | (otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? ) | (otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? ) | (otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? ) ) int alt35=6; switch ( input.LA(1) ) { case RULE_ID: { alt35=1; } break; case 39: { alt35=2; } break; case 43: { alt35=3; } break; case 44: { alt35=4; } break; case 46: { alt35=5; } break; case 47: { alt35=6; } break; default: NoViableAltException nvae = new NoViableAltException("", 35, 0, input); throw nvae; } switch (alt35) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1120:5: this_BaseFeatureType_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBaseFeatureTypeParserRuleCall_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2494); this_BaseFeatureType_0=ruleBaseFeatureType(); state._fsp--; current = this_BaseFeatureType_0; afterParserOrEnumRuleCall(); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1129:6: (otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1129:6: (otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1129:8: otherlv_1= 'Option' () otherlv_3= '[' ( (lv_base_4_0= ruleBaseFeatureType ) ) otherlv_5= ']' (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? { otherlv_1=(Token)match(input,39,FOLLOW_39_in_ruleFeatureType2512); newLeafNode(otherlv_1, grammarAccess.getFeatureTypeAccess().getOptionKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1133:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1134:5: { current = forceCreateModelElement( grammarAccess.getFeatureTypeAccess().getOptionFeatureTypeAction_1_1(), current); } otherlv_3=(Token)match(input,40,FOLLOW_40_in_ruleFeatureType2533); newLeafNode(otherlv_3, grammarAccess.getFeatureTypeAccess().getLeftSquareBracketKeyword_1_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1143:1: ( (lv_base_4_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1144:1: (lv_base_4_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1144:1: (lv_base_4_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1145:3: lv_base_4_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBaseBaseFeatureTypeParserRuleCall_1_3_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2554); lv_base_4_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } set( current, "base", lv_base_4_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } otherlv_5=(Token)match(input,41,FOLLOW_41_in_ruleFeatureType2566); newLeafNode(otherlv_5, grammarAccess.getFeatureTypeAccess().getRightSquareBracketKeyword_1_4()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1165:1: (otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) )? int alt23=2; int LA23_0 = input.LA(1); if ( (LA23_0==27) ) { alt23=1; } switch (alt23) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1165:3: otherlv_6= '=' ( (lv_none_7_0= 'None' ) ) { otherlv_6=(Token)match(input,27,FOLLOW_27_in_ruleFeatureType2579); newLeafNode(otherlv_6, grammarAccess.getFeatureTypeAccess().getEqualsSignKeyword_1_5_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1169:1: ( (lv_none_7_0= 'None' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1170:1: (lv_none_7_0= 'None' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1170:1: (lv_none_7_0= 'None' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1171:3: lv_none_7_0= 'None' { lv_none_7_0=(Token)match(input,42,FOLLOW_42_in_ruleFeatureType2597); newLeafNode(lv_none_7_0, grammarAccess.getFeatureTypeAccess().getNoneNoneKeyword_1_5_1_0()); if (current==null) { current = createModelElement(grammarAccess.getFeatureTypeRule()); } setWithLastConsumed(current, "none", true, "None"); } } } break; } } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1185:6: (otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1185:6: (otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1185:8: otherlv_8= 'Some' () otherlv_10= '[' ( (lv_base_11_0= ruleBaseFeatureType ) ) otherlv_12= ']' (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? { otherlv_8=(Token)match(input,43,FOLLOW_43_in_ruleFeatureType2632); newLeafNode(otherlv_8, grammarAccess.getFeatureTypeAccess().getSomeKeyword_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1189:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1190:5: { current = forceCreateModelElement( grammarAccess.getFeatureTypeAccess().getSomeFeatureTypeAction_2_1(), current); } otherlv_10=(Token)match(input,40,FOLLOW_40_in_ruleFeatureType2653); newLeafNode(otherlv_10, grammarAccess.getFeatureTypeAccess().getLeftSquareBracketKeyword_2_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1199:1: ( (lv_base_11_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1200:1: (lv_base_11_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1200:1: (lv_base_11_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1201:3: lv_base_11_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBaseBaseFeatureTypeParserRuleCall_2_3_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2674); lv_base_11_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } set( current, "base", lv_base_11_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } otherlv_12=(Token)match(input,41,FOLLOW_41_in_ruleFeatureType2686); newLeafNode(otherlv_12, grammarAccess.getFeatureTypeAccess().getRightSquareBracketKeyword_2_4()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1221:1: (otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' )? int alt25=2; int LA25_0 = input.LA(1); if ( (LA25_0==27) ) { alt25=1; } switch (alt25) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1221:3: otherlv_13= '=' otherlv_14= '{' ( (lv_members_15_0= ruleMemberDecl ) )* otherlv_16= '}' { otherlv_13=(Token)match(input,27,FOLLOW_27_in_ruleFeatureType2699); newLeafNode(otherlv_13, grammarAccess.getFeatureTypeAccess().getEqualsSignKeyword_2_5_0()); otherlv_14=(Token)match(input,23,FOLLOW_23_in_ruleFeatureType2711); newLeafNode(otherlv_14, grammarAccess.getFeatureTypeAccess().getLeftCurlyBracketKeyword_2_5_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1229:1: ( (lv_members_15_0= ruleMemberDecl ) )* loop24: do { int alt24=2; int LA24_0 = input.LA(1); if ( (LA24_0==RULE_ID||LA24_0==28||(LA24_0>=30 && LA24_0<=33)||(LA24_0>=35 && LA24_0<=38)||LA24_0==48) ) { alt24=1; } switch (alt24) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1230:1: (lv_members_15_0= ruleMemberDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1230:1: (lv_members_15_0= ruleMemberDecl ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1231:3: lv_members_15_0= ruleMemberDecl { newCompositeNode(grammarAccess.getFeatureTypeAccess().getMembersMemberDeclParserRuleCall_2_5_2_0()); pushFollow(FOLLOW_ruleMemberDecl_in_ruleFeatureType2732); lv_members_15_0=ruleMemberDecl(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "members", lv_members_15_0, "MemberDecl"); afterParserOrEnumRuleCall(); } } break; default : break loop24; } } while (true); otherlv_16=(Token)match(input,24,FOLLOW_24_in_ruleFeatureType2745); newLeafNode(otherlv_16, grammarAccess.getFeatureTypeAccess().getRightCurlyBracketKeyword_2_5_3()); } break; } } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1252:6: (otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1252:6: (otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1252:8: otherlv_17= 'Either' () otherlv_19= '[' ( (lv_bases_20_0= ruleBaseFeatureType ) ) (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ otherlv_23= ']' (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? { otherlv_17=(Token)match(input,44,FOLLOW_44_in_ruleFeatureType2767); newLeafNode(otherlv_17, grammarAccess.getFeatureTypeAccess().getEitherKeyword_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1256:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1257:5: { current = forceCreateModelElement( grammarAccess.getFeatureTypeAccess().getEitherFeatureTypeAction_3_1(), current); } otherlv_19=(Token)match(input,40,FOLLOW_40_in_ruleFeatureType2788); newLeafNode(otherlv_19, grammarAccess.getFeatureTypeAccess().getLeftSquareBracketKeyword_3_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1266:1: ( (lv_bases_20_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1267:1: (lv_bases_20_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1267:1: (lv_bases_20_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1268:3: lv_bases_20_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBasesBaseFeatureTypeParserRuleCall_3_3_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2809); lv_bases_20_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "bases", lv_bases_20_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1284:2: (otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) )+ int cnt26=0; loop26: do { int alt26=2; int LA26_0 = input.LA(1); if ( (LA26_0==45) ) { alt26=1; } switch (alt26) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1284:4: otherlv_21= ',' ( (lv_bases_22_0= ruleBaseFeatureType ) ) { otherlv_21=(Token)match(input,45,FOLLOW_45_in_ruleFeatureType2822); newLeafNode(otherlv_21, grammarAccess.getFeatureTypeAccess().getCommaKeyword_3_4_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1288:1: ( (lv_bases_22_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1289:1: (lv_bases_22_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1289:1: (lv_bases_22_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1290:3: lv_bases_22_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBasesBaseFeatureTypeParserRuleCall_3_4_1_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2843); lv_bases_22_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "bases", lv_bases_22_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } } break; default : if ( cnt26 >= 1 ) break loop26; EarlyExitException eee = new EarlyExitException(26, input); throw eee; } cnt26++; } while (true); otherlv_23=(Token)match(input,41,FOLLOW_41_in_ruleFeatureType2857); newLeafNode(otherlv_23, grammarAccess.getFeatureTypeAccess().getRightSquareBracketKeyword_3_5()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1310:1: (otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' )? int alt28=2; int LA28_0 = input.LA(1); if ( (LA28_0==27) ) { alt28=1; } switch (alt28) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1310:3: otherlv_24= '=' ( (lv_choice_25_0= RULE_NAT ) ) otherlv_26= '{' ( (lv_members_27_0= ruleMemberDecl ) )* otherlv_28= '}' { otherlv_24=(Token)match(input,27,FOLLOW_27_in_ruleFeatureType2870); newLeafNode(otherlv_24, grammarAccess.getFeatureTypeAccess().getEqualsSignKeyword_3_6_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1314:1: ( (lv_choice_25_0= RULE_NAT ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1315:1: (lv_choice_25_0= RULE_NAT ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1315:1: (lv_choice_25_0= RULE_NAT ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1316:3: lv_choice_25_0= RULE_NAT { lv_choice_25_0=(Token)match(input,RULE_NAT,FOLLOW_RULE_NAT_in_ruleFeatureType2887); newLeafNode(lv_choice_25_0, grammarAccess.getFeatureTypeAccess().getChoiceNATTerminalRuleCall_3_6_1_0()); if (current==null) { current = createModelElement(grammarAccess.getFeatureTypeRule()); } setWithLastConsumed( current, "choice", lv_choice_25_0, "NAT"); } } otherlv_26=(Token)match(input,23,FOLLOW_23_in_ruleFeatureType2904); newLeafNode(otherlv_26, grammarAccess.getFeatureTypeAccess().getLeftCurlyBracketKeyword_3_6_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1336:1: ( (lv_members_27_0= ruleMemberDecl ) )* loop27: do { int alt27=2; int LA27_0 = input.LA(1); if ( (LA27_0==RULE_ID||LA27_0==28||(LA27_0>=30 && LA27_0<=33)||(LA27_0>=35 && LA27_0<=38)||LA27_0==48) ) { alt27=1; } switch (alt27) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1337:1: (lv_members_27_0= ruleMemberDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1337:1: (lv_members_27_0= ruleMemberDecl ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1338:3: lv_members_27_0= ruleMemberDecl { newCompositeNode(grammarAccess.getFeatureTypeAccess().getMembersMemberDeclParserRuleCall_3_6_3_0()); pushFollow(FOLLOW_ruleMemberDecl_in_ruleFeatureType2925); lv_members_27_0=ruleMemberDecl(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "members", lv_members_27_0, "MemberDecl"); afterParserOrEnumRuleCall(); } } break; default : break loop27; } } while (true); otherlv_28=(Token)match(input,24,FOLLOW_24_in_ruleFeatureType2938); newLeafNode(otherlv_28, grammarAccess.getFeatureTypeAccess().getRightCurlyBracketKeyword_3_6_4()); } break; } } } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1359:6: (otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1359:6: (otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1359:8: otherlv_29= 'Seq' () otherlv_31= '[' ( (lv_base_32_0= ruleBaseFeatureType ) ) otherlv_33= ']' (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? { otherlv_29=(Token)match(input,46,FOLLOW_46_in_ruleFeatureType2960); newLeafNode(otherlv_29, grammarAccess.getFeatureTypeAccess().getSeqKeyword_4_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1363:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1364:5: { current = forceCreateModelElement( grammarAccess.getFeatureTypeAccess().getSeqFeatureTypeAction_4_1(), current); } otherlv_31=(Token)match(input,40,FOLLOW_40_in_ruleFeatureType2981); newLeafNode(otherlv_31, grammarAccess.getFeatureTypeAccess().getLeftSquareBracketKeyword_4_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1373:1: ( (lv_base_32_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1374:1: (lv_base_32_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1374:1: (lv_base_32_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1375:3: lv_base_32_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBaseBaseFeatureTypeParserRuleCall_4_3_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3002); lv_base_32_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } set( current, "base", lv_base_32_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } otherlv_33=(Token)match(input,41,FOLLOW_41_in_ruleFeatureType3014); newLeafNode(otherlv_33, grammarAccess.getFeatureTypeAccess().getRightSquareBracketKeyword_4_4()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1395:1: (otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' )? int alt31=2; int LA31_0 = input.LA(1); if ( (LA31_0==27) ) { alt31=1; } switch (alt31) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1395:3: otherlv_34= '=' otherlv_35= '[' ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? otherlv_39= ']' { otherlv_34=(Token)match(input,27,FOLLOW_27_in_ruleFeatureType3027); newLeafNode(otherlv_34, grammarAccess.getFeatureTypeAccess().getEqualsSignKeyword_4_5_0()); otherlv_35=(Token)match(input,40,FOLLOW_40_in_ruleFeatureType3039); newLeafNode(otherlv_35, grammarAccess.getFeatureTypeAccess().getLeftSquareBracketKeyword_4_5_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1403:1: ( ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* )? int alt30=2; int LA30_0 = input.LA(1); if ( (LA30_0==RULE_ID) ) { alt30=1; } switch (alt30) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1403:2: ( (lv_elements_36_0= ruleBaseFeatureType ) ) (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1403:2: ( (lv_elements_36_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1404:1: (lv_elements_36_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1404:1: (lv_elements_36_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1405:3: lv_elements_36_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getElementsBaseFeatureTypeParserRuleCall_4_5_2_0_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3061); lv_elements_36_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "elements", lv_elements_36_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1421:2: (otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) )* loop29: do { int alt29=2; int LA29_0 = input.LA(1); if ( (LA29_0==45) ) { alt29=1; } switch (alt29) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1421:4: otherlv_37= ',' ( (lv_elements_38_0= ruleBaseFeatureType ) ) { otherlv_37=(Token)match(input,45,FOLLOW_45_in_ruleFeatureType3074); newLeafNode(otherlv_37, grammarAccess.getFeatureTypeAccess().getCommaKeyword_4_5_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1425:1: ( (lv_elements_38_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1426:1: (lv_elements_38_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1426:1: (lv_elements_38_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1427:3: lv_elements_38_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getElementsBaseFeatureTypeParserRuleCall_4_5_2_1_1_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3095); lv_elements_38_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "elements", lv_elements_38_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } } break; default : break loop29; } } while (true); } break; } otherlv_39=(Token)match(input,41,FOLLOW_41_in_ruleFeatureType3111); newLeafNode(otherlv_39, grammarAccess.getFeatureTypeAccess().getRightSquareBracketKeyword_4_5_3()); } break; } } } break; case 6 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1448:6: (otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1448:6: (otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1448:8: otherlv_40= 'Set' () otherlv_42= '[' ( (lv_base_43_0= ruleBaseFeatureType ) ) otherlv_44= ']' (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? { otherlv_40=(Token)match(input,47,FOLLOW_47_in_ruleFeatureType3133); newLeafNode(otherlv_40, grammarAccess.getFeatureTypeAccess().getSetKeyword_5_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1452:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1453:5: { current = forceCreateModelElement( grammarAccess.getFeatureTypeAccess().getSetFeatureTypeAction_5_1(), current); } otherlv_42=(Token)match(input,40,FOLLOW_40_in_ruleFeatureType3154); newLeafNode(otherlv_42, grammarAccess.getFeatureTypeAccess().getLeftSquareBracketKeyword_5_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1462:1: ( (lv_base_43_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1463:1: (lv_base_43_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1463:1: (lv_base_43_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1464:3: lv_base_43_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getBaseBaseFeatureTypeParserRuleCall_5_3_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3175); lv_base_43_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } set( current, "base", lv_base_43_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } otherlv_44=(Token)match(input,41,FOLLOW_41_in_ruleFeatureType3187); newLeafNode(otherlv_44, grammarAccess.getFeatureTypeAccess().getRightSquareBracketKeyword_5_4()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1484:1: (otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' )? int alt34=2; int LA34_0 = input.LA(1); if ( (LA34_0==27) ) { alt34=1; } switch (alt34) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1484:3: otherlv_45= '=' otherlv_46= '{' ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? otherlv_50= '}' { otherlv_45=(Token)match(input,27,FOLLOW_27_in_ruleFeatureType3200); newLeafNode(otherlv_45, grammarAccess.getFeatureTypeAccess().getEqualsSignKeyword_5_5_0()); otherlv_46=(Token)match(input,23,FOLLOW_23_in_ruleFeatureType3212); newLeafNode(otherlv_46, grammarAccess.getFeatureTypeAccess().getLeftCurlyBracketKeyword_5_5_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1492:1: ( ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* )? int alt33=2; int LA33_0 = input.LA(1); if ( (LA33_0==RULE_ID) ) { alt33=1; } switch (alt33) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1492:2: ( (lv_elements_47_0= ruleBaseFeatureType ) ) (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1492:2: ( (lv_elements_47_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1493:1: (lv_elements_47_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1493:1: (lv_elements_47_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1494:3: lv_elements_47_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getElementsBaseFeatureTypeParserRuleCall_5_5_2_0_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3234); lv_elements_47_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "elements", lv_elements_47_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1510:2: (otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) )* loop32: do { int alt32=2; int LA32_0 = input.LA(1); if ( (LA32_0==45) ) { alt32=1; } switch (alt32) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1510:4: otherlv_48= ',' ( (lv_elements_49_0= ruleBaseFeatureType ) ) { otherlv_48=(Token)match(input,45,FOLLOW_45_in_ruleFeatureType3247); newLeafNode(otherlv_48, grammarAccess.getFeatureTypeAccess().getCommaKeyword_5_5_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1514:1: ( (lv_elements_49_0= ruleBaseFeatureType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1515:1: (lv_elements_49_0= ruleBaseFeatureType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1515:1: (lv_elements_49_0= ruleBaseFeatureType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1516:3: lv_elements_49_0= ruleBaseFeatureType { newCompositeNode(grammarAccess.getFeatureTypeAccess().getElementsBaseFeatureTypeParserRuleCall_5_5_2_1_1_0()); pushFollow(FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3268); lv_elements_49_0=ruleBaseFeatureType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getFeatureTypeRule()); } add( current, "elements", lv_elements_49_0, "BaseFeatureType"); afterParserOrEnumRuleCall(); } } } break; default : break loop32; } } while (true); } break; } otherlv_50=(Token)match(input,24,FOLLOW_24_in_ruleFeatureType3284); newLeafNode(otherlv_50, grammarAccess.getFeatureTypeAccess().getRightCurlyBracketKeyword_5_5_3()); } break; } } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleFeatureType" // $ANTLR start "entryRuleBaseFeatureType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1544:1: entryRuleBaseFeatureType returns [EObject current=null] : iv_ruleBaseFeatureType= ruleBaseFeatureType EOF ; public final EObject entryRuleBaseFeatureType() throws RecognitionException { EObject current = null; EObject iv_ruleBaseFeatureType = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1545:2: (iv_ruleBaseFeatureType= ruleBaseFeatureType EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1546:2: iv_ruleBaseFeatureType= ruleBaseFeatureType EOF { newCompositeNode(grammarAccess.getBaseFeatureTypeRule()); pushFollow(FOLLOW_ruleBaseFeatureType_in_entryRuleBaseFeatureType3323); iv_ruleBaseFeatureType=ruleBaseFeatureType(); state._fsp--; current =iv_ruleBaseFeatureType; match(input,EOF,FOLLOW_EOF_in_entryRuleBaseFeatureType3333); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleBaseFeatureType" // $ANTLR start "ruleBaseFeatureType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1553:1: ruleBaseFeatureType returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' )? ) ; public final EObject ruleBaseFeatureType() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_1=null; Token otherlv_2=null; Token otherlv_3=null; Token otherlv_4=null; Token otherlv_6=null; EObject lv_members_5_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1556:28: ( ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' )? ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1557:1: ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1557:1: ( ( (otherlv_0= RULE_ID ) ) (otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1557:2: ( (otherlv_0= RULE_ID ) ) (otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' )? { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1557:2: ( (otherlv_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1558:1: (otherlv_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1558:1: (otherlv_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1559:3: otherlv_0= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getBaseFeatureTypeRule()); } otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBaseFeatureType3378); newLeafNode(otherlv_0, grammarAccess.getBaseFeatureTypeAccess().getComponentsFeatureDeclCrossReference_0_0()); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1570:2: (otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) )* loop36: do { int alt36=2; int LA36_0 = input.LA(1); if ( (LA36_0==15) ) { alt36=1; } switch (alt36) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1570:4: otherlv_1= 'with' ( (otherlv_2= RULE_ID ) ) { otherlv_1=(Token)match(input,15,FOLLOW_15_in_ruleBaseFeatureType3391); newLeafNode(otherlv_1, grammarAccess.getBaseFeatureTypeAccess().getWithKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1574:1: ( (otherlv_2= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1575:1: (otherlv_2= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1575:1: (otherlv_2= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1576:3: otherlv_2= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getBaseFeatureTypeRule()); } otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBaseFeatureType3411); newLeafNode(otherlv_2, grammarAccess.getBaseFeatureTypeAccess().getComponentsFeatureDeclCrossReference_1_1_0()); } } } break; default : break loop36; } } while (true); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1587:4: (otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' )? int alt38=2; int LA38_0 = input.LA(1); if ( (LA38_0==27) ) { alt38=1; } switch (alt38) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1587:6: otherlv_3= '=' otherlv_4= '{' ( (lv_members_5_0= ruleMemberDecl ) )* otherlv_6= '}' { otherlv_3=(Token)match(input,27,FOLLOW_27_in_ruleBaseFeatureType3426); newLeafNode(otherlv_3, grammarAccess.getBaseFeatureTypeAccess().getEqualsSignKeyword_2_0()); otherlv_4=(Token)match(input,23,FOLLOW_23_in_ruleBaseFeatureType3438); newLeafNode(otherlv_4, grammarAccess.getBaseFeatureTypeAccess().getLeftCurlyBracketKeyword_2_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1595:1: ( (lv_members_5_0= ruleMemberDecl ) )* loop37: do { int alt37=2; int LA37_0 = input.LA(1); if ( (LA37_0==RULE_ID||LA37_0==28||(LA37_0>=30 && LA37_0<=33)||(LA37_0>=35 && LA37_0<=38)||LA37_0==48) ) { alt37=1; } switch (alt37) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1596:1: (lv_members_5_0= ruleMemberDecl ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1596:1: (lv_members_5_0= ruleMemberDecl ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1597:3: lv_members_5_0= ruleMemberDecl { newCompositeNode(grammarAccess.getBaseFeatureTypeAccess().getMembersMemberDeclParserRuleCall_2_2_0()); pushFollow(FOLLOW_ruleMemberDecl_in_ruleBaseFeatureType3459); lv_members_5_0=ruleMemberDecl(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getBaseFeatureTypeRule()); } add( current, "members", lv_members_5_0, "MemberDecl"); afterParserOrEnumRuleCall(); } } break; default : break loop37; } } while (true); otherlv_6=(Token)match(input,24,FOLLOW_24_in_ruleBaseFeatureType3472); newLeafNode(otherlv_6, grammarAccess.getBaseFeatureTypeAccess().getRightCurlyBracketKeyword_2_3()); } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleBaseFeatureType" // $ANTLR start "entryRuleInvariantDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1625:1: entryRuleInvariantDecl returns [EObject current=null] : iv_ruleInvariantDecl= ruleInvariantDecl EOF ; public final EObject entryRuleInvariantDecl() throws RecognitionException { EObject current = null; EObject iv_ruleInvariantDecl = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1626:2: (iv_ruleInvariantDecl= ruleInvariantDecl EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1627:2: iv_ruleInvariantDecl= ruleInvariantDecl EOF { newCompositeNode(grammarAccess.getInvariantDeclRule()); pushFollow(FOLLOW_ruleInvariantDecl_in_entryRuleInvariantDecl3510); iv_ruleInvariantDecl=ruleInvariantDecl(); state._fsp--; current =iv_ruleInvariantDecl; match(input,EOF,FOLLOW_EOF_in_entryRuleInvariantDecl3520); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleInvariantDecl" // $ANTLR start "ruleInvariantDecl" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1634:1: ruleInvariantDecl returns [EObject current=null] : (this_MultiplicityInvariant_0= ruleMultiplicityInvariant | this_GeneralInvariant_1= ruleGeneralInvariant ) ; public final EObject ruleInvariantDecl() throws RecognitionException { EObject current = null; EObject this_MultiplicityInvariant_0 = null; EObject this_GeneralInvariant_1 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1637:28: ( (this_MultiplicityInvariant_0= ruleMultiplicityInvariant | this_GeneralInvariant_1= ruleGeneralInvariant ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1638:1: (this_MultiplicityInvariant_0= ruleMultiplicityInvariant | this_GeneralInvariant_1= ruleGeneralInvariant ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1638:1: (this_MultiplicityInvariant_0= ruleMultiplicityInvariant | this_GeneralInvariant_1= ruleGeneralInvariant ) int alt39=2; int LA39_0 = input.LA(1); if ( (LA39_0==48) ) { switch ( input.LA(2) ) { case RULE_ID: { int LA39_2 = input.LA(3); if ( (LA39_2==26) ) { int LA39_5 = input.LA(4); if ( (LA39_5==RULE_ID||LA39_5==53) ) { alt39=2; } else if ( (LA39_5==RULE_NAT||LA39_5==51) ) { alt39=1; } else { NoViableAltException nvae = new NoViableAltException("", 39, 5, input); throw nvae; } } else if ( (LA39_2==EOF||LA39_2==RULE_ID||LA39_2==RULE_LIT||LA39_2==24||LA39_2==28||(LA39_2>=30 && LA39_2<=33)||(LA39_2>=35 && LA39_2<=38)||LA39_2==48||LA39_2==50) ) { alt39=2; } else { NoViableAltException nvae = new NoViableAltException("", 39, 2, input); throw nvae; } } break; case 53: { alt39=2; } break; case RULE_NAT: case 51: { alt39=1; } break; default: NoViableAltException nvae = new NoViableAltException("", 39, 1, input); throw nvae; } } else { NoViableAltException nvae = new NoViableAltException("", 39, 0, input); throw nvae; } switch (alt39) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1639:5: this_MultiplicityInvariant_0= ruleMultiplicityInvariant { newCompositeNode(grammarAccess.getInvariantDeclAccess().getMultiplicityInvariantParserRuleCall_0()); pushFollow(FOLLOW_ruleMultiplicityInvariant_in_ruleInvariantDecl3567); this_MultiplicityInvariant_0=ruleMultiplicityInvariant(); state._fsp--; current = this_MultiplicityInvariant_0; afterParserOrEnumRuleCall(); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1649:5: this_GeneralInvariant_1= ruleGeneralInvariant { newCompositeNode(grammarAccess.getInvariantDeclAccess().getGeneralInvariantParserRuleCall_1()); pushFollow(FOLLOW_ruleGeneralInvariant_in_ruleInvariantDecl3594); this_GeneralInvariant_1=ruleGeneralInvariant(); state._fsp--; current = this_GeneralInvariant_1; afterParserOrEnumRuleCall(); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleInvariantDecl" // $ANTLR start "entryRuleMultiplicityInvariant" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1665:1: entryRuleMultiplicityInvariant returns [EObject current=null] : iv_ruleMultiplicityInvariant= ruleMultiplicityInvariant EOF ; public final EObject entryRuleMultiplicityInvariant() throws RecognitionException { EObject current = null; EObject iv_ruleMultiplicityInvariant = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1666:2: (iv_ruleMultiplicityInvariant= ruleMultiplicityInvariant EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1667:2: iv_ruleMultiplicityInvariant= ruleMultiplicityInvariant EOF { newCompositeNode(grammarAccess.getMultiplicityInvariantRule()); pushFollow(FOLLOW_ruleMultiplicityInvariant_in_entryRuleMultiplicityInvariant3629); iv_ruleMultiplicityInvariant=ruleMultiplicityInvariant(); state._fsp--; current =iv_ruleMultiplicityInvariant; match(input,EOF,FOLLOW_EOF_in_entryRuleMultiplicityInvariant3639); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleMultiplicityInvariant" // $ANTLR start "ruleMultiplicityInvariant" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1674:1: ruleMultiplicityInvariant returns [EObject current=null] : (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) ) ( (lv_match_6_0= ruleSubMemberMatch ) ) (otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) )? ) ; public final EObject ruleMultiplicityInvariant() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_invName_1_0=null; Token otherlv_2=null; Token otherlv_4=null; Token otherlv_7=null; Token otherlv_8=null; EObject lv_lo_3_0 = null; EObject lv_hi_5_0 = null; EObject lv_match_6_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1677:28: ( (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) ) ( (lv_match_6_0= ruleSubMemberMatch ) ) (otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) )? ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1678:1: (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) ) ( (lv_match_6_0= ruleSubMemberMatch ) ) (otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1678:1: (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) ) ( (lv_match_6_0= ruleSubMemberMatch ) ) (otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1678:3: otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) ) ( (lv_match_6_0= ruleSubMemberMatch ) ) (otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) )? { otherlv_0=(Token)match(input,48,FOLLOW_48_in_ruleMultiplicityInvariant3676); newLeafNode(otherlv_0, grammarAccess.getMultiplicityInvariantAccess().getInvKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1682:1: ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? int alt40=2; int LA40_0 = input.LA(1); if ( (LA40_0==RULE_ID) ) { alt40=1; } switch (alt40) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1682:2: ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1682:2: ( (lv_invName_1_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1683:1: (lv_invName_1_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1683:1: (lv_invName_1_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1684:3: lv_invName_1_0= RULE_ID { lv_invName_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMultiplicityInvariant3694); newLeafNode(lv_invName_1_0, grammarAccess.getMultiplicityInvariantAccess().getInvNameIDTerminalRuleCall_1_0_0()); if (current==null) { current = createModelElement(grammarAccess.getMultiplicityInvariantRule()); } setWithLastConsumed( current, "invName", lv_invName_1_0, "ID"); } } otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleMultiplicityInvariant3711); newLeafNode(otherlv_2, grammarAccess.getMultiplicityInvariantAccess().getColonKeyword_1_1()); } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1704:3: ( ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1704:4: ( (lv_lo_3_0= ruleConstraintNat ) ) otherlv_4= '..' ( (lv_hi_5_0= ruleConstraintNat ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1704:4: ( (lv_lo_3_0= ruleConstraintNat ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1705:1: (lv_lo_3_0= ruleConstraintNat ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1705:1: (lv_lo_3_0= ruleConstraintNat ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1706:3: lv_lo_3_0= ruleConstraintNat { newCompositeNode(grammarAccess.getMultiplicityInvariantAccess().getLoConstraintNatParserRuleCall_2_0_0()); pushFollow(FOLLOW_ruleConstraintNat_in_ruleMultiplicityInvariant3735); lv_lo_3_0=ruleConstraintNat(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getMultiplicityInvariantRule()); } set( current, "lo", lv_lo_3_0, "ConstraintNat"); afterParserOrEnumRuleCall(); } } otherlv_4=(Token)match(input,49,FOLLOW_49_in_ruleMultiplicityInvariant3747); newLeafNode(otherlv_4, grammarAccess.getMultiplicityInvariantAccess().getFullStopFullStopKeyword_2_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1726:1: ( (lv_hi_5_0= ruleConstraintNat ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1727:1: (lv_hi_5_0= ruleConstraintNat ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1727:1: (lv_hi_5_0= ruleConstraintNat ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1728:3: lv_hi_5_0= ruleConstraintNat { newCompositeNode(grammarAccess.getMultiplicityInvariantAccess().getHiConstraintNatParserRuleCall_2_2_0()); pushFollow(FOLLOW_ruleConstraintNat_in_ruleMultiplicityInvariant3768); lv_hi_5_0=ruleConstraintNat(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getMultiplicityInvariantRule()); } set( current, "hi", lv_hi_5_0, "ConstraintNat"); afterParserOrEnumRuleCall(); } } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1744:3: ( (lv_match_6_0= ruleSubMemberMatch ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1745:1: (lv_match_6_0= ruleSubMemberMatch ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1745:1: (lv_match_6_0= ruleSubMemberMatch ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1746:3: lv_match_6_0= ruleSubMemberMatch { newCompositeNode(grammarAccess.getMultiplicityInvariantAccess().getMatchSubMemberMatchParserRuleCall_3_0()); pushFollow(FOLLOW_ruleSubMemberMatch_in_ruleMultiplicityInvariant3790); lv_match_6_0=ruleSubMemberMatch(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getMultiplicityInvariantRule()); } set( current, "match", lv_match_6_0, "SubMemberMatch"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1762:2: (otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) )? int alt41=2; int LA41_0 = input.LA(1); if ( (LA41_0==26) ) { alt41=1; } switch (alt41) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1762:4: otherlv_7= ':' ( (otherlv_8= RULE_ID ) ) { otherlv_7=(Token)match(input,26,FOLLOW_26_in_ruleMultiplicityInvariant3803); newLeafNode(otherlv_7, grammarAccess.getMultiplicityInvariantAccess().getColonKeyword_4_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1766:1: ( (otherlv_8= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1767:1: (otherlv_8= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1767:1: (otherlv_8= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1768:3: otherlv_8= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getMultiplicityInvariantRule()); } otherlv_8=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMultiplicityInvariant3823); newLeafNode(otherlv_8, grammarAccess.getMultiplicityInvariantAccess().getTypeFeatureDeclCrossReference_4_1_0()); } } } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleMultiplicityInvariant" // $ANTLR start "entryRuleGeneralInvariant" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1787:1: entryRuleGeneralInvariant returns [EObject current=null] : iv_ruleGeneralInvariant= ruleGeneralInvariant EOF ; public final EObject entryRuleGeneralInvariant() throws RecognitionException { EObject current = null; EObject iv_ruleGeneralInvariant = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1788:2: (iv_ruleGeneralInvariant= ruleGeneralInvariant EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1789:2: iv_ruleGeneralInvariant= ruleGeneralInvariant EOF { newCompositeNode(grammarAccess.getGeneralInvariantRule()); pushFollow(FOLLOW_ruleGeneralInvariant_in_entryRuleGeneralInvariant3861); iv_ruleGeneralInvariant=ruleGeneralInvariant(); state._fsp--; current =iv_ruleGeneralInvariant; match(input,EOF,FOLLOW_EOF_in_entryRuleGeneralInvariant3871); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleGeneralInvariant" // $ANTLR start "ruleGeneralInvariant" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1796:1: ruleGeneralInvariant returns [EObject current=null] : (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( (lv_exp_3_0= ruleExp ) ) ) ; public final EObject ruleGeneralInvariant() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_invName_1_0=null; Token otherlv_2=null; EObject lv_exp_3_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1799:28: ( (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( (lv_exp_3_0= ruleExp ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1800:1: (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( (lv_exp_3_0= ruleExp ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1800:1: (otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( (lv_exp_3_0= ruleExp ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1800:3: otherlv_0= 'inv' ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? ( (lv_exp_3_0= ruleExp ) ) { otherlv_0=(Token)match(input,48,FOLLOW_48_in_ruleGeneralInvariant3908); newLeafNode(otherlv_0, grammarAccess.getGeneralInvariantAccess().getInvKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1804:1: ( ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' )? int alt42=2; int LA42_0 = input.LA(1); if ( (LA42_0==RULE_ID) ) { int LA42_1 = input.LA(2); if ( (LA42_1==26) ) { alt42=1; } } switch (alt42) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1804:2: ( (lv_invName_1_0= RULE_ID ) ) otherlv_2= ':' { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1804:2: ( (lv_invName_1_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1805:1: (lv_invName_1_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1805:1: (lv_invName_1_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1806:3: lv_invName_1_0= RULE_ID { lv_invName_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleGeneralInvariant3926); newLeafNode(lv_invName_1_0, grammarAccess.getGeneralInvariantAccess().getInvNameIDTerminalRuleCall_1_0_0()); if (current==null) { current = createModelElement(grammarAccess.getGeneralInvariantRule()); } setWithLastConsumed( current, "invName", lv_invName_1_0, "ID"); } } otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleGeneralInvariant3943); newLeafNode(otherlv_2, grammarAccess.getGeneralInvariantAccess().getColonKeyword_1_1()); } break; } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1826:3: ( (lv_exp_3_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1827:1: (lv_exp_3_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1827:1: (lv_exp_3_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1828:3: lv_exp_3_0= ruleExp { newCompositeNode(grammarAccess.getGeneralInvariantAccess().getExpExpParserRuleCall_2_0()); pushFollow(FOLLOW_ruleExp_in_ruleGeneralInvariant3966); lv_exp_3_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getGeneralInvariantRule()); } set( current, "exp", lv_exp_3_0, "Exp"); afterParserOrEnumRuleCall(); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleGeneralInvariant" // $ANTLR start "entryRuleSubMemberMatch" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1852:1: entryRuleSubMemberMatch returns [EObject current=null] : iv_ruleSubMemberMatch= ruleSubMemberMatch EOF ; public final EObject entryRuleSubMemberMatch() throws RecognitionException { EObject current = null; EObject iv_ruleSubMemberMatch = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1853:2: (iv_ruleSubMemberMatch= ruleSubMemberMatch EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1854:2: iv_ruleSubMemberMatch= ruleSubMemberMatch EOF { newCompositeNode(grammarAccess.getSubMemberMatchRule()); pushFollow(FOLLOW_ruleSubMemberMatch_in_entryRuleSubMemberMatch4002); iv_ruleSubMemberMatch=ruleSubMemberMatch(); state._fsp--; current =iv_ruleSubMemberMatch; match(input,EOF,FOLLOW_EOF_in_entryRuleSubMemberMatch4012); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSubMemberMatch" // $ANTLR start "ruleSubMemberMatch" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1861:1: ruleSubMemberMatch returns [EObject current=null] : ( ( ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' )* ( ( (lv_name_2_0= RULE_ID ) ) | ( (lv_any_3_0= '*' ) ) ) ) ; public final EObject ruleSubMemberMatch() throws RecognitionException { EObject current = null; Token lv_qNames_0_0=null; Token otherlv_1=null; Token lv_name_2_0=null; Token lv_any_3_0=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1864:28: ( ( ( ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' )* ( ( (lv_name_2_0= RULE_ID ) ) | ( (lv_any_3_0= '*' ) ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1865:1: ( ( ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' )* ( ( (lv_name_2_0= RULE_ID ) ) | ( (lv_any_3_0= '*' ) ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1865:1: ( ( ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' )* ( ( (lv_name_2_0= RULE_ID ) ) | ( (lv_any_3_0= '*' ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1865:2: ( ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' )* ( ( (lv_name_2_0= RULE_ID ) ) | ( (lv_any_3_0= '*' ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1865:2: ( ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' )* loop43: do { int alt43=2; int LA43_0 = input.LA(1); if ( (LA43_0==RULE_ID) ) { int LA43_1 = input.LA(2); if ( (LA43_1==50) ) { alt43=1; } } switch (alt43) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1865:3: ( (lv_qNames_0_0= RULE_ID ) ) otherlv_1= '.' { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1865:3: ( (lv_qNames_0_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1866:1: (lv_qNames_0_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1866:1: (lv_qNames_0_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1867:3: lv_qNames_0_0= RULE_ID { lv_qNames_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubMemberMatch4055); newLeafNode(lv_qNames_0_0, grammarAccess.getSubMemberMatchAccess().getQNamesIDTerminalRuleCall_0_0_0()); if (current==null) { current = createModelElement(grammarAccess.getSubMemberMatchRule()); } addWithLastConsumed( current, "qNames", lv_qNames_0_0, "ID"); } } otherlv_1=(Token)match(input,50,FOLLOW_50_in_ruleSubMemberMatch4072); newLeafNode(otherlv_1, grammarAccess.getSubMemberMatchAccess().getFullStopKeyword_0_1()); } break; default : break loop43; } } while (true); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1887:3: ( ( (lv_name_2_0= RULE_ID ) ) | ( (lv_any_3_0= '*' ) ) ) int alt44=2; int LA44_0 = input.LA(1); if ( (LA44_0==RULE_ID) ) { alt44=1; } else if ( (LA44_0==51) ) { alt44=2; } else { NoViableAltException nvae = new NoViableAltException("", 44, 0, input); throw nvae; } switch (alt44) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1887:4: ( (lv_name_2_0= RULE_ID ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1887:4: ( (lv_name_2_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1888:1: (lv_name_2_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1888:1: (lv_name_2_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1889:3: lv_name_2_0= RULE_ID { lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubMemberMatch4092); newLeafNode(lv_name_2_0, grammarAccess.getSubMemberMatchAccess().getNameIDTerminalRuleCall_1_0_0()); if (current==null) { current = createModelElement(grammarAccess.getSubMemberMatchRule()); } setWithLastConsumed( current, "name", lv_name_2_0, "ID"); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1906:6: ( (lv_any_3_0= '*' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1906:6: ( (lv_any_3_0= '*' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1907:1: (lv_any_3_0= '*' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1907:1: (lv_any_3_0= '*' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1908:3: lv_any_3_0= '*' { lv_any_3_0=(Token)match(input,51,FOLLOW_51_in_ruleSubMemberMatch4121); newLeafNode(lv_any_3_0, grammarAccess.getSubMemberMatchAccess().getAnyAsteriskKeyword_1_1_0()); if (current==null) { current = createModelElement(grammarAccess.getSubMemberMatchRule()); } setWithLastConsumed(current, "any", lv_any_3_0, "*"); } } } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSubMemberMatch" // $ANTLR start "entryRuleConstraintNat" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1929:1: entryRuleConstraintNat returns [EObject current=null] : iv_ruleConstraintNat= ruleConstraintNat EOF ; public final EObject entryRuleConstraintNat() throws RecognitionException { EObject current = null; EObject iv_ruleConstraintNat = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1930:2: (iv_ruleConstraintNat= ruleConstraintNat EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1931:2: iv_ruleConstraintNat= ruleConstraintNat EOF { newCompositeNode(grammarAccess.getConstraintNatRule()); pushFollow(FOLLOW_ruleConstraintNat_in_entryRuleConstraintNat4171); iv_ruleConstraintNat=ruleConstraintNat(); state._fsp--; current =iv_ruleConstraintNat; match(input,EOF,FOLLOW_EOF_in_entryRuleConstraintNat4181); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleConstraintNat" // $ANTLR start "ruleConstraintNat" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1938:1: ruleConstraintNat returns [EObject current=null] : ( ( () ( (lv_num_1_0= RULE_NAT ) ) ) | ( () otherlv_3= '*' ) ) ; public final EObject ruleConstraintNat() throws RecognitionException { EObject current = null; Token lv_num_1_0=null; Token otherlv_3=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1941:28: ( ( ( () ( (lv_num_1_0= RULE_NAT ) ) ) | ( () otherlv_3= '*' ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1942:1: ( ( () ( (lv_num_1_0= RULE_NAT ) ) ) | ( () otherlv_3= '*' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1942:1: ( ( () ( (lv_num_1_0= RULE_NAT ) ) ) | ( () otherlv_3= '*' ) ) int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0==RULE_NAT) ) { alt45=1; } else if ( (LA45_0==51) ) { alt45=2; } else { NoViableAltException nvae = new NoViableAltException("", 45, 0, input); throw nvae; } switch (alt45) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1942:2: ( () ( (lv_num_1_0= RULE_NAT ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1942:2: ( () ( (lv_num_1_0= RULE_NAT ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1942:3: () ( (lv_num_1_0= RULE_NAT ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1942:3: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1943:5: { current = forceCreateModelElement( grammarAccess.getConstraintNatAccess().getNumNatConstraintAction_0_0(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1948:2: ( (lv_num_1_0= RULE_NAT ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1949:1: (lv_num_1_0= RULE_NAT ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1949:1: (lv_num_1_0= RULE_NAT ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1950:3: lv_num_1_0= RULE_NAT { lv_num_1_0=(Token)match(input,RULE_NAT,FOLLOW_RULE_NAT_in_ruleConstraintNat4233); newLeafNode(lv_num_1_0, grammarAccess.getConstraintNatAccess().getNumNATTerminalRuleCall_0_1_0()); if (current==null) { current = createModelElement(grammarAccess.getConstraintNatRule()); } setWithLastConsumed( current, "num", lv_num_1_0, "NAT"); } } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1967:6: ( () otherlv_3= '*' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1967:6: ( () otherlv_3= '*' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1967:7: () otherlv_3= '*' { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1967:7: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1968:5: { current = forceCreateModelElement( grammarAccess.getConstraintNatAccess().getAnyNatConstraintAction_1_0(), current); } otherlv_3=(Token)match(input,51,FOLLOW_51_in_ruleConstraintNat4267); newLeafNode(otherlv_3, grammarAccess.getConstraintNatAccess().getAsteriskKeyword_1_1()); } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleConstraintNat" // $ANTLR start "entryRuleDevice" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1985:1: entryRuleDevice returns [EObject current=null] : iv_ruleDevice= ruleDevice EOF ; public final EObject entryRuleDevice() throws RecognitionException { EObject current = null; EObject iv_ruleDevice = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1986:2: (iv_ruleDevice= ruleDevice EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1987:2: iv_ruleDevice= ruleDevice EOF { newCompositeNode(grammarAccess.getDeviceRule()); pushFollow(FOLLOW_ruleDevice_in_entryRuleDevice4304); iv_ruleDevice=ruleDevice(); state._fsp--; current =iv_ruleDevice; match(input,EOF,FOLLOW_EOF_in_entryRuleDevice4314); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleDevice" // $ANTLR start "ruleDevice" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1994:1: ruleDevice returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) )* ( (lv_constraint_5_0= ruleConstraintExp ) )? ) ; public final EObject ruleDevice() throws RecognitionException { EObject current = null; Token lv_name_0_0=null; Token otherlv_1=null; Token otherlv_2=null; Token otherlv_3=null; Token otherlv_4=null; EObject lv_constraint_5_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1997:28: ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) )* ( (lv_constraint_5_0= ruleConstraintExp ) )? ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1998:1: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) )* ( (lv_constraint_5_0= ruleConstraintExp ) )? ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1998:1: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) )* ( (lv_constraint_5_0= ruleConstraintExp ) )? ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1998:2: ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) )* ( (lv_constraint_5_0= ruleConstraintExp ) )? { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1998:2: ( (lv_name_0_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1999:1: (lv_name_0_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:1999:1: (lv_name_0_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2000:3: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDevice4356); newLeafNode(lv_name_0_0, grammarAccess.getDeviceAccess().getNameIDTerminalRuleCall_0_0()); if (current==null) { current = createModelElement(grammarAccess.getDeviceRule()); } setWithLastConsumed( current, "name", lv_name_0_0, "ID"); } } otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleDevice4373); newLeafNode(otherlv_1, grammarAccess.getDeviceAccess().getColonKeyword_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2020:1: ( (otherlv_2= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2021:1: (otherlv_2= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2021:1: (otherlv_2= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2022:3: otherlv_2= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getDeviceRule()); } otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDevice4393); newLeafNode(otherlv_2, grammarAccess.getDeviceAccess().getComponentsFeatureDeclCrossReference_2_0()); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2033:2: (otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) )* loop46: do { int alt46=2; int LA46_0 = input.LA(1); if ( (LA46_0==15) ) { alt46=1; } switch (alt46) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2033:4: otherlv_3= 'with' ( (otherlv_4= RULE_ID ) ) { otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleDevice4406); newLeafNode(otherlv_3, grammarAccess.getDeviceAccess().getWithKeyword_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2037:1: ( (otherlv_4= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2038:1: (otherlv_4= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2038:1: (otherlv_4= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2039:3: otherlv_4= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getDeviceRule()); } otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDevice4426); newLeafNode(otherlv_4, grammarAccess.getDeviceAccess().getComponentsFeatureDeclCrossReference_3_1_0()); } } } break; default : break loop46; } } while (true); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2050:4: ( (lv_constraint_5_0= ruleConstraintExp ) )? int alt47=2; int LA47_0 = input.LA(1); if ( (LA47_0==52) ) { alt47=1; } switch (alt47) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2051:1: (lv_constraint_5_0= ruleConstraintExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2051:1: (lv_constraint_5_0= ruleConstraintExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2052:3: lv_constraint_5_0= ruleConstraintExp { newCompositeNode(grammarAccess.getDeviceAccess().getConstraintConstraintExpParserRuleCall_4_0()); pushFollow(FOLLOW_ruleConstraintExp_in_ruleDevice4449); lv_constraint_5_0=ruleConstraintExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getDeviceRule()); } set( current, "constraint", lv_constraint_5_0, "ConstraintExp"); afterParserOrEnumRuleCall(); } } break; } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleDevice" // $ANTLR start "entryRuleConstraintExp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2076:1: entryRuleConstraintExp returns [EObject current=null] : iv_ruleConstraintExp= ruleConstraintExp EOF ; public final EObject entryRuleConstraintExp() throws RecognitionException { EObject current = null; EObject iv_ruleConstraintExp = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2077:2: (iv_ruleConstraintExp= ruleConstraintExp EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2078:2: iv_ruleConstraintExp= ruleConstraintExp EOF { newCompositeNode(grammarAccess.getConstraintExpRule()); pushFollow(FOLLOW_ruleConstraintExp_in_entryRuleConstraintExp4486); iv_ruleConstraintExp=ruleConstraintExp(); state._fsp--; current =iv_ruleConstraintExp; match(input,EOF,FOLLOW_EOF_in_entryRuleConstraintExp4496); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleConstraintExp" // $ANTLR start "ruleConstraintExp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2085:1: ruleConstraintExp returns [EObject current=null] : (otherlv_0= 'constraint' ( (lv_cond_1_0= ruleExp ) ) ) ; public final EObject ruleConstraintExp() throws RecognitionException { EObject current = null; Token otherlv_0=null; EObject lv_cond_1_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2088:28: ( (otherlv_0= 'constraint' ( (lv_cond_1_0= ruleExp ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2089:1: (otherlv_0= 'constraint' ( (lv_cond_1_0= ruleExp ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2089:1: (otherlv_0= 'constraint' ( (lv_cond_1_0= ruleExp ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2089:3: otherlv_0= 'constraint' ( (lv_cond_1_0= ruleExp ) ) { otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleConstraintExp4533); newLeafNode(otherlv_0, grammarAccess.getConstraintExpAccess().getConstraintKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2093:1: ( (lv_cond_1_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2094:1: (lv_cond_1_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2094:1: (lv_cond_1_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2095:3: lv_cond_1_0= ruleExp { newCompositeNode(grammarAccess.getConstraintExpAccess().getCondExpParserRuleCall_1_0()); pushFollow(FOLLOW_ruleExp_in_ruleConstraintExp4554); lv_cond_1_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getConstraintExpRule()); } set( current, "cond", lv_cond_1_0, "Exp"); afterParserOrEnumRuleCall(); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleConstraintExp" // $ANTLR start "entryRuleExp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2125:1: entryRuleExp returns [EObject current=null] : iv_ruleExp= ruleExp EOF ; public final EObject entryRuleExp() throws RecognitionException { EObject current = null; EObject iv_ruleExp = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2126:2: (iv_ruleExp= ruleExp EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2127:2: iv_ruleExp= ruleExp EOF { newCompositeNode(grammarAccess.getExpRule()); pushFollow(FOLLOW_ruleExp_in_entryRuleExp4596); iv_ruleExp=ruleExp(); state._fsp--; current =iv_ruleExp; match(input,EOF,FOLLOW_EOF_in_entryRuleExp4606); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleExp" // $ANTLR start "ruleExp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2134:1: ruleExp returns [EObject current=null] : ( (otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' ) | (otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' ) | ( () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* ) ) ; public final EObject ruleExp() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_5=null; Token otherlv_6=null; Token otherlv_10=null; Token otherlv_13=null; Token otherlv_15=null; EObject lv_left_2_0 = null; AntlrDatatypeRuleToken lv_op_3_0 = null; EObject lv_right_4_0 = null; AntlrDatatypeRuleToken lv_op_8_0 = null; EObject lv_arg_9_0 = null; EObject lv_primary_12_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2137:28: ( ( (otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' ) | (otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' ) | ( () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2138:1: ( (otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' ) | (otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' ) | ( () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2138:1: ( (otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' ) | (otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' ) | ( () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* ) ) int alt49=3; int LA49_0 = input.LA(1); if ( (LA49_0==53) ) { int LA49_1 = input.LA(2); if ( ((LA49_1>=65 && LA49_1<=66)||(LA49_1>=69 && LA49_1<=71)) ) { alt49=2; } else if ( (LA49_1==RULE_ID||LA49_1==53) ) { alt49=1; } else { NoViableAltException nvae = new NoViableAltException("", 49, 1, input); throw nvae; } } else if ( (LA49_0==RULE_ID) ) { alt49=3; } else { NoViableAltException nvae = new NoViableAltException("", 49, 0, input); throw nvae; } switch (alt49) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2138:2: (otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2138:2: (otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2138:4: otherlv_0= '(' () ( (lv_left_2_0= ruleExp ) ) ( (lv_op_3_0= ruleBinaryOp ) ) ( (lv_right_4_0= ruleExp ) ) otherlv_5= ')' { otherlv_0=(Token)match(input,53,FOLLOW_53_in_ruleExp4644); newLeafNode(otherlv_0, grammarAccess.getExpAccess().getLeftParenthesisKeyword_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2142:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2143:5: { current = forceCreateModelElement( grammarAccess.getExpAccess().getBinaryExpAction_0_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2148:2: ( (lv_left_2_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2149:1: (lv_left_2_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2149:1: (lv_left_2_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2150:3: lv_left_2_0= ruleExp { newCompositeNode(grammarAccess.getExpAccess().getLeftExpParserRuleCall_0_2_0()); pushFollow(FOLLOW_ruleExp_in_ruleExp4674); lv_left_2_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getExpRule()); } set( current, "left", lv_left_2_0, "Exp"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2166:2: ( (lv_op_3_0= ruleBinaryOp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2167:1: (lv_op_3_0= ruleBinaryOp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2167:1: (lv_op_3_0= ruleBinaryOp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2168:3: lv_op_3_0= ruleBinaryOp { newCompositeNode(grammarAccess.getExpAccess().getOpBinaryOpParserRuleCall_0_3_0()); pushFollow(FOLLOW_ruleBinaryOp_in_ruleExp4695); lv_op_3_0=ruleBinaryOp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getExpRule()); } set( current, "op", lv_op_3_0, "BinaryOp"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2184:2: ( (lv_right_4_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2185:1: (lv_right_4_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2185:1: (lv_right_4_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2186:3: lv_right_4_0= ruleExp { newCompositeNode(grammarAccess.getExpAccess().getRightExpParserRuleCall_0_4_0()); pushFollow(FOLLOW_ruleExp_in_ruleExp4716); lv_right_4_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getExpRule()); } set( current, "right", lv_right_4_0, "Exp"); afterParserOrEnumRuleCall(); } } otherlv_5=(Token)match(input,54,FOLLOW_54_in_ruleExp4728); newLeafNode(otherlv_5, grammarAccess.getExpAccess().getRightParenthesisKeyword_0_5()); } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2207:6: (otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2207:6: (otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2207:8: otherlv_6= '(' () ( (lv_op_8_0= ruleUnaryOp ) ) ( (lv_arg_9_0= ruleExp ) ) otherlv_10= ')' { otherlv_6=(Token)match(input,53,FOLLOW_53_in_ruleExp4748); newLeafNode(otherlv_6, grammarAccess.getExpAccess().getLeftParenthesisKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2211:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2212:5: { current = forceCreateModelElement( grammarAccess.getExpAccess().getUnaryExpAction_1_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2217:2: ( (lv_op_8_0= ruleUnaryOp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2218:1: (lv_op_8_0= ruleUnaryOp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2218:1: (lv_op_8_0= ruleUnaryOp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2219:3: lv_op_8_0= ruleUnaryOp { newCompositeNode(grammarAccess.getExpAccess().getOpUnaryOpParserRuleCall_1_2_0()); pushFollow(FOLLOW_ruleUnaryOp_in_ruleExp4778); lv_op_8_0=ruleUnaryOp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getExpRule()); } set( current, "op", lv_op_8_0, "UnaryOp"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2235:2: ( (lv_arg_9_0= ruleExp ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2236:1: (lv_arg_9_0= ruleExp ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2236:1: (lv_arg_9_0= ruleExp ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2237:3: lv_arg_9_0= ruleExp { newCompositeNode(grammarAccess.getExpAccess().getArgExpParserRuleCall_1_3_0()); pushFollow(FOLLOW_ruleExp_in_ruleExp4799); lv_arg_9_0=ruleExp(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getExpRule()); } set( current, "arg", lv_arg_9_0, "Exp"); afterParserOrEnumRuleCall(); } } otherlv_10=(Token)match(input,54,FOLLOW_54_in_ruleExp4811); newLeafNode(otherlv_10, grammarAccess.getExpAccess().getRightParenthesisKeyword_1_4()); } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2258:6: ( () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2258:6: ( () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2258:7: () ( (lv_primary_12_0= rulePrimary ) ) (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2258:7: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2259:5: { current = forceCreateModelElement( grammarAccess.getExpAccess().getPrimaryExpAction_2_0(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2264:2: ( (lv_primary_12_0= rulePrimary ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2265:1: (lv_primary_12_0= rulePrimary ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2265:1: (lv_primary_12_0= rulePrimary ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2266:3: lv_primary_12_0= rulePrimary { newCompositeNode(grammarAccess.getExpAccess().getPrimaryPrimaryParserRuleCall_2_1_0()); pushFollow(FOLLOW_rulePrimary_in_ruleExp4849); lv_primary_12_0=rulePrimary(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getExpRule()); } set( current, "primary", lv_primary_12_0, "Primary"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2282:2: (otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) )* loop48: do { int alt48=2; int LA48_0 = input.LA(1); if ( (LA48_0==50) ) { alt48=1; } switch (alt48) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2282:4: otherlv_13= '.' () ( (otherlv_15= RULE_ID ) ) { otherlv_13=(Token)match(input,50,FOLLOW_50_in_ruleExp4862); newLeafNode(otherlv_13, grammarAccess.getExpAccess().getFullStopKeyword_2_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2286:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2287:5: { current = forceCreateModelElementAndSet( grammarAccess.getExpAccess().getAccessExpBaseAction_2_2_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2292:2: ( (otherlv_15= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2293:1: (otherlv_15= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2293:1: (otherlv_15= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2294:3: otherlv_15= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getExpRule()); } otherlv_15=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExp4891); newLeafNode(otherlv_15, grammarAccess.getExpAccess().getAccessorAccessorCrossReference_2_2_2_0()); } } } break; default : break loop48; } } while (true); } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleExp" // $ANTLR start "entryRulePrimary" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2313:1: entryRulePrimary returns [EObject current=null] : iv_rulePrimary= rulePrimary EOF ; public final EObject entryRulePrimary() throws RecognitionException { EObject current = null; EObject iv_rulePrimary = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2314:2: (iv_rulePrimary= rulePrimary EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2315:2: iv_rulePrimary= rulePrimary EOF { newCompositeNode(grammarAccess.getPrimaryRule()); pushFollow(FOLLOW_rulePrimary_in_entryRulePrimary4930); iv_rulePrimary=rulePrimary(); state._fsp--; current =iv_rulePrimary; match(input,EOF,FOLLOW_EOF_in_entryRulePrimary4940); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRulePrimary" // $ANTLR start "rulePrimary" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2322:1: rulePrimary returns [EObject current=null] : ( ( () ( (lv_id_1_0= RULE_ID ) ) ) | ( () ( (lv_lit_3_0= ruleBasicLiteral ) ) ) ) ; public final EObject rulePrimary() throws RecognitionException { EObject current = null; Token lv_id_1_0=null; EObject lv_lit_3_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2325:28: ( ( ( () ( (lv_id_1_0= RULE_ID ) ) ) | ( () ( (lv_lit_3_0= ruleBasicLiteral ) ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2326:1: ( ( () ( (lv_id_1_0= RULE_ID ) ) ) | ( () ( (lv_lit_3_0= ruleBasicLiteral ) ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2326:1: ( ( () ( (lv_id_1_0= RULE_ID ) ) ) | ( () ( (lv_lit_3_0= ruleBasicLiteral ) ) ) ) int alt50=2; int LA50_0 = input.LA(1); if ( (LA50_0==RULE_ID) ) { int LA50_1 = input.LA(2); if ( (LA50_1==RULE_LIT) ) { alt50=2; } else if ( (LA50_1==EOF||LA50_1==RULE_ID||LA50_1==24||LA50_1==28||(LA50_1>=30 && LA50_1<=33)||(LA50_1>=35 && LA50_1<=38)||LA50_1==48||(LA50_1>=50 && LA50_1<=51)||(LA50_1>=53 && LA50_1<=68)) ) { alt50=1; } else { NoViableAltException nvae = new NoViableAltException("", 50, 1, input); throw nvae; } } else { NoViableAltException nvae = new NoViableAltException("", 50, 0, input); throw nvae; } switch (alt50) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2326:2: ( () ( (lv_id_1_0= RULE_ID ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2326:2: ( () ( (lv_id_1_0= RULE_ID ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2326:3: () ( (lv_id_1_0= RULE_ID ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2326:3: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2327:5: { current = forceCreateModelElement( grammarAccess.getPrimaryAccess().getNameExpAction_0_0(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2332:2: ( (lv_id_1_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2333:1: (lv_id_1_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2333:1: (lv_id_1_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2334:3: lv_id_1_0= RULE_ID { lv_id_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePrimary4992); newLeafNode(lv_id_1_0, grammarAccess.getPrimaryAccess().getIdIDTerminalRuleCall_0_1_0()); if (current==null) { current = createModelElement(grammarAccess.getPrimaryRule()); } setWithLastConsumed( current, "id", lv_id_1_0, "ID"); } } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2351:6: ( () ( (lv_lit_3_0= ruleBasicLiteral ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2351:6: ( () ( (lv_lit_3_0= ruleBasicLiteral ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2351:7: () ( (lv_lit_3_0= ruleBasicLiteral ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2351:7: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2352:5: { current = forceCreateModelElement( grammarAccess.getPrimaryAccess().getLiteralExpAction_1_0(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2357:2: ( (lv_lit_3_0= ruleBasicLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2358:1: (lv_lit_3_0= ruleBasicLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2358:1: (lv_lit_3_0= ruleBasicLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2359:3: lv_lit_3_0= ruleBasicLiteral { newCompositeNode(grammarAccess.getPrimaryAccess().getLitBasicLiteralParserRuleCall_1_1_0()); pushFollow(FOLLOW_ruleBasicLiteral_in_rulePrimary5035); lv_lit_3_0=ruleBasicLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getPrimaryRule()); } set( current, "lit", lv_lit_3_0, "BasicLiteral"); afterParserOrEnumRuleCall(); } } } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "rulePrimary" // $ANTLR start "entryRuleBinaryOp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2383:1: entryRuleBinaryOp returns [String current=null] : iv_ruleBinaryOp= ruleBinaryOp EOF ; public final String entryRuleBinaryOp() throws RecognitionException { String current = null; AntlrDatatypeRuleToken iv_ruleBinaryOp = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2384:2: (iv_ruleBinaryOp= ruleBinaryOp EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2385:2: iv_ruleBinaryOp= ruleBinaryOp EOF { newCompositeNode(grammarAccess.getBinaryOpRule()); pushFollow(FOLLOW_ruleBinaryOp_in_entryRuleBinaryOp5073); iv_ruleBinaryOp=ruleBinaryOp(); state._fsp--; current =iv_ruleBinaryOp.getText(); match(input,EOF,FOLLOW_EOF_in_entryRuleBinaryOp5084); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleBinaryOp" // $ANTLR start "ruleBinaryOp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2392:1: ruleBinaryOp returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '>=' | kw= '<=' | kw= '>' | kw= '<' | kw= '&&' | kw= '||' | kw= '==>' | kw= '<==' | kw= '+' | kw= '-' | kw= '*' | kw= '/' | kw= '%' ) ; public final AntlrDatatypeRuleToken ruleBinaryOp() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); Token kw=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2395:28: ( (kw= '==' | kw= '!=' | kw= '>=' | kw= '<=' | kw= '>' | kw= '<' | kw= '&&' | kw= '||' | kw= '==>' | kw= '<==' | kw= '+' | kw= '-' | kw= '*' | kw= '/' | kw= '%' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2396:1: (kw= '==' | kw= '!=' | kw= '>=' | kw= '<=' | kw= '>' | kw= '<' | kw= '&&' | kw= '||' | kw= '==>' | kw= '<==' | kw= '+' | kw= '-' | kw= '*' | kw= '/' | kw= '%' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2396:1: (kw= '==' | kw= '!=' | kw= '>=' | kw= '<=' | kw= '>' | kw= '<' | kw= '&&' | kw= '||' | kw= '==>' | kw= '<==' | kw= '+' | kw= '-' | kw= '*' | kw= '/' | kw= '%' ) int alt51=15; switch ( input.LA(1) ) { case 55: { alt51=1; } break; case 56: { alt51=2; } break; case 57: { alt51=3; } break; case 58: { alt51=4; } break; case 59: { alt51=5; } break; case 60: { alt51=6; } break; case 61: { alt51=7; } break; case 62: { alt51=8; } break; case 63: { alt51=9; } break; case 64: { alt51=10; } break; case 65: { alt51=11; } break; case 66: { alt51=12; } break; case 51: { alt51=13; } break; case 67: { alt51=14; } break; case 68: { alt51=15; } break; default: NoViableAltException nvae = new NoViableAltException("", 51, 0, input); throw nvae; } switch (alt51) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2397:2: kw= '==' { kw=(Token)match(input,55,FOLLOW_55_in_ruleBinaryOp5122); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getEqualsSignEqualsSignKeyword_0()); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2404:2: kw= '!=' { kw=(Token)match(input,56,FOLLOW_56_in_ruleBinaryOp5141); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getExclamationMarkEqualsSignKeyword_1()); } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2411:2: kw= '>=' { kw=(Token)match(input,57,FOLLOW_57_in_ruleBinaryOp5160); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getGreaterThanSignEqualsSignKeyword_2()); } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2418:2: kw= '<=' { kw=(Token)match(input,58,FOLLOW_58_in_ruleBinaryOp5179); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getLessThanSignEqualsSignKeyword_3()); } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2425:2: kw= '>' { kw=(Token)match(input,59,FOLLOW_59_in_ruleBinaryOp5198); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getGreaterThanSignKeyword_4()); } break; case 6 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2432:2: kw= '<' { kw=(Token)match(input,60,FOLLOW_60_in_ruleBinaryOp5217); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getLessThanSignKeyword_5()); } break; case 7 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2439:2: kw= '&&' { kw=(Token)match(input,61,FOLLOW_61_in_ruleBinaryOp5236); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getAmpersandAmpersandKeyword_6()); } break; case 8 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2446:2: kw= '||' { kw=(Token)match(input,62,FOLLOW_62_in_ruleBinaryOp5255); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getVerticalLineVerticalLineKeyword_7()); } break; case 9 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2453:2: kw= '==>' { kw=(Token)match(input,63,FOLLOW_63_in_ruleBinaryOp5274); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getEqualsSignEqualsSignGreaterThanSignKeyword_8()); } break; case 10 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2460:2: kw= '<==' { kw=(Token)match(input,64,FOLLOW_64_in_ruleBinaryOp5293); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getLessThanSignEqualsSignEqualsSignKeyword_9()); } break; case 11 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2467:2: kw= '+' { kw=(Token)match(input,65,FOLLOW_65_in_ruleBinaryOp5312); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getPlusSignKeyword_10()); } break; case 12 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2474:2: kw= '-' { kw=(Token)match(input,66,FOLLOW_66_in_ruleBinaryOp5331); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getHyphenMinusKeyword_11()); } break; case 13 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2481:2: kw= '*' { kw=(Token)match(input,51,FOLLOW_51_in_ruleBinaryOp5350); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getAsteriskKeyword_12()); } break; case 14 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2488:2: kw= '/' { kw=(Token)match(input,67,FOLLOW_67_in_ruleBinaryOp5369); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getSolidusKeyword_13()); } break; case 15 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2495:2: kw= '%' { kw=(Token)match(input,68,FOLLOW_68_in_ruleBinaryOp5388); current.merge(kw); newLeafNode(kw, grammarAccess.getBinaryOpAccess().getPercentSignKeyword_14()); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleBinaryOp" // $ANTLR start "entryRuleUnaryOp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2508:1: entryRuleUnaryOp returns [String current=null] : iv_ruleUnaryOp= ruleUnaryOp EOF ; public final String entryRuleUnaryOp() throws RecognitionException { String current = null; AntlrDatatypeRuleToken iv_ruleUnaryOp = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2509:2: (iv_ruleUnaryOp= ruleUnaryOp EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2510:2: iv_ruleUnaryOp= ruleUnaryOp EOF { newCompositeNode(grammarAccess.getUnaryOpRule()); pushFollow(FOLLOW_ruleUnaryOp_in_entryRuleUnaryOp5429); iv_ruleUnaryOp=ruleUnaryOp(); state._fsp--; current =iv_ruleUnaryOp.getText(); match(input,EOF,FOLLOW_EOF_in_entryRuleUnaryOp5440); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleUnaryOp" // $ANTLR start "ruleUnaryOp" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2517:1: ruleUnaryOp returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' | kw= '!' | kw= '^' | kw= '~' ) ; public final AntlrDatatypeRuleToken ruleUnaryOp() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); Token kw=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2520:28: ( (kw= '+' | kw= '-' | kw= '!' | kw= '^' | kw= '~' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2521:1: (kw= '+' | kw= '-' | kw= '!' | kw= '^' | kw= '~' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2521:1: (kw= '+' | kw= '-' | kw= '!' | kw= '^' | kw= '~' ) int alt52=5; switch ( input.LA(1) ) { case 65: { alt52=1; } break; case 66: { alt52=2; } break; case 69: { alt52=3; } break; case 70: { alt52=4; } break; case 71: { alt52=5; } break; default: NoViableAltException nvae = new NoViableAltException("", 52, 0, input); throw nvae; } switch (alt52) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2522:2: kw= '+' { kw=(Token)match(input,65,FOLLOW_65_in_ruleUnaryOp5478); current.merge(kw); newLeafNode(kw, grammarAccess.getUnaryOpAccess().getPlusSignKeyword_0()); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2529:2: kw= '-' { kw=(Token)match(input,66,FOLLOW_66_in_ruleUnaryOp5497); current.merge(kw); newLeafNode(kw, grammarAccess.getUnaryOpAccess().getHyphenMinusKeyword_1()); } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2536:2: kw= '!' { kw=(Token)match(input,69,FOLLOW_69_in_ruleUnaryOp5516); current.merge(kw); newLeafNode(kw, grammarAccess.getUnaryOpAccess().getExclamationMarkKeyword_2()); } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2543:2: kw= '^' { kw=(Token)match(input,70,FOLLOW_70_in_ruleUnaryOp5535); current.merge(kw); newLeafNode(kw, grammarAccess.getUnaryOpAccess().getCircumflexAccentKeyword_3()); } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2550:2: kw= '~' { kw=(Token)match(input,71,FOLLOW_71_in_ruleUnaryOp5554); current.merge(kw); newLeafNode(kw, grammarAccess.getUnaryOpAccess().getTildeKeyword_4()); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleUnaryOp" // $ANTLR start "entryRuleType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2563:1: entryRuleType returns [EObject current=null] : iv_ruleType= ruleType EOF ; public final EObject entryRuleType() throws RecognitionException { EObject current = null; EObject iv_ruleType = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2564:2: (iv_ruleType= ruleType EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2565:2: iv_ruleType= ruleType EOF { newCompositeNode(grammarAccess.getTypeRule()); pushFollow(FOLLOW_ruleType_in_entryRuleType5594); iv_ruleType=ruleType(); state._fsp--; current =iv_ruleType; match(input,EOF,FOLLOW_EOF_in_entryRuleType5604); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleType" // $ANTLR start "ruleType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2572:1: ruleType returns [EObject current=null] : ( (otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' ) | this_BaseType_10= ruleBaseType ) ; public final EObject ruleType() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; Token otherlv_4=null; Token otherlv_5=null; Token otherlv_7=null; Token otherlv_9=null; EObject lv_base_3_0 = null; EObject lv_base_8_0 = null; EObject this_BaseType_10 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2575:28: ( ( (otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' ) | this_BaseType_10= ruleBaseType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2576:1: ( (otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' ) | this_BaseType_10= ruleBaseType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2576:1: ( (otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' ) | this_BaseType_10= ruleBaseType ) int alt53=3; switch ( input.LA(1) ) { case 46: { alt53=1; } break; case 47: { alt53=2; } break; case RULE_ID: case 39: case 42: case 43: case 60: { alt53=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 53, 0, input); throw nvae; } switch (alt53) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2576:2: (otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2576:2: (otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2576:4: otherlv_0= 'Seq' () otherlv_2= '[' ( (lv_base_3_0= ruleType ) ) otherlv_4= ']' { otherlv_0=(Token)match(input,46,FOLLOW_46_in_ruleType5642); newLeafNode(otherlv_0, grammarAccess.getTypeAccess().getSeqKeyword_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2580:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2581:5: { current = forceCreateModelElement( grammarAccess.getTypeAccess().getSeqTypeAction_0_1(), current); } otherlv_2=(Token)match(input,40,FOLLOW_40_in_ruleType5663); newLeafNode(otherlv_2, grammarAccess.getTypeAccess().getLeftSquareBracketKeyword_0_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2590:1: ( (lv_base_3_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2591:1: (lv_base_3_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2591:1: (lv_base_3_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2592:3: lv_base_3_0= ruleType { newCompositeNode(grammarAccess.getTypeAccess().getBaseTypeParserRuleCall_0_3_0()); pushFollow(FOLLOW_ruleType_in_ruleType5684); lv_base_3_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getTypeRule()); } set( current, "base", lv_base_3_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_4=(Token)match(input,41,FOLLOW_41_in_ruleType5696); newLeafNode(otherlv_4, grammarAccess.getTypeAccess().getRightSquareBracketKeyword_0_4()); } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2613:6: (otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2613:6: (otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2613:8: otherlv_5= 'Set' () otherlv_7= '[' ( (lv_base_8_0= ruleType ) ) otherlv_9= ']' { otherlv_5=(Token)match(input,47,FOLLOW_47_in_ruleType5716); newLeafNode(otherlv_5, grammarAccess.getTypeAccess().getSetKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2617:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2618:5: { current = forceCreateModelElement( grammarAccess.getTypeAccess().getSetTypeAction_1_1(), current); } otherlv_7=(Token)match(input,40,FOLLOW_40_in_ruleType5737); newLeafNode(otherlv_7, grammarAccess.getTypeAccess().getLeftSquareBracketKeyword_1_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2627:1: ( (lv_base_8_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2628:1: (lv_base_8_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2628:1: (lv_base_8_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2629:3: lv_base_8_0= ruleType { newCompositeNode(grammarAccess.getTypeAccess().getBaseTypeParserRuleCall_1_3_0()); pushFollow(FOLLOW_ruleType_in_ruleType5758); lv_base_8_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getTypeRule()); } set( current, "base", lv_base_8_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_9=(Token)match(input,41,FOLLOW_41_in_ruleType5770); newLeafNode(otherlv_9, grammarAccess.getTypeAccess().getRightSquareBracketKeyword_1_4()); } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2651:5: this_BaseType_10= ruleBaseType { newCompositeNode(grammarAccess.getTypeAccess().getBaseTypeParserRuleCall_2()); pushFollow(FOLLOW_ruleBaseType_in_ruleType5799); this_BaseType_10=ruleBaseType(); state._fsp--; current = this_BaseType_10; afterParserOrEnumRuleCall(); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleType" // $ANTLR start "entryRuleBaseType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2667:1: entryRuleBaseType returns [EObject current=null] : iv_ruleBaseType= ruleBaseType EOF ; public final EObject entryRuleBaseType() throws RecognitionException { EObject current = null; EObject iv_ruleBaseType = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2668:2: (iv_ruleBaseType= ruleBaseType EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2669:2: iv_ruleBaseType= ruleBaseType EOF { newCompositeNode(grammarAccess.getBaseTypeRule()); pushFollow(FOLLOW_ruleBaseType_in_entryRuleBaseType5834); iv_ruleBaseType=ruleBaseType(); state._fsp--; current =iv_ruleBaseType; match(input,EOF,FOLLOW_EOF_in_entryRuleBaseType5844); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleBaseType" // $ANTLR start "ruleBaseType" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2676:1: ruleBaseType returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) | (otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' ) | (otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' ) | (otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' ) | (otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' ) ) ; public final EObject ruleBaseType() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_1=null; Token otherlv_4=null; Token otherlv_6=null; Token otherlv_7=null; Token otherlv_9=null; Token otherlv_11=null; Token otherlv_12=null; Token otherlv_14=null; Token otherlv_16=null; Token otherlv_17=null; Token otherlv_19=null; Token otherlv_21=null; EObject lv_elemTypes_3_0 = null; EObject lv_elemTypes_5_0 = null; EObject lv_base_10_0 = null; EObject lv_base_15_0 = null; EObject lv_base_20_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2679:28: ( ( ( (otherlv_0= RULE_ID ) ) | (otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' ) | (otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' ) | (otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' ) | (otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2680:1: ( ( (otherlv_0= RULE_ID ) ) | (otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' ) | (otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' ) | (otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' ) | (otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2680:1: ( ( (otherlv_0= RULE_ID ) ) | (otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' ) | (otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' ) | (otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' ) | (otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' ) ) int alt55=5; switch ( input.LA(1) ) { case RULE_ID: { alt55=1; } break; case 60: { alt55=2; } break; case 39: { alt55=3; } break; case 43: { alt55=4; } break; case 42: { alt55=5; } break; default: NoViableAltException nvae = new NoViableAltException("", 55, 0, input); throw nvae; } switch (alt55) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2680:2: ( (otherlv_0= RULE_ID ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2680:2: ( (otherlv_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2681:1: (otherlv_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2681:1: (otherlv_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2682:3: otherlv_0= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getBaseTypeRule()); } otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBaseType5889); newLeafNode(otherlv_0, grammarAccess.getBaseTypeAccess().getTypeTypeDeclCrossReference_0_0()); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2694:6: (otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2694:6: (otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2694:8: otherlv_1= '<' () ( (lv_elemTypes_3_0= ruleType ) ) (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ otherlv_6= '>' { otherlv_1=(Token)match(input,60,FOLLOW_60_in_ruleBaseType5908); newLeafNode(otherlv_1, grammarAccess.getBaseTypeAccess().getLessThanSignKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2698:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2699:5: { current = forceCreateModelElement( grammarAccess.getBaseTypeAccess().getTupleTypeAction_1_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2704:2: ( (lv_elemTypes_3_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2705:1: (lv_elemTypes_3_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2705:1: (lv_elemTypes_3_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2706:3: lv_elemTypes_3_0= ruleType { newCompositeNode(grammarAccess.getBaseTypeAccess().getElemTypesTypeParserRuleCall_1_2_0()); pushFollow(FOLLOW_ruleType_in_ruleBaseType5938); lv_elemTypes_3_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getBaseTypeRule()); } add( current, "elemTypes", lv_elemTypes_3_0, "Type"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2722:2: (otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) )+ int cnt54=0; loop54: do { int alt54=2; int LA54_0 = input.LA(1); if ( (LA54_0==51) ) { alt54=1; } switch (alt54) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2722:4: otherlv_4= '*' ( (lv_elemTypes_5_0= ruleType ) ) { otherlv_4=(Token)match(input,51,FOLLOW_51_in_ruleBaseType5951); newLeafNode(otherlv_4, grammarAccess.getBaseTypeAccess().getAsteriskKeyword_1_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2726:1: ( (lv_elemTypes_5_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2727:1: (lv_elemTypes_5_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2727:1: (lv_elemTypes_5_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2728:3: lv_elemTypes_5_0= ruleType { newCompositeNode(grammarAccess.getBaseTypeAccess().getElemTypesTypeParserRuleCall_1_3_1_0()); pushFollow(FOLLOW_ruleType_in_ruleBaseType5972); lv_elemTypes_5_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getBaseTypeRule()); } add( current, "elemTypes", lv_elemTypes_5_0, "Type"); afterParserOrEnumRuleCall(); } } } break; default : if ( cnt54 >= 1 ) break loop54; EarlyExitException eee = new EarlyExitException(54, input); throw eee; } cnt54++; } while (true); otherlv_6=(Token)match(input,59,FOLLOW_59_in_ruleBaseType5986); newLeafNode(otherlv_6, grammarAccess.getBaseTypeAccess().getGreaterThanSignKeyword_1_4()); } } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2749:6: (otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2749:6: (otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2749:8: otherlv_7= 'Option' () otherlv_9= '[' ( (lv_base_10_0= ruleType ) ) otherlv_11= ']' { otherlv_7=(Token)match(input,39,FOLLOW_39_in_ruleBaseType6006); newLeafNode(otherlv_7, grammarAccess.getBaseTypeAccess().getOptionKeyword_2_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2753:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2754:5: { current = forceCreateModelElement( grammarAccess.getBaseTypeAccess().getOptionTypeAction_2_1(), current); } otherlv_9=(Token)match(input,40,FOLLOW_40_in_ruleBaseType6027); newLeafNode(otherlv_9, grammarAccess.getBaseTypeAccess().getLeftSquareBracketKeyword_2_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2763:1: ( (lv_base_10_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2764:1: (lv_base_10_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2764:1: (lv_base_10_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2765:3: lv_base_10_0= ruleType { newCompositeNode(grammarAccess.getBaseTypeAccess().getBaseTypeParserRuleCall_2_3_0()); pushFollow(FOLLOW_ruleType_in_ruleBaseType6048); lv_base_10_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getBaseTypeRule()); } set( current, "base", lv_base_10_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_11=(Token)match(input,41,FOLLOW_41_in_ruleBaseType6060); newLeafNode(otherlv_11, grammarAccess.getBaseTypeAccess().getRightSquareBracketKeyword_2_4()); } } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2786:6: (otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2786:6: (otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2786:8: otherlv_12= 'Some' () otherlv_14= '[' ( (lv_base_15_0= ruleType ) ) otherlv_16= ']' { otherlv_12=(Token)match(input,43,FOLLOW_43_in_ruleBaseType6080); newLeafNode(otherlv_12, grammarAccess.getBaseTypeAccess().getSomeKeyword_3_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2790:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2791:5: { current = forceCreateModelElement( grammarAccess.getBaseTypeAccess().getSomeTypeAction_3_1(), current); } otherlv_14=(Token)match(input,40,FOLLOW_40_in_ruleBaseType6101); newLeafNode(otherlv_14, grammarAccess.getBaseTypeAccess().getLeftSquareBracketKeyword_3_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2800:1: ( (lv_base_15_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2801:1: (lv_base_15_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2801:1: (lv_base_15_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2802:3: lv_base_15_0= ruleType { newCompositeNode(grammarAccess.getBaseTypeAccess().getBaseTypeParserRuleCall_3_3_0()); pushFollow(FOLLOW_ruleType_in_ruleBaseType6122); lv_base_15_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getBaseTypeRule()); } set( current, "base", lv_base_15_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_16=(Token)match(input,41,FOLLOW_41_in_ruleBaseType6134); newLeafNode(otherlv_16, grammarAccess.getBaseTypeAccess().getRightSquareBracketKeyword_3_4()); } } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2823:6: (otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2823:6: (otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2823:8: otherlv_17= 'None' () otherlv_19= '[' ( (lv_base_20_0= ruleType ) ) otherlv_21= ']' { otherlv_17=(Token)match(input,42,FOLLOW_42_in_ruleBaseType6154); newLeafNode(otherlv_17, grammarAccess.getBaseTypeAccess().getNoneKeyword_4_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2827:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2828:5: { current = forceCreateModelElement( grammarAccess.getBaseTypeAccess().getNoneTypeAction_4_1(), current); } otherlv_19=(Token)match(input,40,FOLLOW_40_in_ruleBaseType6175); newLeafNode(otherlv_19, grammarAccess.getBaseTypeAccess().getLeftSquareBracketKeyword_4_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2837:1: ( (lv_base_20_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2838:1: (lv_base_20_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2838:1: (lv_base_20_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2839:3: lv_base_20_0= ruleType { newCompositeNode(grammarAccess.getBaseTypeAccess().getBaseTypeParserRuleCall_4_3_0()); pushFollow(FOLLOW_ruleType_in_ruleBaseType6196); lv_base_20_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getBaseTypeRule()); } set( current, "base", lv_base_20_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_21=(Token)match(input,41,FOLLOW_41_in_ruleBaseType6208); newLeafNode(otherlv_21, grammarAccess.getBaseTypeAccess().getRightSquareBracketKeyword_4_4()); } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleBaseType" // $ANTLR start "entryRuleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2867:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; public final EObject entryRuleLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2868:2: (iv_ruleLiteral= ruleLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2869:2: iv_ruleLiteral= ruleLiteral EOF { newCompositeNode(grammarAccess.getLiteralRule()); pushFollow(FOLLOW_ruleLiteral_in_entryRuleLiteral6245); iv_ruleLiteral=ruleLiteral(); state._fsp--; current =iv_ruleLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleLiteral6255); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleLiteral" // $ANTLR start "ruleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2876:1: ruleLiteral returns [EObject current=null] : (this_BasicLiteral_0= ruleBasicLiteral | this_TupleLiteral_1= ruleTupleLiteral | this_OptionLiteral_2= ruleOptionLiteral | this_SeqLiteral_3= ruleSeqLiteral | this_SetLiteral_4= ruleSetLiteral ) ; public final EObject ruleLiteral() throws RecognitionException { EObject current = null; EObject this_BasicLiteral_0 = null; EObject this_TupleLiteral_1 = null; EObject this_OptionLiteral_2 = null; EObject this_SeqLiteral_3 = null; EObject this_SetLiteral_4 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2879:28: ( (this_BasicLiteral_0= ruleBasicLiteral | this_TupleLiteral_1= ruleTupleLiteral | this_OptionLiteral_2= ruleOptionLiteral | this_SeqLiteral_3= ruleSeqLiteral | this_SetLiteral_4= ruleSetLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2880:1: (this_BasicLiteral_0= ruleBasicLiteral | this_TupleLiteral_1= ruleTupleLiteral | this_OptionLiteral_2= ruleOptionLiteral | this_SeqLiteral_3= ruleSeqLiteral | this_SetLiteral_4= ruleSetLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2880:1: (this_BasicLiteral_0= ruleBasicLiteral | this_TupleLiteral_1= ruleTupleLiteral | this_OptionLiteral_2= ruleOptionLiteral | this_SeqLiteral_3= ruleSeqLiteral | this_SetLiteral_4= ruleSetLiteral ) int alt56=5; switch ( input.LA(1) ) { case RULE_ID: { alt56=1; } break; case 60: { alt56=2; } break; case 42: case 43: { alt56=3; } break; case 46: { alt56=4; } break; case 47: { alt56=5; } break; default: NoViableAltException nvae = new NoViableAltException("", 56, 0, input); throw nvae; } switch (alt56) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2881:5: this_BasicLiteral_0= ruleBasicLiteral { newCompositeNode(grammarAccess.getLiteralAccess().getBasicLiteralParserRuleCall_0()); pushFollow(FOLLOW_ruleBasicLiteral_in_ruleLiteral6302); this_BasicLiteral_0=ruleBasicLiteral(); state._fsp--; current = this_BasicLiteral_0; afterParserOrEnumRuleCall(); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2891:5: this_TupleLiteral_1= ruleTupleLiteral { newCompositeNode(grammarAccess.getLiteralAccess().getTupleLiteralParserRuleCall_1()); pushFollow(FOLLOW_ruleTupleLiteral_in_ruleLiteral6329); this_TupleLiteral_1=ruleTupleLiteral(); state._fsp--; current = this_TupleLiteral_1; afterParserOrEnumRuleCall(); } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2901:5: this_OptionLiteral_2= ruleOptionLiteral { newCompositeNode(grammarAccess.getLiteralAccess().getOptionLiteralParserRuleCall_2()); pushFollow(FOLLOW_ruleOptionLiteral_in_ruleLiteral6356); this_OptionLiteral_2=ruleOptionLiteral(); state._fsp--; current = this_OptionLiteral_2; afterParserOrEnumRuleCall(); } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2911:5: this_SeqLiteral_3= ruleSeqLiteral { newCompositeNode(grammarAccess.getLiteralAccess().getSeqLiteralParserRuleCall_3()); pushFollow(FOLLOW_ruleSeqLiteral_in_ruleLiteral6383); this_SeqLiteral_3=ruleSeqLiteral(); state._fsp--; current = this_SeqLiteral_3; afterParserOrEnumRuleCall(); } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2921:5: this_SetLiteral_4= ruleSetLiteral { newCompositeNode(grammarAccess.getLiteralAccess().getSetLiteralParserRuleCall_4()); pushFollow(FOLLOW_ruleSetLiteral_in_ruleLiteral6410); this_SetLiteral_4=ruleSetLiteral(); state._fsp--; current = this_SetLiteral_4; afterParserOrEnumRuleCall(); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleLiteral" // $ANTLR start "entryRuleBasicLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2937:1: entryRuleBasicLiteral returns [EObject current=null] : iv_ruleBasicLiteral= ruleBasicLiteral EOF ; public final EObject entryRuleBasicLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleBasicLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2938:2: (iv_ruleBasicLiteral= ruleBasicLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2939:2: iv_ruleBasicLiteral= ruleBasicLiteral EOF { newCompositeNode(grammarAccess.getBasicLiteralRule()); pushFollow(FOLLOW_ruleBasicLiteral_in_entryRuleBasicLiteral6445); iv_ruleBasicLiteral=ruleBasicLiteral(); state._fsp--; current =iv_ruleBasicLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleBasicLiteral6455); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleBasicLiteral" // $ANTLR start "ruleBasicLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2946:1: ruleBasicLiteral returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_lit_1_0= RULE_LIT ) ) ) ; public final EObject ruleBasicLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_lit_1_0=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2949:28: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_lit_1_0= RULE_LIT ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2950:1: ( ( (otherlv_0= RULE_ID ) ) ( (lv_lit_1_0= RULE_LIT ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2950:1: ( ( (otherlv_0= RULE_ID ) ) ( (lv_lit_1_0= RULE_LIT ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2950:2: ( (otherlv_0= RULE_ID ) ) ( (lv_lit_1_0= RULE_LIT ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2950:2: ( (otherlv_0= RULE_ID ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2951:1: (otherlv_0= RULE_ID ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2951:1: (otherlv_0= RULE_ID ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2952:3: otherlv_0= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getBasicLiteralRule()); } otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBasicLiteral6500); newLeafNode(otherlv_0, grammarAccess.getBasicLiteralAccess().getTypeConsTypeDeclCrossReference_0_0()); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2963:2: ( (lv_lit_1_0= RULE_LIT ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2964:1: (lv_lit_1_0= RULE_LIT ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2964:1: (lv_lit_1_0= RULE_LIT ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2965:3: lv_lit_1_0= RULE_LIT { lv_lit_1_0=(Token)match(input,RULE_LIT,FOLLOW_RULE_LIT_in_ruleBasicLiteral6517); newLeafNode(lv_lit_1_0, grammarAccess.getBasicLiteralAccess().getLitLITTerminalRuleCall_1_0()); if (current==null) { current = createModelElement(grammarAccess.getBasicLiteralRule()); } setWithLastConsumed( current, "lit", lv_lit_1_0, "LIT"); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleBasicLiteral" // $ANTLR start "entryRuleTupleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2989:1: entryRuleTupleLiteral returns [EObject current=null] : iv_ruleTupleLiteral= ruleTupleLiteral EOF ; public final EObject entryRuleTupleLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleTupleLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2990:2: (iv_ruleTupleLiteral= ruleTupleLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2991:2: iv_ruleTupleLiteral= ruleTupleLiteral EOF { newCompositeNode(grammarAccess.getTupleLiteralRule()); pushFollow(FOLLOW_ruleTupleLiteral_in_entryRuleTupleLiteral6558); iv_ruleTupleLiteral=ruleTupleLiteral(); state._fsp--; current =iv_ruleTupleLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleTupleLiteral6568); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleTupleLiteral" // $ANTLR start "ruleTupleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:2998:1: ruleTupleLiteral returns [EObject current=null] : (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* )? otherlv_5= '>' ) ; public final EObject ruleTupleLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_3=null; Token otherlv_5=null; EObject lv_elems_2_0 = null; EObject lv_elems_4_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3001:28: ( (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* )? otherlv_5= '>' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3002:1: (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* )? otherlv_5= '>' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3002:1: (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* )? otherlv_5= '>' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3002:3: otherlv_0= '<' () ( ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* )? otherlv_5= '>' { otherlv_0=(Token)match(input,60,FOLLOW_60_in_ruleTupleLiteral6605); newLeafNode(otherlv_0, grammarAccess.getTupleLiteralAccess().getLessThanSignKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3006:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3007:5: { current = forceCreateModelElement( grammarAccess.getTupleLiteralAccess().getTupleLiteralAction_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3012:2: ( ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* )? int alt58=2; int LA58_0 = input.LA(1); if ( (LA58_0==RULE_ID||(LA58_0>=42 && LA58_0<=43)||(LA58_0>=46 && LA58_0<=47)||LA58_0==60) ) { alt58=1; } switch (alt58) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3012:3: ( (lv_elems_2_0= ruleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3012:3: ( (lv_elems_2_0= ruleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3013:1: (lv_elems_2_0= ruleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3013:1: (lv_elems_2_0= ruleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3014:3: lv_elems_2_0= ruleLiteral { newCompositeNode(grammarAccess.getTupleLiteralAccess().getElemsLiteralParserRuleCall_2_0_0()); pushFollow(FOLLOW_ruleLiteral_in_ruleTupleLiteral6636); lv_elems_2_0=ruleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getTupleLiteralRule()); } add( current, "elems", lv_elems_2_0, "Literal"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3030:2: (otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) )* loop57: do { int alt57=2; int LA57_0 = input.LA(1); if ( (LA57_0==45) ) { alt57=1; } switch (alt57) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3030:4: otherlv_3= ',' ( (lv_elems_4_0= ruleLiteral ) ) { otherlv_3=(Token)match(input,45,FOLLOW_45_in_ruleTupleLiteral6649); newLeafNode(otherlv_3, grammarAccess.getTupleLiteralAccess().getCommaKeyword_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3034:1: ( (lv_elems_4_0= ruleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3035:1: (lv_elems_4_0= ruleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3035:1: (lv_elems_4_0= ruleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3036:3: lv_elems_4_0= ruleLiteral { newCompositeNode(grammarAccess.getTupleLiteralAccess().getElemsLiteralParserRuleCall_2_1_1_0()); pushFollow(FOLLOW_ruleLiteral_in_ruleTupleLiteral6670); lv_elems_4_0=ruleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getTupleLiteralRule()); } add( current, "elems", lv_elems_4_0, "Literal"); afterParserOrEnumRuleCall(); } } } break; default : break loop57; } } while (true); } break; } otherlv_5=(Token)match(input,59,FOLLOW_59_in_ruleTupleLiteral6686); newLeafNode(otherlv_5, grammarAccess.getTupleLiteralAccess().getGreaterThanSignKeyword_3()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleTupleLiteral" // $ANTLR start "entryRuleSeqLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3064:1: entryRuleSeqLiteral returns [EObject current=null] : iv_ruleSeqLiteral= ruleSeqLiteral EOF ; public final EObject entryRuleSeqLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSeqLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3065:2: (iv_ruleSeqLiteral= ruleSeqLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3066:2: iv_ruleSeqLiteral= ruleSeqLiteral EOF { newCompositeNode(grammarAccess.getSeqLiteralRule()); pushFollow(FOLLOW_ruleSeqLiteral_in_entryRuleSeqLiteral6722); iv_ruleSeqLiteral=ruleSeqLiteral(); state._fsp--; current =iv_ruleSeqLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSeqLiteral6732); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSeqLiteral" // $ANTLR start "ruleSeqLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3073:1: ruleSeqLiteral returns [EObject current=null] : (otherlv_0= 'Seq' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '[' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= ']' ) ; public final EObject ruleSeqLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_1=null; Token otherlv_3=null; Token otherlv_4=null; Token otherlv_6=null; Token otherlv_8=null; EObject lv_elementType_2_0 = null; EObject lv_elems_5_0 = null; EObject lv_elems_7_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3076:28: ( (otherlv_0= 'Seq' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '[' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= ']' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3077:1: (otherlv_0= 'Seq' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '[' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3077:1: (otherlv_0= 'Seq' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '[' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3077:3: otherlv_0= 'Seq' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '[' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= ']' { otherlv_0=(Token)match(input,46,FOLLOW_46_in_ruleSeqLiteral6769); newLeafNode(otherlv_0, grammarAccess.getSeqLiteralAccess().getSeqKeyword_0()); otherlv_1=(Token)match(input,40,FOLLOW_40_in_ruleSeqLiteral6781); newLeafNode(otherlv_1, grammarAccess.getSeqLiteralAccess().getLeftSquareBracketKeyword_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3085:1: ( (lv_elementType_2_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3086:1: (lv_elementType_2_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3086:1: (lv_elementType_2_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3087:3: lv_elementType_2_0= ruleType { newCompositeNode(grammarAccess.getSeqLiteralAccess().getElementTypeTypeParserRuleCall_2_0()); pushFollow(FOLLOW_ruleType_in_ruleSeqLiteral6802); lv_elementType_2_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSeqLiteralRule()); } set( current, "elementType", lv_elementType_2_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_3=(Token)match(input,41,FOLLOW_41_in_ruleSeqLiteral6814); newLeafNode(otherlv_3, grammarAccess.getSeqLiteralAccess().getRightSquareBracketKeyword_3()); otherlv_4=(Token)match(input,40,FOLLOW_40_in_ruleSeqLiteral6826); newLeafNode(otherlv_4, grammarAccess.getSeqLiteralAccess().getLeftSquareBracketKeyword_4()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3111:1: ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? int alt60=2; int LA60_0 = input.LA(1); if ( (LA60_0==RULE_LIT||LA60_0==23||LA60_0==40||(LA60_0>=42 && LA60_0<=43)||LA60_0==60) ) { alt60=1; } switch (alt60) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3111:2: ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3111:2: ( (lv_elems_5_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3112:1: (lv_elems_5_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3112:1: (lv_elems_5_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3113:3: lv_elems_5_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSeqLiteralAccess().getElemsSimpleLiteralParserRuleCall_5_0_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSeqLiteral6848); lv_elems_5_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSeqLiteralRule()); } add( current, "elems", lv_elems_5_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3129:2: (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* loop59: do { int alt59=2; int LA59_0 = input.LA(1); if ( (LA59_0==45) ) { alt59=1; } switch (alt59) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3129:4: otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) { otherlv_6=(Token)match(input,45,FOLLOW_45_in_ruleSeqLiteral6861); newLeafNode(otherlv_6, grammarAccess.getSeqLiteralAccess().getCommaKeyword_5_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3133:1: ( (lv_elems_7_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3134:1: (lv_elems_7_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3134:1: (lv_elems_7_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3135:3: lv_elems_7_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSeqLiteralAccess().getElemsSimpleLiteralParserRuleCall_5_1_1_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSeqLiteral6882); lv_elems_7_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSeqLiteralRule()); } add( current, "elems", lv_elems_7_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } } break; default : break loop59; } } while (true); } break; } otherlv_8=(Token)match(input,41,FOLLOW_41_in_ruleSeqLiteral6898); newLeafNode(otherlv_8, grammarAccess.getSeqLiteralAccess().getRightSquareBracketKeyword_6()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSeqLiteral" // $ANTLR start "entryRuleSetLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3163:1: entryRuleSetLiteral returns [EObject current=null] : iv_ruleSetLiteral= ruleSetLiteral EOF ; public final EObject entryRuleSetLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSetLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3164:2: (iv_ruleSetLiteral= ruleSetLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3165:2: iv_ruleSetLiteral= ruleSetLiteral EOF { newCompositeNode(grammarAccess.getSetLiteralRule()); pushFollow(FOLLOW_ruleSetLiteral_in_entryRuleSetLiteral6934); iv_ruleSetLiteral=ruleSetLiteral(); state._fsp--; current =iv_ruleSetLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSetLiteral6944); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSetLiteral" // $ANTLR start "ruleSetLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3172:1: ruleSetLiteral returns [EObject current=null] : (otherlv_0= 'Set' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '{' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= '}' ) ; public final EObject ruleSetLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_1=null; Token otherlv_3=null; Token otherlv_4=null; Token otherlv_6=null; Token otherlv_8=null; EObject lv_elementType_2_0 = null; EObject lv_elems_5_0 = null; EObject lv_elems_7_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3175:28: ( (otherlv_0= 'Set' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '{' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= '}' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3176:1: (otherlv_0= 'Set' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '{' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= '}' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3176:1: (otherlv_0= 'Set' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '{' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= '}' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3176:3: otherlv_0= 'Set' otherlv_1= '[' ( (lv_elementType_2_0= ruleType ) ) otherlv_3= ']' otherlv_4= '{' ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? otherlv_8= '}' { otherlv_0=(Token)match(input,47,FOLLOW_47_in_ruleSetLiteral6981); newLeafNode(otherlv_0, grammarAccess.getSetLiteralAccess().getSetKeyword_0()); otherlv_1=(Token)match(input,40,FOLLOW_40_in_ruleSetLiteral6993); newLeafNode(otherlv_1, grammarAccess.getSetLiteralAccess().getLeftSquareBracketKeyword_1()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3184:1: ( (lv_elementType_2_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3185:1: (lv_elementType_2_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3185:1: (lv_elementType_2_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3186:3: lv_elementType_2_0= ruleType { newCompositeNode(grammarAccess.getSetLiteralAccess().getElementTypeTypeParserRuleCall_2_0()); pushFollow(FOLLOW_ruleType_in_ruleSetLiteral7014); lv_elementType_2_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSetLiteralRule()); } set( current, "elementType", lv_elementType_2_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_3=(Token)match(input,41,FOLLOW_41_in_ruleSetLiteral7026); newLeafNode(otherlv_3, grammarAccess.getSetLiteralAccess().getRightSquareBracketKeyword_3()); otherlv_4=(Token)match(input,23,FOLLOW_23_in_ruleSetLiteral7038); newLeafNode(otherlv_4, grammarAccess.getSetLiteralAccess().getLeftCurlyBracketKeyword_4()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3210:1: ( ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* )? int alt62=2; int LA62_0 = input.LA(1); if ( (LA62_0==RULE_LIT||LA62_0==23||LA62_0==40||(LA62_0>=42 && LA62_0<=43)||LA62_0==60) ) { alt62=1; } switch (alt62) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3210:2: ( (lv_elems_5_0= ruleSimpleLiteral ) ) (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3210:2: ( (lv_elems_5_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3211:1: (lv_elems_5_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3211:1: (lv_elems_5_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3212:3: lv_elems_5_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSetLiteralAccess().getElemsSimpleLiteralParserRuleCall_5_0_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSetLiteral7060); lv_elems_5_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSetLiteralRule()); } add( current, "elems", lv_elems_5_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3228:2: (otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) )* loop61: do { int alt61=2; int LA61_0 = input.LA(1); if ( (LA61_0==45) ) { alt61=1; } switch (alt61) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3228:4: otherlv_6= ',' ( (lv_elems_7_0= ruleSimpleLiteral ) ) { otherlv_6=(Token)match(input,45,FOLLOW_45_in_ruleSetLiteral7073); newLeafNode(otherlv_6, grammarAccess.getSetLiteralAccess().getCommaKeyword_5_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3232:1: ( (lv_elems_7_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3233:1: (lv_elems_7_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3233:1: (lv_elems_7_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3234:3: lv_elems_7_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSetLiteralAccess().getElemsSimpleLiteralParserRuleCall_5_1_1_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSetLiteral7094); lv_elems_7_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSetLiteralRule()); } add( current, "elems", lv_elems_7_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } } break; default : break loop61; } } while (true); } break; } otherlv_8=(Token)match(input,24,FOLLOW_24_in_ruleSetLiteral7110); newLeafNode(otherlv_8, grammarAccess.getSetLiteralAccess().getRightCurlyBracketKeyword_6()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSetLiteral" // $ANTLR start "entryRuleOptionLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3262:1: entryRuleOptionLiteral returns [EObject current=null] : iv_ruleOptionLiteral= ruleOptionLiteral EOF ; public final EObject entryRuleOptionLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleOptionLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3263:2: (iv_ruleOptionLiteral= ruleOptionLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3264:2: iv_ruleOptionLiteral= ruleOptionLiteral EOF { newCompositeNode(grammarAccess.getOptionLiteralRule()); pushFollow(FOLLOW_ruleOptionLiteral_in_entryRuleOptionLiteral7146); iv_ruleOptionLiteral=ruleOptionLiteral(); state._fsp--; current =iv_ruleOptionLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleOptionLiteral7156); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleOptionLiteral" // $ANTLR start "ruleOptionLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3271:1: ruleOptionLiteral returns [EObject current=null] : ( (otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) ) ) ; public final EObject ruleOptionLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; Token otherlv_4=null; Token otherlv_5=null; EObject lv_type_3_0 = null; EObject lv_lit_7_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3274:28: ( ( (otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3275:1: ( (otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3275:1: ( (otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' ) | (otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) ) ) int alt63=2; int LA63_0 = input.LA(1); if ( (LA63_0==42) ) { alt63=1; } else if ( (LA63_0==43) ) { alt63=2; } else { NoViableAltException nvae = new NoViableAltException("", 63, 0, input); throw nvae; } switch (alt63) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3275:2: (otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3275:2: (otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3275:4: otherlv_0= 'None' () otherlv_2= '[' ( (lv_type_3_0= ruleType ) ) otherlv_4= ']' { otherlv_0=(Token)match(input,42,FOLLOW_42_in_ruleOptionLiteral7194); newLeafNode(otherlv_0, grammarAccess.getOptionLiteralAccess().getNoneKeyword_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3279:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3280:5: { current = forceCreateModelElement( grammarAccess.getOptionLiteralAccess().getNoneLiteralAction_0_1(), current); } otherlv_2=(Token)match(input,40,FOLLOW_40_in_ruleOptionLiteral7215); newLeafNode(otherlv_2, grammarAccess.getOptionLiteralAccess().getLeftSquareBracketKeyword_0_2()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3289:1: ( (lv_type_3_0= ruleType ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3290:1: (lv_type_3_0= ruleType ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3290:1: (lv_type_3_0= ruleType ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3291:3: lv_type_3_0= ruleType { newCompositeNode(grammarAccess.getOptionLiteralAccess().getTypeTypeParserRuleCall_0_3_0()); pushFollow(FOLLOW_ruleType_in_ruleOptionLiteral7236); lv_type_3_0=ruleType(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getOptionLiteralRule()); } set( current, "type", lv_type_3_0, "Type"); afterParserOrEnumRuleCall(); } } otherlv_4=(Token)match(input,41,FOLLOW_41_in_ruleOptionLiteral7248); newLeafNode(otherlv_4, grammarAccess.getOptionLiteralAccess().getRightSquareBracketKeyword_0_4()); } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3312:6: (otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3312:6: (otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3312:8: otherlv_5= 'Some' () ( (lv_lit_7_0= ruleLiteral ) ) { otherlv_5=(Token)match(input,43,FOLLOW_43_in_ruleOptionLiteral7268); newLeafNode(otherlv_5, grammarAccess.getOptionLiteralAccess().getSomeKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3316:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3317:5: { current = forceCreateModelElement( grammarAccess.getOptionLiteralAccess().getSomeLiteralAction_1_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3322:2: ( (lv_lit_7_0= ruleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3323:1: (lv_lit_7_0= ruleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3323:1: (lv_lit_7_0= ruleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3324:3: lv_lit_7_0= ruleLiteral { newCompositeNode(grammarAccess.getOptionLiteralAccess().getLitLiteralParserRuleCall_1_2_0()); pushFollow(FOLLOW_ruleLiteral_in_ruleOptionLiteral7298); lv_lit_7_0=ruleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getOptionLiteralRule()); } set( current, "lit", lv_lit_7_0, "Literal"); afterParserOrEnumRuleCall(); } } } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleOptionLiteral" // $ANTLR start "entryRuleSimpleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3348:1: entryRuleSimpleLiteral returns [EObject current=null] : iv_ruleSimpleLiteral= ruleSimpleLiteral EOF ; public final EObject entryRuleSimpleLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSimpleLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3349:2: (iv_ruleSimpleLiteral= ruleSimpleLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3350:2: iv_ruleSimpleLiteral= ruleSimpleLiteral EOF { newCompositeNode(grammarAccess.getSimpleLiteralRule()); pushFollow(FOLLOW_ruleSimpleLiteral_in_entryRuleSimpleLiteral7335); iv_ruleSimpleLiteral=ruleSimpleLiteral(); state._fsp--; current =iv_ruleSimpleLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleLiteral7345); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSimpleLiteral" // $ANTLR start "ruleSimpleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3357:1: ruleSimpleLiteral returns [EObject current=null] : (this_SimpleBasicLiteral_0= ruleSimpleBasicLiteral | this_SimpleTupleLiteral_1= ruleSimpleTupleLiteral | this_SimpleSeqLiteral_2= ruleSimpleSeqLiteral | this_SimpleSetLiteral_3= ruleSimpleSetLiteral | this_SimpleOptionLiteral_4= ruleSimpleOptionLiteral ) ; public final EObject ruleSimpleLiteral() throws RecognitionException { EObject current = null; EObject this_SimpleBasicLiteral_0 = null; EObject this_SimpleTupleLiteral_1 = null; EObject this_SimpleSeqLiteral_2 = null; EObject this_SimpleSetLiteral_3 = null; EObject this_SimpleOptionLiteral_4 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3360:28: ( (this_SimpleBasicLiteral_0= ruleSimpleBasicLiteral | this_SimpleTupleLiteral_1= ruleSimpleTupleLiteral | this_SimpleSeqLiteral_2= ruleSimpleSeqLiteral | this_SimpleSetLiteral_3= ruleSimpleSetLiteral | this_SimpleOptionLiteral_4= ruleSimpleOptionLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3361:1: (this_SimpleBasicLiteral_0= ruleSimpleBasicLiteral | this_SimpleTupleLiteral_1= ruleSimpleTupleLiteral | this_SimpleSeqLiteral_2= ruleSimpleSeqLiteral | this_SimpleSetLiteral_3= ruleSimpleSetLiteral | this_SimpleOptionLiteral_4= ruleSimpleOptionLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3361:1: (this_SimpleBasicLiteral_0= ruleSimpleBasicLiteral | this_SimpleTupleLiteral_1= ruleSimpleTupleLiteral | this_SimpleSeqLiteral_2= ruleSimpleSeqLiteral | this_SimpleSetLiteral_3= ruleSimpleSetLiteral | this_SimpleOptionLiteral_4= ruleSimpleOptionLiteral ) int alt64=5; switch ( input.LA(1) ) { case RULE_LIT: { alt64=1; } break; case 60: { alt64=2; } break; case 40: { alt64=3; } break; case 23: { alt64=4; } break; case 42: case 43: { alt64=5; } break; default: NoViableAltException nvae = new NoViableAltException("", 64, 0, input); throw nvae; } switch (alt64) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3362:5: this_SimpleBasicLiteral_0= ruleSimpleBasicLiteral { newCompositeNode(grammarAccess.getSimpleLiteralAccess().getSimpleBasicLiteralParserRuleCall_0()); pushFollow(FOLLOW_ruleSimpleBasicLiteral_in_ruleSimpleLiteral7392); this_SimpleBasicLiteral_0=ruleSimpleBasicLiteral(); state._fsp--; current = this_SimpleBasicLiteral_0; afterParserOrEnumRuleCall(); } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3372:5: this_SimpleTupleLiteral_1= ruleSimpleTupleLiteral { newCompositeNode(grammarAccess.getSimpleLiteralAccess().getSimpleTupleLiteralParserRuleCall_1()); pushFollow(FOLLOW_ruleSimpleTupleLiteral_in_ruleSimpleLiteral7419); this_SimpleTupleLiteral_1=ruleSimpleTupleLiteral(); state._fsp--; current = this_SimpleTupleLiteral_1; afterParserOrEnumRuleCall(); } break; case 3 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3382:5: this_SimpleSeqLiteral_2= ruleSimpleSeqLiteral { newCompositeNode(grammarAccess.getSimpleLiteralAccess().getSimpleSeqLiteralParserRuleCall_2()); pushFollow(FOLLOW_ruleSimpleSeqLiteral_in_ruleSimpleLiteral7446); this_SimpleSeqLiteral_2=ruleSimpleSeqLiteral(); state._fsp--; current = this_SimpleSeqLiteral_2; afterParserOrEnumRuleCall(); } break; case 4 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3392:5: this_SimpleSetLiteral_3= ruleSimpleSetLiteral { newCompositeNode(grammarAccess.getSimpleLiteralAccess().getSimpleSetLiteralParserRuleCall_3()); pushFollow(FOLLOW_ruleSimpleSetLiteral_in_ruleSimpleLiteral7473); this_SimpleSetLiteral_3=ruleSimpleSetLiteral(); state._fsp--; current = this_SimpleSetLiteral_3; afterParserOrEnumRuleCall(); } break; case 5 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3402:5: this_SimpleOptionLiteral_4= ruleSimpleOptionLiteral { newCompositeNode(grammarAccess.getSimpleLiteralAccess().getSimpleOptionLiteralParserRuleCall_4()); pushFollow(FOLLOW_ruleSimpleOptionLiteral_in_ruleSimpleLiteral7500); this_SimpleOptionLiteral_4=ruleSimpleOptionLiteral(); state._fsp--; current = this_SimpleOptionLiteral_4; afterParserOrEnumRuleCall(); } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSimpleLiteral" // $ANTLR start "entryRuleSimpleBasicLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3418:1: entryRuleSimpleBasicLiteral returns [EObject current=null] : iv_ruleSimpleBasicLiteral= ruleSimpleBasicLiteral EOF ; public final EObject entryRuleSimpleBasicLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSimpleBasicLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3419:2: (iv_ruleSimpleBasicLiteral= ruleSimpleBasicLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3420:2: iv_ruleSimpleBasicLiteral= ruleSimpleBasicLiteral EOF { newCompositeNode(grammarAccess.getSimpleBasicLiteralRule()); pushFollow(FOLLOW_ruleSimpleBasicLiteral_in_entryRuleSimpleBasicLiteral7535); iv_ruleSimpleBasicLiteral=ruleSimpleBasicLiteral(); state._fsp--; current =iv_ruleSimpleBasicLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleBasicLiteral7545); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSimpleBasicLiteral" // $ANTLR start "ruleSimpleBasicLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3427:1: ruleSimpleBasicLiteral returns [EObject current=null] : ( (lv_lit_0_0= RULE_LIT ) ) ; public final EObject ruleSimpleBasicLiteral() throws RecognitionException { EObject current = null; Token lv_lit_0_0=null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3430:28: ( ( (lv_lit_0_0= RULE_LIT ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3431:1: ( (lv_lit_0_0= RULE_LIT ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3431:1: ( (lv_lit_0_0= RULE_LIT ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3432:1: (lv_lit_0_0= RULE_LIT ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3432:1: (lv_lit_0_0= RULE_LIT ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3433:3: lv_lit_0_0= RULE_LIT { lv_lit_0_0=(Token)match(input,RULE_LIT,FOLLOW_RULE_LIT_in_ruleSimpleBasicLiteral7586); newLeafNode(lv_lit_0_0, grammarAccess.getSimpleBasicLiteralAccess().getLitLITTerminalRuleCall_0()); if (current==null) { current = createModelElement(grammarAccess.getSimpleBasicLiteralRule()); } setWithLastConsumed( current, "lit", lv_lit_0_0, "LIT"); } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSimpleBasicLiteral" // $ANTLR start "entryRuleSimpleTupleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3457:1: entryRuleSimpleTupleLiteral returns [EObject current=null] : iv_ruleSimpleTupleLiteral= ruleSimpleTupleLiteral EOF ; public final EObject entryRuleSimpleTupleLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSimpleTupleLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3458:2: (iv_ruleSimpleTupleLiteral= ruleSimpleTupleLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3459:2: iv_ruleSimpleTupleLiteral= ruleSimpleTupleLiteral EOF { newCompositeNode(grammarAccess.getSimpleTupleLiteralRule()); pushFollow(FOLLOW_ruleSimpleTupleLiteral_in_entryRuleSimpleTupleLiteral7626); iv_ruleSimpleTupleLiteral=ruleSimpleTupleLiteral(); state._fsp--; current =iv_ruleSimpleTupleLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleTupleLiteral7636); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSimpleTupleLiteral" // $ANTLR start "ruleSimpleTupleLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3466:1: ruleSimpleTupleLiteral returns [EObject current=null] : (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '>' ) ; public final EObject ruleSimpleTupleLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_3=null; Token otherlv_5=null; EObject lv_elems_2_0 = null; EObject lv_elems_4_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3469:28: ( (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '>' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3470:1: (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '>' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3470:1: (otherlv_0= '<' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '>' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3470:3: otherlv_0= '<' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '>' { otherlv_0=(Token)match(input,60,FOLLOW_60_in_ruleSimpleTupleLiteral7673); newLeafNode(otherlv_0, grammarAccess.getSimpleTupleLiteralAccess().getLessThanSignKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3474:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3475:5: { current = forceCreateModelElement( grammarAccess.getSimpleTupleLiteralAccess().getSimpleTupleLiteralAction_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3480:2: ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? int alt66=2; int LA66_0 = input.LA(1); if ( (LA66_0==RULE_LIT||LA66_0==23||LA66_0==40||(LA66_0>=42 && LA66_0<=43)||LA66_0==60) ) { alt66=1; } switch (alt66) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3480:3: ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3480:3: ( (lv_elems_2_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3481:1: (lv_elems_2_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3481:1: (lv_elems_2_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3482:3: lv_elems_2_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleTupleLiteralAccess().getElemsSimpleLiteralParserRuleCall_2_0_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleTupleLiteral7704); lv_elems_2_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleTupleLiteralRule()); } add( current, "elems", lv_elems_2_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3498:2: (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* loop65: do { int alt65=2; int LA65_0 = input.LA(1); if ( (LA65_0==45) ) { alt65=1; } switch (alt65) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3498:4: otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) { otherlv_3=(Token)match(input,45,FOLLOW_45_in_ruleSimpleTupleLiteral7717); newLeafNode(otherlv_3, grammarAccess.getSimpleTupleLiteralAccess().getCommaKeyword_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3502:1: ( (lv_elems_4_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3503:1: (lv_elems_4_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3503:1: (lv_elems_4_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3504:3: lv_elems_4_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleTupleLiteralAccess().getElemsSimpleLiteralParserRuleCall_2_1_1_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleTupleLiteral7738); lv_elems_4_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleTupleLiteralRule()); } add( current, "elems", lv_elems_4_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } } break; default : break loop65; } } while (true); } break; } otherlv_5=(Token)match(input,59,FOLLOW_59_in_ruleSimpleTupleLiteral7754); newLeafNode(otherlv_5, grammarAccess.getSimpleTupleLiteralAccess().getGreaterThanSignKeyword_3()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSimpleTupleLiteral" // $ANTLR start "entryRuleSimpleOptionLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3532:1: entryRuleSimpleOptionLiteral returns [EObject current=null] : iv_ruleSimpleOptionLiteral= ruleSimpleOptionLiteral EOF ; public final EObject entryRuleSimpleOptionLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSimpleOptionLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3533:2: (iv_ruleSimpleOptionLiteral= ruleSimpleOptionLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3534:2: iv_ruleSimpleOptionLiteral= ruleSimpleOptionLiteral EOF { newCompositeNode(grammarAccess.getSimpleOptionLiteralRule()); pushFollow(FOLLOW_ruleSimpleOptionLiteral_in_entryRuleSimpleOptionLiteral7790); iv_ruleSimpleOptionLiteral=ruleSimpleOptionLiteral(); state._fsp--; current =iv_ruleSimpleOptionLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleOptionLiteral7800); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSimpleOptionLiteral" // $ANTLR start "ruleSimpleOptionLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3541:1: ruleSimpleOptionLiteral returns [EObject current=null] : ( (otherlv_0= 'None' () ) | (otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) ) ) ; public final EObject ruleSimpleOptionLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; EObject lv_lit_4_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3544:28: ( ( (otherlv_0= 'None' () ) | (otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3545:1: ( (otherlv_0= 'None' () ) | (otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3545:1: ( (otherlv_0= 'None' () ) | (otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) ) ) int alt67=2; int LA67_0 = input.LA(1); if ( (LA67_0==42) ) { alt67=1; } else if ( (LA67_0==43) ) { alt67=2; } else { NoViableAltException nvae = new NoViableAltException("", 67, 0, input); throw nvae; } switch (alt67) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3545:2: (otherlv_0= 'None' () ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3545:2: (otherlv_0= 'None' () ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3545:4: otherlv_0= 'None' () { otherlv_0=(Token)match(input,42,FOLLOW_42_in_ruleSimpleOptionLiteral7838); newLeafNode(otherlv_0, grammarAccess.getSimpleOptionLiteralAccess().getNoneKeyword_0_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3549:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3550:5: { current = forceCreateModelElement( grammarAccess.getSimpleOptionLiteralAccess().getSimpleNoneLiteralAction_0_1(), current); } } } break; case 2 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3556:6: (otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3556:6: (otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3556:8: otherlv_2= 'Some' () ( (lv_lit_4_0= ruleSimpleLiteral ) ) { otherlv_2=(Token)match(input,43,FOLLOW_43_in_ruleSimpleOptionLiteral7867); newLeafNode(otherlv_2, grammarAccess.getSimpleOptionLiteralAccess().getSomeKeyword_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3560:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3561:5: { current = forceCreateModelElement( grammarAccess.getSimpleOptionLiteralAccess().getSimpleSomeLiteralAction_1_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3566:2: ( (lv_lit_4_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3567:1: (lv_lit_4_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3567:1: (lv_lit_4_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3568:3: lv_lit_4_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleOptionLiteralAccess().getLitSimpleLiteralParserRuleCall_1_2_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleOptionLiteral7897); lv_lit_4_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleOptionLiteralRule()); } set( current, "lit", lv_lit_4_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } } } break; } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSimpleOptionLiteral" // $ANTLR start "entryRuleSimpleSeqLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3592:1: entryRuleSimpleSeqLiteral returns [EObject current=null] : iv_ruleSimpleSeqLiteral= ruleSimpleSeqLiteral EOF ; public final EObject entryRuleSimpleSeqLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSimpleSeqLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3593:2: (iv_ruleSimpleSeqLiteral= ruleSimpleSeqLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3594:2: iv_ruleSimpleSeqLiteral= ruleSimpleSeqLiteral EOF { newCompositeNode(grammarAccess.getSimpleSeqLiteralRule()); pushFollow(FOLLOW_ruleSimpleSeqLiteral_in_entryRuleSimpleSeqLiteral7934); iv_ruleSimpleSeqLiteral=ruleSimpleSeqLiteral(); state._fsp--; current =iv_ruleSimpleSeqLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleSeqLiteral7944); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSimpleSeqLiteral" // $ANTLR start "ruleSimpleSeqLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3601:1: ruleSimpleSeqLiteral returns [EObject current=null] : (otherlv_0= '[' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= ']' ) ; public final EObject ruleSimpleSeqLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_3=null; Token otherlv_5=null; EObject lv_elems_2_0 = null; EObject lv_elems_4_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3604:28: ( (otherlv_0= '[' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= ']' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3605:1: (otherlv_0= '[' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= ']' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3605:1: (otherlv_0= '[' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= ']' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3605:3: otherlv_0= '[' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= ']' { otherlv_0=(Token)match(input,40,FOLLOW_40_in_ruleSimpleSeqLiteral7981); newLeafNode(otherlv_0, grammarAccess.getSimpleSeqLiteralAccess().getLeftSquareBracketKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3609:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3610:5: { current = forceCreateModelElement( grammarAccess.getSimpleSeqLiteralAccess().getSimpleSeqLiteralAction_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3615:2: ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? int alt69=2; int LA69_0 = input.LA(1); if ( (LA69_0==RULE_LIT||LA69_0==23||LA69_0==40||(LA69_0>=42 && LA69_0<=43)||LA69_0==60) ) { alt69=1; } switch (alt69) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3615:3: ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3615:3: ( (lv_elems_2_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3616:1: (lv_elems_2_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3616:1: (lv_elems_2_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3617:3: lv_elems_2_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleSeqLiteralAccess().getElemsSimpleLiteralParserRuleCall_2_0_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleSeqLiteral8012); lv_elems_2_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleSeqLiteralRule()); } add( current, "elems", lv_elems_2_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3633:2: (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* loop68: do { int alt68=2; int LA68_0 = input.LA(1); if ( (LA68_0==45) ) { alt68=1; } switch (alt68) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3633:4: otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) { otherlv_3=(Token)match(input,45,FOLLOW_45_in_ruleSimpleSeqLiteral8025); newLeafNode(otherlv_3, grammarAccess.getSimpleSeqLiteralAccess().getCommaKeyword_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3637:1: ( (lv_elems_4_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3638:1: (lv_elems_4_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3638:1: (lv_elems_4_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3639:3: lv_elems_4_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleSeqLiteralAccess().getElemsSimpleLiteralParserRuleCall_2_1_1_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleSeqLiteral8046); lv_elems_4_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleSeqLiteralRule()); } add( current, "elems", lv_elems_4_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } } break; default : break loop68; } } while (true); } break; } otherlv_5=(Token)match(input,41,FOLLOW_41_in_ruleSimpleSeqLiteral8062); newLeafNode(otherlv_5, grammarAccess.getSimpleSeqLiteralAccess().getRightSquareBracketKeyword_3()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSimpleSeqLiteral" // $ANTLR start "entryRuleSimpleSetLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3667:1: entryRuleSimpleSetLiteral returns [EObject current=null] : iv_ruleSimpleSetLiteral= ruleSimpleSetLiteral EOF ; public final EObject entryRuleSimpleSetLiteral() throws RecognitionException { EObject current = null; EObject iv_ruleSimpleSetLiteral = null; try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3668:2: (iv_ruleSimpleSetLiteral= ruleSimpleSetLiteral EOF ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3669:2: iv_ruleSimpleSetLiteral= ruleSimpleSetLiteral EOF { newCompositeNode(grammarAccess.getSimpleSetLiteralRule()); pushFollow(FOLLOW_ruleSimpleSetLiteral_in_entryRuleSimpleSetLiteral8098); iv_ruleSimpleSetLiteral=ruleSimpleSetLiteral(); state._fsp--; current =iv_ruleSimpleSetLiteral; match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleSetLiteral8108); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSimpleSetLiteral" // $ANTLR start "ruleSimpleSetLiteral" // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3676:1: ruleSimpleSetLiteral returns [EObject current=null] : (otherlv_0= '{' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '}' ) ; public final EObject ruleSimpleSetLiteral() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_3=null; Token otherlv_5=null; EObject lv_elems_2_0 = null; EObject lv_elems_4_0 = null; enterRule(); try { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3679:28: ( (otherlv_0= '{' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '}' ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3680:1: (otherlv_0= '{' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '}' ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3680:1: (otherlv_0= '{' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '}' ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3680:3: otherlv_0= '{' () ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? otherlv_5= '}' { otherlv_0=(Token)match(input,23,FOLLOW_23_in_ruleSimpleSetLiteral8145); newLeafNode(otherlv_0, grammarAccess.getSimpleSetLiteralAccess().getLeftCurlyBracketKeyword_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3684:1: () // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3685:5: { current = forceCreateModelElement( grammarAccess.getSimpleSetLiteralAccess().getSimpleSetLiteralAction_1(), current); } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3690:2: ( ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* )? int alt71=2; int LA71_0 = input.LA(1); if ( (LA71_0==RULE_LIT||LA71_0==23||LA71_0==40||(LA71_0>=42 && LA71_0<=43)||LA71_0==60) ) { alt71=1; } switch (alt71) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3690:3: ( (lv_elems_2_0= ruleSimpleLiteral ) ) (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3690:3: ( (lv_elems_2_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3691:1: (lv_elems_2_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3691:1: (lv_elems_2_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3692:3: lv_elems_2_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleSetLiteralAccess().getElemsSimpleLiteralParserRuleCall_2_0_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleSetLiteral8176); lv_elems_2_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleSetLiteralRule()); } add( current, "elems", lv_elems_2_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3708:2: (otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) )* loop70: do { int alt70=2; int LA70_0 = input.LA(1); if ( (LA70_0==45) ) { alt70=1; } switch (alt70) { case 1 : // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3708:4: otherlv_3= ',' ( (lv_elems_4_0= ruleSimpleLiteral ) ) { otherlv_3=(Token)match(input,45,FOLLOW_45_in_ruleSimpleSetLiteral8189); newLeafNode(otherlv_3, grammarAccess.getSimpleSetLiteralAccess().getCommaKeyword_2_1_0()); // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3712:1: ( (lv_elems_4_0= ruleSimpleLiteral ) ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3713:1: (lv_elems_4_0= ruleSimpleLiteral ) { // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3713:1: (lv_elems_4_0= ruleSimpleLiteral ) // ../edu.ksu.cis.projects.mdcf.devicemodel/src-gen/edu/ksu/cis/projects/mdcf/devicemodel/parser/antlr/internal/InternalDeviceModelingLanguage.g:3714:3: lv_elems_4_0= ruleSimpleLiteral { newCompositeNode(grammarAccess.getSimpleSetLiteralAccess().getElemsSimpleLiteralParserRuleCall_2_1_1_0()); pushFollow(FOLLOW_ruleSimpleLiteral_in_ruleSimpleSetLiteral8210); lv_elems_4_0=ruleSimpleLiteral(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSimpleSetLiteralRule()); } add( current, "elems", lv_elems_4_0, "SimpleLiteral"); afterParserOrEnumRuleCall(); } } } break; default : break loop70; } } while (true); } break; } otherlv_5=(Token)match(input,24,FOLLOW_24_in_ruleSimpleSetLiteral8226); newLeafNode(otherlv_5, grammarAccess.getSimpleSetLiteralAccess().getRightCurlyBracketKeyword_3()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSimpleSetLiteral" // Delegated rules public static final BitSet FOLLOW_ruleModel_in_entryRuleModel75 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleModel85 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_10_in_ruleModel129 = new BitSet(new long[]{0x0000000000712002L}); public static final BitSet FOLLOW_11_in_ruleModel166 = new BitSet(new long[]{0x0000000000712002L}); public static final BitSet FOLLOW_12_in_ruleModel203 = new BitSet(new long[]{0x0000000000712002L}); public static final BitSet FOLLOW_ruleDecl_in_ruleModel239 = new BitSet(new long[]{0x0000000000712002L}); public static final BitSet FOLLOW_ruleDecl_in_entryRuleDecl276 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleDecl286 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleTypeDecl_in_ruleDecl333 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleFeatureDecl_in_ruleDecl360 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleTypeDecl_in_entryRuleTypeDecl395 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleTypeDecl405 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_13_in_ruleTypeDecl442 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleTypeDecl459 = new BitSet(new long[]{0x0000000000004002L}); public static final BitSet FOLLOW_14_in_ruleTypeDecl477 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleTypeDecl497 = new BitSet(new long[]{0x0000000000008002L}); public static final BitSet FOLLOW_15_in_ruleTypeDecl510 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleTypeDecl530 = new BitSet(new long[]{0x0000000000008002L}); public static final BitSet FOLLOW_ruleFeatureDecl_in_entryRuleFeatureDecl570 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleFeatureDecl580 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_16_in_ruleFeatureDecl619 = new BitSet(new long[]{0x00000000000E0010L}); public static final BitSet FOLLOW_17_in_ruleFeatureDecl647 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_18_in_ruleFeatureDecl684 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_19_in_ruleFeatureDecl721 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_20_in_ruleFeatureDecl756 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_21_in_ruleFeatureDecl785 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_22_in_ruleFeatureDecl814 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleFeatureDecl842 = new BitSet(new long[]{0x0000000002804002L}); public static final BitSet FOLLOW_14_in_ruleFeatureDecl860 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleFeatureDecl880 = new BitSet(new long[]{0x0000000002808002L}); public static final BitSet FOLLOW_15_in_ruleFeatureDecl893 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleFeatureDecl913 = new BitSet(new long[]{0x0000000002808002L}); public static final BitSet FOLLOW_23_in_ruleFeatureDecl930 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_ruleMemberDecl_in_ruleFeatureDecl951 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_24_in_ruleFeatureDecl964 = new BitSet(new long[]{0x0000000002000002L}); public static final BitSet FOLLOW_25_in_ruleFeatureDecl979 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_23_in_ruleFeatureDecl991 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleDevice_in_ruleFeatureDecl1012 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleAssignment_in_ruleFeatureDecl1034 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleFeatureDecl1056 = new BitSet(new long[]{0x0000000001000000L}); public static final BitSet FOLLOW_24_in_ruleFeatureDecl1068 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleMemberDecl_in_entryRuleMemberDecl1106 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleMemberDecl1116 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleAttrDecl_in_ruleMemberDecl1163 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSubMemberDecl_in_ruleMemberDecl1190 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleInvariantDecl_in_ruleMemberDecl1217 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleAttrDecl_in_entryRuleAttrDecl1252 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleAttrDecl1262 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleModifier_in_ruleAttrDecl1308 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleAttrDecl1325 = new BitSet(new long[]{0x000000000C000000L}); public static final BitSet FOLLOW_26_in_ruleAttrDecl1344 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleAttrDecl1365 = new BitSet(new long[]{0x0000000008000002L}); public static final BitSet FOLLOW_27_in_ruleAttrDecl1378 = new BitSet(new long[]{0x1020CC0000000010L}); public static final BitSet FOLLOW_ruleLiteral_in_ruleAttrDecl1399 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_27_in_ruleAttrDecl1421 = new BitSet(new long[]{0x1020CC0000000010L}); public static final BitSet FOLLOW_ruleLiteral_in_ruleAttrDecl1442 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleModifier_in_entryRuleModifier1480 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleModifier1490 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_28_in_ruleModifier1528 = new BitSet(new long[]{0x00000000200E0002L}); public static final BitSet FOLLOW_17_in_ruleModifier1556 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_18_in_ruleModifier1593 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_19_in_ruleModifier1630 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_29_in_ruleModifier1667 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_30_in_ruleModifier1702 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_31_in_ruleModifier1731 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_32_in_ruleModifier1760 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSubMemberDecl_in_entryRuleSubMemberDecl1806 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSubMemberDecl1816 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleMModifier_in_ruleSubMemberDecl1862 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleSubMemberDecl1880 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_26_in_ruleSubMemberDecl1897 = new BitSet(new long[]{0x0000D88000000010L}); public static final BitSet FOLLOW_ruleFeatureType_in_ruleSubMemberDecl1918 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleMModifier_in_entryRuleMModifier1954 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleMModifier1964 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_33_in_ruleMModifier2002 = new BitSet(new long[]{0x0000000400001C02L}); public static final BitSet FOLLOW_10_in_ruleMModifier2030 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_11_in_ruleMModifier2067 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_12_in_ruleMModifier2104 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_34_in_ruleMModifier2141 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_35_in_ruleMModifier2176 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_36_in_ruleMModifier2205 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_37_in_ruleMModifier2234 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_38_in_ruleMModifier2263 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleAssignment_in_entryRuleAssignment2309 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleAssignment2319 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_ruleAssignment2361 = new BitSet(new long[]{0x0000000008000000L}); public static final BitSet FOLLOW_27_in_ruleAssignment2378 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleAssignment2399 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleFeatureType_in_entryRuleFeatureType2437 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleFeatureType2447 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2494 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_39_in_ruleFeatureType2512 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleFeatureType2533 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2554 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleFeatureType2566 = new BitSet(new long[]{0x0000000008000002L}); public static final BitSet FOLLOW_27_in_ruleFeatureType2579 = new BitSet(new long[]{0x0000040000000000L}); public static final BitSet FOLLOW_42_in_ruleFeatureType2597 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_43_in_ruleFeatureType2632 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleFeatureType2653 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2674 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleFeatureType2686 = new BitSet(new long[]{0x0000000008000002L}); public static final BitSet FOLLOW_27_in_ruleFeatureType2699 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_23_in_ruleFeatureType2711 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_ruleMemberDecl_in_ruleFeatureType2732 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_24_in_ruleFeatureType2745 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_44_in_ruleFeatureType2767 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleFeatureType2788 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2809 = new BitSet(new long[]{0x0000200000000000L}); public static final BitSet FOLLOW_45_in_ruleFeatureType2822 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType2843 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_41_in_ruleFeatureType2857 = new BitSet(new long[]{0x0000000008000002L}); public static final BitSet FOLLOW_27_in_ruleFeatureType2870 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_RULE_NAT_in_ruleFeatureType2887 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_23_in_ruleFeatureType2904 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_ruleMemberDecl_in_ruleFeatureType2925 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_24_in_ruleFeatureType2938 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_46_in_ruleFeatureType2960 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleFeatureType2981 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3002 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleFeatureType3014 = new BitSet(new long[]{0x0000000008000002L}); public static final BitSet FOLLOW_27_in_ruleFeatureType3027 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleFeatureType3039 = new BitSet(new long[]{0x0000020000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3061 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_45_in_ruleFeatureType3074 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3095 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_41_in_ruleFeatureType3111 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_47_in_ruleFeatureType3133 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleFeatureType3154 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3175 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleFeatureType3187 = new BitSet(new long[]{0x0000000008000002L}); public static final BitSet FOLLOW_27_in_ruleFeatureType3200 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_23_in_ruleFeatureType3212 = new BitSet(new long[]{0x0000000001000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3234 = new BitSet(new long[]{0x0000200001000000L}); public static final BitSet FOLLOW_45_in_ruleFeatureType3247 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_ruleFeatureType3268 = new BitSet(new long[]{0x0000200001000000L}); public static final BitSet FOLLOW_24_in_ruleFeatureType3284 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBaseFeatureType_in_entryRuleBaseFeatureType3323 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleBaseFeatureType3333 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_ruleBaseFeatureType3378 = new BitSet(new long[]{0x0000000008008002L}); public static final BitSet FOLLOW_15_in_ruleBaseFeatureType3391 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleBaseFeatureType3411 = new BitSet(new long[]{0x0000000008008002L}); public static final BitSet FOLLOW_27_in_ruleBaseFeatureType3426 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_23_in_ruleBaseFeatureType3438 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_ruleMemberDecl_in_ruleBaseFeatureType3459 = new BitSet(new long[]{0x0001007BD1000010L}); public static final BitSet FOLLOW_24_in_ruleBaseFeatureType3472 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleInvariantDecl_in_entryRuleInvariantDecl3510 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleInvariantDecl3520 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleMultiplicityInvariant_in_ruleInvariantDecl3567 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleGeneralInvariant_in_ruleInvariantDecl3594 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleMultiplicityInvariant_in_entryRuleMultiplicityInvariant3629 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleMultiplicityInvariant3639 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_48_in_ruleMultiplicityInvariant3676 = new BitSet(new long[]{0x0008000000000030L}); public static final BitSet FOLLOW_RULE_ID_in_ruleMultiplicityInvariant3694 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_26_in_ruleMultiplicityInvariant3711 = new BitSet(new long[]{0x0008000000000030L}); public static final BitSet FOLLOW_ruleConstraintNat_in_ruleMultiplicityInvariant3735 = new BitSet(new long[]{0x0002000000000000L}); public static final BitSet FOLLOW_49_in_ruleMultiplicityInvariant3747 = new BitSet(new long[]{0x0008000000000030L}); public static final BitSet FOLLOW_ruleConstraintNat_in_ruleMultiplicityInvariant3768 = new BitSet(new long[]{0x0008000000000010L}); public static final BitSet FOLLOW_ruleSubMemberMatch_in_ruleMultiplicityInvariant3790 = new BitSet(new long[]{0x0000000004000002L}); public static final BitSet FOLLOW_26_in_ruleMultiplicityInvariant3803 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleMultiplicityInvariant3823 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleGeneralInvariant_in_entryRuleGeneralInvariant3861 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleGeneralInvariant3871 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_48_in_ruleGeneralInvariant3908 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleGeneralInvariant3926 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_26_in_ruleGeneralInvariant3943 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleGeneralInvariant3966 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSubMemberMatch_in_entryRuleSubMemberMatch4002 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSubMemberMatch4012 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_ruleSubMemberMatch4055 = new BitSet(new long[]{0x0004000000000000L}); public static final BitSet FOLLOW_50_in_ruleSubMemberMatch4072 = new BitSet(new long[]{0x0008000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleSubMemberMatch4092 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_51_in_ruleSubMemberMatch4121 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleConstraintNat_in_entryRuleConstraintNat4171 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleConstraintNat4181 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_NAT_in_ruleConstraintNat4233 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_51_in_ruleConstraintNat4267 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleDevice_in_entryRuleDevice4304 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleDevice4314 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_ruleDevice4356 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_26_in_ruleDevice4373 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleDevice4393 = new BitSet(new long[]{0x0010000000008002L}); public static final BitSet FOLLOW_15_in_ruleDevice4406 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleDevice4426 = new BitSet(new long[]{0x0010000000008002L}); public static final BitSet FOLLOW_ruleConstraintExp_in_ruleDevice4449 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleConstraintExp_in_entryRuleConstraintExp4486 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleConstraintExp4496 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_52_in_ruleConstraintExp4533 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleConstraintExp4554 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleExp_in_entryRuleExp4596 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleExp4606 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_53_in_ruleExp4644 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleExp4674 = new BitSet(new long[]{0xFF88000000000000L,0x000000000000001FL}); public static final BitSet FOLLOW_ruleBinaryOp_in_ruleExp4695 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleExp4716 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_54_in_ruleExp4728 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_53_in_ruleExp4748 = new BitSet(new long[]{0x0000000000000000L,0x00000000000000E6L}); public static final BitSet FOLLOW_ruleUnaryOp_in_ruleExp4778 = new BitSet(new long[]{0x0020000000000010L}); public static final BitSet FOLLOW_ruleExp_in_ruleExp4799 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_54_in_ruleExp4811 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_rulePrimary_in_ruleExp4849 = new BitSet(new long[]{0x0004000000000002L}); public static final BitSet FOLLOW_50_in_ruleExp4862 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_RULE_ID_in_ruleExp4891 = new BitSet(new long[]{0x0004000000000002L}); public static final BitSet FOLLOW_rulePrimary_in_entryRulePrimary4930 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRulePrimary4940 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_rulePrimary4992 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBasicLiteral_in_rulePrimary5035 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBinaryOp_in_entryRuleBinaryOp5073 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleBinaryOp5084 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_55_in_ruleBinaryOp5122 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_56_in_ruleBinaryOp5141 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_57_in_ruleBinaryOp5160 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_58_in_ruleBinaryOp5179 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_59_in_ruleBinaryOp5198 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_60_in_ruleBinaryOp5217 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_61_in_ruleBinaryOp5236 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_62_in_ruleBinaryOp5255 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_63_in_ruleBinaryOp5274 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_64_in_ruleBinaryOp5293 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_65_in_ruleBinaryOp5312 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_66_in_ruleBinaryOp5331 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_51_in_ruleBinaryOp5350 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_67_in_ruleBinaryOp5369 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_68_in_ruleBinaryOp5388 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleUnaryOp_in_entryRuleUnaryOp5429 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleUnaryOp5440 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_65_in_ruleUnaryOp5478 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_66_in_ruleUnaryOp5497 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_69_in_ruleUnaryOp5516 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_70_in_ruleUnaryOp5535 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_71_in_ruleUnaryOp5554 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleType_in_entryRuleType5594 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleType5604 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_46_in_ruleType5642 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleType5663 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleType5684 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleType5696 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_47_in_ruleType5716 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleType5737 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleType5758 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleType5770 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBaseType_in_ruleType5799 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBaseType_in_entryRuleBaseType5834 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleBaseType5844 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_ruleBaseType5889 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_60_in_ruleBaseType5908 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleBaseType5938 = new BitSet(new long[]{0x0008000000000000L}); public static final BitSet FOLLOW_51_in_ruleBaseType5951 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleBaseType5972 = new BitSet(new long[]{0x0808000000000000L}); public static final BitSet FOLLOW_59_in_ruleBaseType5986 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_39_in_ruleBaseType6006 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleBaseType6027 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleBaseType6048 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleBaseType6060 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_43_in_ruleBaseType6080 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleBaseType6101 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleBaseType6122 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleBaseType6134 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_42_in_ruleBaseType6154 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleBaseType6175 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleBaseType6196 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleBaseType6208 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleLiteral_in_entryRuleLiteral6245 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleLiteral6255 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBasicLiteral_in_ruleLiteral6302 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleTupleLiteral_in_ruleLiteral6329 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleOptionLiteral_in_ruleLiteral6356 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSeqLiteral_in_ruleLiteral6383 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSetLiteral_in_ruleLiteral6410 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleBasicLiteral_in_entryRuleBasicLiteral6445 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleBasicLiteral6455 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_ID_in_ruleBasicLiteral6500 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_RULE_LIT_in_ruleBasicLiteral6517 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleTupleLiteral_in_entryRuleTupleLiteral6558 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleTupleLiteral6568 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_60_in_ruleTupleLiteral6605 = new BitSet(new long[]{0x1820CC0000000010L}); public static final BitSet FOLLOW_ruleLiteral_in_ruleTupleLiteral6636 = new BitSet(new long[]{0x0800200000000000L}); public static final BitSet FOLLOW_45_in_ruleTupleLiteral6649 = new BitSet(new long[]{0x1020CC0000000010L}); public static final BitSet FOLLOW_ruleLiteral_in_ruleTupleLiteral6670 = new BitSet(new long[]{0x0800200000000000L}); public static final BitSet FOLLOW_59_in_ruleTupleLiteral6686 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSeqLiteral_in_entryRuleSeqLiteral6722 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSeqLiteral6732 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_46_in_ruleSeqLiteral6769 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleSeqLiteral6781 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleSeqLiteral6802 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleSeqLiteral6814 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleSeqLiteral6826 = new BitSet(new long[]{0x10000F0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSeqLiteral6848 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_45_in_ruleSeqLiteral6861 = new BitSet(new long[]{0x10000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSeqLiteral6882 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_41_in_ruleSeqLiteral6898 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSetLiteral_in_entryRuleSetLiteral6934 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSetLiteral6944 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_47_in_ruleSetLiteral6981 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleSetLiteral6993 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleSetLiteral7014 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleSetLiteral7026 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_23_in_ruleSetLiteral7038 = new BitSet(new long[]{0x10000D0001800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSetLiteral7060 = new BitSet(new long[]{0x0000200001000000L}); public static final BitSet FOLLOW_45_in_ruleSetLiteral7073 = new BitSet(new long[]{0x10000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSetLiteral7094 = new BitSet(new long[]{0x0000200001000000L}); public static final BitSet FOLLOW_24_in_ruleSetLiteral7110 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleOptionLiteral_in_entryRuleOptionLiteral7146 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleOptionLiteral7156 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_42_in_ruleOptionLiteral7194 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_40_in_ruleOptionLiteral7215 = new BitSet(new long[]{0x1000CC8000000010L}); public static final BitSet FOLLOW_ruleType_in_ruleOptionLiteral7236 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_41_in_ruleOptionLiteral7248 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_43_in_ruleOptionLiteral7268 = new BitSet(new long[]{0x1020CC0000000010L}); public static final BitSet FOLLOW_ruleLiteral_in_ruleOptionLiteral7298 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_entryRuleSimpleLiteral7335 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSimpleLiteral7345 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleBasicLiteral_in_ruleSimpleLiteral7392 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleTupleLiteral_in_ruleSimpleLiteral7419 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleSeqLiteral_in_ruleSimpleLiteral7446 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleSetLiteral_in_ruleSimpleLiteral7473 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleOptionLiteral_in_ruleSimpleLiteral7500 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleBasicLiteral_in_entryRuleSimpleBasicLiteral7535 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSimpleBasicLiteral7545 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_LIT_in_ruleSimpleBasicLiteral7586 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleTupleLiteral_in_entryRuleSimpleTupleLiteral7626 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSimpleTupleLiteral7636 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_60_in_ruleSimpleTupleLiteral7673 = new BitSet(new long[]{0x18000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleTupleLiteral7704 = new BitSet(new long[]{0x0800200000000000L}); public static final BitSet FOLLOW_45_in_ruleSimpleTupleLiteral7717 = new BitSet(new long[]{0x10000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleTupleLiteral7738 = new BitSet(new long[]{0x0800200000000000L}); public static final BitSet FOLLOW_59_in_ruleSimpleTupleLiteral7754 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleOptionLiteral_in_entryRuleSimpleOptionLiteral7790 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSimpleOptionLiteral7800 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_42_in_ruleSimpleOptionLiteral7838 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_43_in_ruleSimpleOptionLiteral7867 = new BitSet(new long[]{0x10000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleOptionLiteral7897 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleSeqLiteral_in_entryRuleSimpleSeqLiteral7934 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSimpleSeqLiteral7944 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_40_in_ruleSimpleSeqLiteral7981 = new BitSet(new long[]{0x10000F0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleSeqLiteral8012 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_45_in_ruleSimpleSeqLiteral8025 = new BitSet(new long[]{0x10000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleSeqLiteral8046 = new BitSet(new long[]{0x0000220000000000L}); public static final BitSet FOLLOW_41_in_ruleSimpleSeqLiteral8062 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ruleSimpleSetLiteral_in_entryRuleSimpleSetLiteral8098 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleSimpleSetLiteral8108 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_23_in_ruleSimpleSetLiteral8145 = new BitSet(new long[]{0x10000D0001800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleSetLiteral8176 = new BitSet(new long[]{0x0000200001000000L}); public static final BitSet FOLLOW_45_in_ruleSimpleSetLiteral8189 = new BitSet(new long[]{0x10000D0000800040L}); public static final BitSet FOLLOW_ruleSimpleLiteral_in_ruleSimpleSetLiteral8210 = new BitSet(new long[]{0x0000200001000000L}); public static final BitSet FOLLOW_24_in_ruleSimpleSetLiteral8226 = new BitSet(new long[]{0x0000000000000002L}); }