package org.eclipse.sirius.expression.text.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 org.eclipse.sirius.expression.text.services.ExpressionTextGrammarAccess; import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; @SuppressWarnings("all") public class InternalExpressionTextParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_ML_COMMENT", "RULE_INT", "RULE_WS", "'package'", "'{'", "'}'", "'class'", "'.'", "'var'", "':'", "'exp'", "'('", "','", "')'", "'['", "'..'", "']'", "'userDefinedVariableContainers'", "'='", "'optional'", "'-'" }; public static final int T__19=19; public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; public static final int T__12=12; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; public static final int T__10=10; public static final int T__9=9; public static final int T__8=8; public static final int RULE_ID=4; public static final int RULE_WS=7; public static final int RULE_INT=6; public static final int T__22=22; public static final int RULE_ML_COMMENT=5; public static final int T__23=23; public static final int T__24=24; public static final int T__25=25; public static final int T__20=20; public static final int T__21=21; // delegates // delegators public InternalExpressionTextParser(TokenStream input) { this(input, new RecognizerSharedState()); } public InternalExpressionTextParser(TokenStream input, RecognizerSharedState state) { super(input, state); } public String[] getTokenNames() { return InternalExpressionTextParser.tokenNames; } public String getGrammarFileName() { return "InternalExpressionText.g"; } private ExpressionTextGrammarAccess grammarAccess; public InternalExpressionTextParser(TokenStream input, ExpressionTextGrammarAccess grammarAccess) { this(input); this.grammarAccess = grammarAccess; registerRules(grammarAccess.getGrammar()); } @Override protected String getFirstRuleName() { return "SiriusExpressionPackage"; } @Override protected ExpressionTextGrammarAccess getGrammarAccess() { return grammarAccess; } // $ANTLR start "entryRuleSiriusExpressionPackage" // InternalExpressionText.g:67:1: entryRuleSiriusExpressionPackage returns [EObject current=null] : iv_ruleSiriusExpressionPackage= ruleSiriusExpressionPackage EOF ; public final EObject entryRuleSiriusExpressionPackage() throws RecognitionException { EObject current = null; EObject iv_ruleSiriusExpressionPackage = null; try { // InternalExpressionText.g:68:2: (iv_ruleSiriusExpressionPackage= ruleSiriusExpressionPackage EOF ) // InternalExpressionText.g:69:2: iv_ruleSiriusExpressionPackage= ruleSiriusExpressionPackage EOF { newCompositeNode(grammarAccess.getSiriusExpressionPackageRule()); pushFollow(FOLLOW_1); iv_ruleSiriusExpressionPackage=ruleSiriusExpressionPackage(); state._fsp--; current =iv_ruleSiriusExpressionPackage; match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSiriusExpressionPackage" // $ANTLR start "ruleSiriusExpressionPackage" // InternalExpressionText.g:76:1: ruleSiriusExpressionPackage returns [EObject current=null] : (otherlv_0= 'package' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) )* otherlv_4= '}' ) ; public final EObject ruleSiriusExpressionPackage() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_1=null; Token otherlv_2=null; Token otherlv_4=null; EObject lv_expressionClasses_3_0 = null; enterRule(); try { // InternalExpressionText.g:79:28: ( (otherlv_0= 'package' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) )* otherlv_4= '}' ) ) // InternalExpressionText.g:80:1: (otherlv_0= 'package' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) )* otherlv_4= '}' ) { // InternalExpressionText.g:80:1: (otherlv_0= 'package' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) )* otherlv_4= '}' ) // InternalExpressionText.g:80:3: otherlv_0= 'package' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) )* otherlv_4= '}' { otherlv_0=(Token)match(input,8,FOLLOW_3); newLeafNode(otherlv_0, grammarAccess.getSiriusExpressionPackageAccess().getPackageKeyword_0()); // InternalExpressionText.g:84:1: ( (otherlv_1= RULE_ID ) ) // InternalExpressionText.g:85:1: (otherlv_1= RULE_ID ) { // InternalExpressionText.g:85:1: (otherlv_1= RULE_ID ) // InternalExpressionText.g:86:3: otherlv_1= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getSiriusExpressionPackageRule()); } otherlv_1=(Token)match(input,RULE_ID,FOLLOW_4); newLeafNode(otherlv_1, grammarAccess.getSiriusExpressionPackageAccess().getEPackageEPackageCrossReference_1_0()); } } otherlv_2=(Token)match(input,9,FOLLOW_5); newLeafNode(otherlv_2, grammarAccess.getSiriusExpressionPackageAccess().getLeftCurlyBracketKeyword_2()); // InternalExpressionText.g:101:1: ( (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); if ( (LA1_0==11) ) { alt1=1; } switch (alt1) { case 1 : // InternalExpressionText.g:102:1: (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) { // InternalExpressionText.g:102:1: (lv_expressionClasses_3_0= ruleSiriusExpressionClass ) // InternalExpressionText.g:103:3: lv_expressionClasses_3_0= ruleSiriusExpressionClass { newCompositeNode(grammarAccess.getSiriusExpressionPackageAccess().getExpressionClassesSiriusExpressionClassParserRuleCall_3_0()); pushFollow(FOLLOW_5); lv_expressionClasses_3_0=ruleSiriusExpressionClass(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionPackageRule()); } add( current, "expressionClasses", lv_expressionClasses_3_0, "org.eclipse.sirius.expression.text.ExpressionText.SiriusExpressionClass"); afterParserOrEnumRuleCall(); } } break; default : break loop1; } } while (true); otherlv_4=(Token)match(input,10,FOLLOW_2); newLeafNode(otherlv_4, grammarAccess.getSiriusExpressionPackageAccess().getRightCurlyBracketKeyword_4()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSiriusExpressionPackage" // $ANTLR start "entryRuleSiriusExpressionClass" // InternalExpressionText.g:131:1: entryRuleSiriusExpressionClass returns [EObject current=null] : iv_ruleSiriusExpressionClass= ruleSiriusExpressionClass EOF ; public final EObject entryRuleSiriusExpressionClass() throws RecognitionException { EObject current = null; EObject iv_ruleSiriusExpressionClass = null; try { // InternalExpressionText.g:132:2: (iv_ruleSiriusExpressionClass= ruleSiriusExpressionClass EOF ) // InternalExpressionText.g:133:2: iv_ruleSiriusExpressionClass= ruleSiriusExpressionClass EOF { newCompositeNode(grammarAccess.getSiriusExpressionClassRule()); pushFollow(FOLLOW_1); iv_ruleSiriusExpressionClass=ruleSiriusExpressionClass(); state._fsp--; current =iv_ruleSiriusExpressionClass; match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSiriusExpressionClass" // $ANTLR start "ruleSiriusExpressionClass" // InternalExpressionText.g:140:1: ruleSiriusExpressionClass returns [EObject current=null] : (otherlv_0= 'class' ( ( ruleFQN ) ) otherlv_2= '{' ( (lv_variables_3_0= ruleSiriusVariable ) )* ( (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) )* otherlv_5= '}' ) ; public final EObject ruleSiriusExpressionClass() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; Token otherlv_5=null; EObject lv_variables_3_0 = null; EObject lv_expressionDescriptions_4_0 = null; enterRule(); try { // InternalExpressionText.g:143:28: ( (otherlv_0= 'class' ( ( ruleFQN ) ) otherlv_2= '{' ( (lv_variables_3_0= ruleSiriusVariable ) )* ( (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) )* otherlv_5= '}' ) ) // InternalExpressionText.g:144:1: (otherlv_0= 'class' ( ( ruleFQN ) ) otherlv_2= '{' ( (lv_variables_3_0= ruleSiriusVariable ) )* ( (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) )* otherlv_5= '}' ) { // InternalExpressionText.g:144:1: (otherlv_0= 'class' ( ( ruleFQN ) ) otherlv_2= '{' ( (lv_variables_3_0= ruleSiriusVariable ) )* ( (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) )* otherlv_5= '}' ) // InternalExpressionText.g:144:3: otherlv_0= 'class' ( ( ruleFQN ) ) otherlv_2= '{' ( (lv_variables_3_0= ruleSiriusVariable ) )* ( (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) )* otherlv_5= '}' { otherlv_0=(Token)match(input,11,FOLLOW_3); newLeafNode(otherlv_0, grammarAccess.getSiriusExpressionClassAccess().getClassKeyword_0()); // InternalExpressionText.g:148:1: ( ( ruleFQN ) ) // InternalExpressionText.g:149:1: ( ruleFQN ) { // InternalExpressionText.g:149:1: ( ruleFQN ) // InternalExpressionText.g:150:3: ruleFQN { if (current==null) { current = createModelElement(grammarAccess.getSiriusExpressionClassRule()); } newCompositeNode(grammarAccess.getSiriusExpressionClassAccess().getEClassEClassCrossReference_1_0()); pushFollow(FOLLOW_4); ruleFQN(); state._fsp--; afterParserOrEnumRuleCall(); } } otherlv_2=(Token)match(input,9,FOLLOW_6); newLeafNode(otherlv_2, grammarAccess.getSiriusExpressionClassAccess().getLeftCurlyBracketKeyword_2()); // InternalExpressionText.g:167:1: ( (lv_variables_3_0= ruleSiriusVariable ) )* loop2: do { int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==RULE_ML_COMMENT||LA2_0==13) ) { alt2=1; } switch (alt2) { case 1 : // InternalExpressionText.g:168:1: (lv_variables_3_0= ruleSiriusVariable ) { // InternalExpressionText.g:168:1: (lv_variables_3_0= ruleSiriusVariable ) // InternalExpressionText.g:169:3: lv_variables_3_0= ruleSiriusVariable { newCompositeNode(grammarAccess.getSiriusExpressionClassAccess().getVariablesSiriusVariableParserRuleCall_3_0()); pushFollow(FOLLOW_6); lv_variables_3_0=ruleSiriusVariable(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionClassRule()); } add( current, "variables", lv_variables_3_0, "org.eclipse.sirius.expression.text.ExpressionText.SiriusVariable"); afterParserOrEnumRuleCall(); } } break; default : break loop2; } } while (true); // InternalExpressionText.g:185:3: ( (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) )* loop3: do { int alt3=2; int LA3_0 = input.LA(1); if ( (LA3_0==15) ) { alt3=1; } switch (alt3) { case 1 : // InternalExpressionText.g:186:1: (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) { // InternalExpressionText.g:186:1: (lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription ) // InternalExpressionText.g:187:3: lv_expressionDescriptions_4_0= ruleSiriusExpressionDescription { newCompositeNode(grammarAccess.getSiriusExpressionClassAccess().getExpressionDescriptionsSiriusExpressionDescriptionParserRuleCall_4_0()); pushFollow(FOLLOW_7); lv_expressionDescriptions_4_0=ruleSiriusExpressionDescription(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionClassRule()); } add( current, "expressionDescriptions", lv_expressionDescriptions_4_0, "org.eclipse.sirius.expression.text.ExpressionText.SiriusExpressionDescription"); afterParserOrEnumRuleCall(); } } break; default : break loop3; } } while (true); otherlv_5=(Token)match(input,10,FOLLOW_2); newLeafNode(otherlv_5, grammarAccess.getSiriusExpressionClassAccess().getRightCurlyBracketKeyword_5()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSiriusExpressionClass" // $ANTLR start "entryRuleFQN" // InternalExpressionText.g:215:1: entryRuleFQN returns [String current=null] : iv_ruleFQN= ruleFQN EOF ; public final String entryRuleFQN() throws RecognitionException { String current = null; AntlrDatatypeRuleToken iv_ruleFQN = null; try { // InternalExpressionText.g:216:2: (iv_ruleFQN= ruleFQN EOF ) // InternalExpressionText.g:217:2: iv_ruleFQN= ruleFQN EOF { newCompositeNode(grammarAccess.getFQNRule()); pushFollow(FOLLOW_1); iv_ruleFQN=ruleFQN(); state._fsp--; current =iv_ruleFQN.getText(); match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleFQN" // $ANTLR start "ruleFQN" // InternalExpressionText.g:224:1: ruleFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ; public final AntlrDatatypeRuleToken ruleFQN() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); Token this_ID_0=null; Token kw=null; Token this_ID_2=null; enterRule(); try { // InternalExpressionText.g:227:28: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ) // InternalExpressionText.g:228:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) { // InternalExpressionText.g:228:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) // InternalExpressionText.g:228:6: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* { this_ID_0=(Token)match(input,RULE_ID,FOLLOW_8); current.merge(this_ID_0); newLeafNode(this_ID_0, grammarAccess.getFQNAccess().getIDTerminalRuleCall_0()); // InternalExpressionText.g:235:1: (kw= '.' this_ID_2= RULE_ID )* loop4: do { int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==12) ) { alt4=1; } switch (alt4) { case 1 : // InternalExpressionText.g:236:2: kw= '.' this_ID_2= RULE_ID { kw=(Token)match(input,12,FOLLOW_3); current.merge(kw); newLeafNode(kw, grammarAccess.getFQNAccess().getFullStopKeyword_1_0()); this_ID_2=(Token)match(input,RULE_ID,FOLLOW_8); current.merge(this_ID_2); newLeafNode(this_ID_2, grammarAccess.getFQNAccess().getIDTerminalRuleCall_1_1()); } break; default : break loop4; } } while (true); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleFQN" // $ANTLR start "entryRuleSiriusVariable" // InternalExpressionText.g:256:1: entryRuleSiriusVariable returns [EObject current=null] : iv_ruleSiriusVariable= ruleSiriusVariable EOF ; public final EObject entryRuleSiriusVariable() throws RecognitionException { EObject current = null; EObject iv_ruleSiriusVariable = null; try { // InternalExpressionText.g:257:2: (iv_ruleSiriusVariable= ruleSiriusVariable EOF ) // InternalExpressionText.g:258:2: iv_ruleSiriusVariable= ruleSiriusVariable EOF { newCompositeNode(grammarAccess.getSiriusVariableRule()); pushFollow(FOLLOW_1); iv_ruleSiriusVariable=ruleSiriusVariable(); state._fsp--; current =iv_ruleSiriusVariable; match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSiriusVariable" // $ANTLR start "ruleSiriusVariable" // InternalExpressionText.g:265:1: ruleSiriusVariable returns [EObject current=null] : ( ( (lv_documentation_0_0= RULE_ML_COMMENT ) )? otherlv_1= 'var' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' ( ( ruleFQN ) ) ) ; public final EObject ruleSiriusVariable() throws RecognitionException { EObject current = null; Token lv_documentation_0_0=null; Token otherlv_1=null; Token lv_name_2_0=null; Token otherlv_3=null; enterRule(); try { // InternalExpressionText.g:268:28: ( ( ( (lv_documentation_0_0= RULE_ML_COMMENT ) )? otherlv_1= 'var' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' ( ( ruleFQN ) ) ) ) // InternalExpressionText.g:269:1: ( ( (lv_documentation_0_0= RULE_ML_COMMENT ) )? otherlv_1= 'var' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' ( ( ruleFQN ) ) ) { // InternalExpressionText.g:269:1: ( ( (lv_documentation_0_0= RULE_ML_COMMENT ) )? otherlv_1= 'var' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' ( ( ruleFQN ) ) ) // InternalExpressionText.g:269:2: ( (lv_documentation_0_0= RULE_ML_COMMENT ) )? otherlv_1= 'var' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= ':' ( ( ruleFQN ) ) { // InternalExpressionText.g:269:2: ( (lv_documentation_0_0= RULE_ML_COMMENT ) )? int alt5=2; int LA5_0 = input.LA(1); if ( (LA5_0==RULE_ML_COMMENT) ) { alt5=1; } switch (alt5) { case 1 : // InternalExpressionText.g:270:1: (lv_documentation_0_0= RULE_ML_COMMENT ) { // InternalExpressionText.g:270:1: (lv_documentation_0_0= RULE_ML_COMMENT ) // InternalExpressionText.g:271:3: lv_documentation_0_0= RULE_ML_COMMENT { lv_documentation_0_0=(Token)match(input,RULE_ML_COMMENT,FOLLOW_9); newLeafNode(lv_documentation_0_0, grammarAccess.getSiriusVariableAccess().getDocumentationML_COMMENTTerminalRuleCall_0_0()); if (current==null) { current = createModelElement(grammarAccess.getSiriusVariableRule()); } setWithLastConsumed( current, "documentation", lv_documentation_0_0, "org.eclipse.sirius.expression.text.ExpressionText.ML_COMMENT"); } } break; } otherlv_1=(Token)match(input,13,FOLLOW_3); newLeafNode(otherlv_1, grammarAccess.getSiriusVariableAccess().getVarKeyword_1()); // InternalExpressionText.g:291:1: ( (lv_name_2_0= RULE_ID ) ) // InternalExpressionText.g:292:1: (lv_name_2_0= RULE_ID ) { // InternalExpressionText.g:292:1: (lv_name_2_0= RULE_ID ) // InternalExpressionText.g:293:3: lv_name_2_0= RULE_ID { lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_10); newLeafNode(lv_name_2_0, grammarAccess.getSiriusVariableAccess().getNameIDTerminalRuleCall_2_0()); if (current==null) { current = createModelElement(grammarAccess.getSiriusVariableRule()); } setWithLastConsumed( current, "name", lv_name_2_0, "org.eclipse.sirius.expression.text.ExpressionText.ID"); } } otherlv_3=(Token)match(input,14,FOLLOW_3); newLeafNode(otherlv_3, grammarAccess.getSiriusVariableAccess().getColonKeyword_3()); // InternalExpressionText.g:313:1: ( ( ruleFQN ) ) // InternalExpressionText.g:314:1: ( ruleFQN ) { // InternalExpressionText.g:314:1: ( ruleFQN ) // InternalExpressionText.g:315:3: ruleFQN { if (current==null) { current = createModelElement(grammarAccess.getSiriusVariableRule()); } newCompositeNode(grammarAccess.getSiriusVariableAccess().getETypeEClassifierCrossReference_4_0()); pushFollow(FOLLOW_2); ruleFQN(); state._fsp--; afterParserOrEnumRuleCall(); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSiriusVariable" // $ANTLR start "entryRuleSiriusExpressionDescription" // InternalExpressionText.g:336:1: entryRuleSiriusExpressionDescription returns [EObject current=null] : iv_ruleSiriusExpressionDescription= ruleSiriusExpressionDescription EOF ; public final EObject entryRuleSiriusExpressionDescription() throws RecognitionException { EObject current = null; EObject iv_ruleSiriusExpressionDescription = null; try { // InternalExpressionText.g:337:2: (iv_ruleSiriusExpressionDescription= ruleSiriusExpressionDescription EOF ) // InternalExpressionText.g:338:2: iv_ruleSiriusExpressionDescription= ruleSiriusExpressionDescription EOF { newCompositeNode(grammarAccess.getSiriusExpressionDescriptionRule()); pushFollow(FOLLOW_1); iv_ruleSiriusExpressionDescription=ruleSiriusExpressionDescription(); state._fsp--; current =iv_ruleSiriusExpressionDescription; match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSiriusExpressionDescription" // $ANTLR start "ruleSiriusExpressionDescription" // InternalExpressionText.g:345:1: ruleSiriusExpressionDescription returns [EObject current=null] : (otherlv_0= 'exp' ( ( ruleFQN ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* )? otherlv_6= ')' otherlv_7= ':' ( ( ruleFQN ) ) otherlv_9= '[' ( (lv_lowerBound_10_0= ruleBound ) ) otherlv_11= '..' ( (lv_upperBound_12_0= ruleBound ) ) otherlv_13= ']' otherlv_14= '{' otherlv_15= 'userDefinedVariableContainers' otherlv_16= '=' otherlv_17= '[' ( ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* )? otherlv_21= ']' otherlv_22= '}' ) ; public final EObject ruleSiriusExpressionDescription() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token otherlv_2=null; Token otherlv_4=null; Token otherlv_6=null; Token otherlv_7=null; Token otherlv_9=null; Token otherlv_11=null; Token otherlv_13=null; Token otherlv_14=null; Token otherlv_15=null; Token otherlv_16=null; Token otherlv_17=null; Token otherlv_19=null; Token otherlv_21=null; Token otherlv_22=null; EObject lv_parameters_3_0 = null; EObject lv_parameters_5_0 = null; AntlrDatatypeRuleToken lv_lowerBound_10_0 = null; AntlrDatatypeRuleToken lv_upperBound_12_0 = null; enterRule(); try { // InternalExpressionText.g:348:28: ( (otherlv_0= 'exp' ( ( ruleFQN ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* )? otherlv_6= ')' otherlv_7= ':' ( ( ruleFQN ) ) otherlv_9= '[' ( (lv_lowerBound_10_0= ruleBound ) ) otherlv_11= '..' ( (lv_upperBound_12_0= ruleBound ) ) otherlv_13= ']' otherlv_14= '{' otherlv_15= 'userDefinedVariableContainers' otherlv_16= '=' otherlv_17= '[' ( ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* )? otherlv_21= ']' otherlv_22= '}' ) ) // InternalExpressionText.g:349:1: (otherlv_0= 'exp' ( ( ruleFQN ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* )? otherlv_6= ')' otherlv_7= ':' ( ( ruleFQN ) ) otherlv_9= '[' ( (lv_lowerBound_10_0= ruleBound ) ) otherlv_11= '..' ( (lv_upperBound_12_0= ruleBound ) ) otherlv_13= ']' otherlv_14= '{' otherlv_15= 'userDefinedVariableContainers' otherlv_16= '=' otherlv_17= '[' ( ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* )? otherlv_21= ']' otherlv_22= '}' ) { // InternalExpressionText.g:349:1: (otherlv_0= 'exp' ( ( ruleFQN ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* )? otherlv_6= ')' otherlv_7= ':' ( ( ruleFQN ) ) otherlv_9= '[' ( (lv_lowerBound_10_0= ruleBound ) ) otherlv_11= '..' ( (lv_upperBound_12_0= ruleBound ) ) otherlv_13= ']' otherlv_14= '{' otherlv_15= 'userDefinedVariableContainers' otherlv_16= '=' otherlv_17= '[' ( ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* )? otherlv_21= ']' otherlv_22= '}' ) // InternalExpressionText.g:349:3: otherlv_0= 'exp' ( ( ruleFQN ) ) otherlv_2= '(' ( ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* )? otherlv_6= ')' otherlv_7= ':' ( ( ruleFQN ) ) otherlv_9= '[' ( (lv_lowerBound_10_0= ruleBound ) ) otherlv_11= '..' ( (lv_upperBound_12_0= ruleBound ) ) otherlv_13= ']' otherlv_14= '{' otherlv_15= 'userDefinedVariableContainers' otherlv_16= '=' otherlv_17= '[' ( ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* )? otherlv_21= ']' otherlv_22= '}' { otherlv_0=(Token)match(input,15,FOLLOW_3); newLeafNode(otherlv_0, grammarAccess.getSiriusExpressionDescriptionAccess().getExpKeyword_0()); // InternalExpressionText.g:353:1: ( ( ruleFQN ) ) // InternalExpressionText.g:354:1: ( ruleFQN ) { // InternalExpressionText.g:354:1: ( ruleFQN ) // InternalExpressionText.g:355:3: ruleFQN { if (current==null) { current = createModelElement(grammarAccess.getSiriusExpressionDescriptionRule()); } newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getExpressionEAttributeCrossReference_1_0()); pushFollow(FOLLOW_11); ruleFQN(); state._fsp--; afterParserOrEnumRuleCall(); } } otherlv_2=(Token)match(input,16,FOLLOW_12); newLeafNode(otherlv_2, grammarAccess.getSiriusExpressionDescriptionAccess().getLeftParenthesisKeyword_2()); // InternalExpressionText.g:372:1: ( ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* )? int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0==RULE_ID||LA7_0==24) ) { alt7=1; } switch (alt7) { case 1 : // InternalExpressionText.g:372:2: ( (lv_parameters_3_0= ruleSiriusParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* { // InternalExpressionText.g:372:2: ( (lv_parameters_3_0= ruleSiriusParameter ) ) // InternalExpressionText.g:373:1: (lv_parameters_3_0= ruleSiriusParameter ) { // InternalExpressionText.g:373:1: (lv_parameters_3_0= ruleSiriusParameter ) // InternalExpressionText.g:374:3: lv_parameters_3_0= ruleSiriusParameter { newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getParametersSiriusParameterParserRuleCall_3_0_0()); pushFollow(FOLLOW_13); lv_parameters_3_0=ruleSiriusParameter(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionDescriptionRule()); } add( current, "parameters", lv_parameters_3_0, "org.eclipse.sirius.expression.text.ExpressionText.SiriusParameter"); afterParserOrEnumRuleCall(); } } // InternalExpressionText.g:390:2: (otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) )* loop6: do { int alt6=2; int LA6_0 = input.LA(1); if ( (LA6_0==17) ) { alt6=1; } switch (alt6) { case 1 : // InternalExpressionText.g:390:4: otherlv_4= ',' ( (lv_parameters_5_0= ruleSiriusParameter ) ) { otherlv_4=(Token)match(input,17,FOLLOW_14); newLeafNode(otherlv_4, grammarAccess.getSiriusExpressionDescriptionAccess().getCommaKeyword_3_1_0()); // InternalExpressionText.g:394:1: ( (lv_parameters_5_0= ruleSiriusParameter ) ) // InternalExpressionText.g:395:1: (lv_parameters_5_0= ruleSiriusParameter ) { // InternalExpressionText.g:395:1: (lv_parameters_5_0= ruleSiriusParameter ) // InternalExpressionText.g:396:3: lv_parameters_5_0= ruleSiriusParameter { newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getParametersSiriusParameterParserRuleCall_3_1_1_0()); pushFollow(FOLLOW_13); lv_parameters_5_0=ruleSiriusParameter(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionDescriptionRule()); } add( current, "parameters", lv_parameters_5_0, "org.eclipse.sirius.expression.text.ExpressionText.SiriusParameter"); afterParserOrEnumRuleCall(); } } } break; default : break loop6; } } while (true); } break; } otherlv_6=(Token)match(input,18,FOLLOW_10); newLeafNode(otherlv_6, grammarAccess.getSiriusExpressionDescriptionAccess().getRightParenthesisKeyword_4()); otherlv_7=(Token)match(input,14,FOLLOW_3); newLeafNode(otherlv_7, grammarAccess.getSiriusExpressionDescriptionAccess().getColonKeyword_5()); // InternalExpressionText.g:420:1: ( ( ruleFQN ) ) // InternalExpressionText.g:421:1: ( ruleFQN ) { // InternalExpressionText.g:421:1: ( ruleFQN ) // InternalExpressionText.g:422:3: ruleFQN { if (current==null) { current = createModelElement(grammarAccess.getSiriusExpressionDescriptionRule()); } newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getReturnTypeEClassifierCrossReference_6_0()); pushFollow(FOLLOW_15); ruleFQN(); state._fsp--; afterParserOrEnumRuleCall(); } } otherlv_9=(Token)match(input,19,FOLLOW_16); newLeafNode(otherlv_9, grammarAccess.getSiriusExpressionDescriptionAccess().getLeftSquareBracketKeyword_7()); // InternalExpressionText.g:439:1: ( (lv_lowerBound_10_0= ruleBound ) ) // InternalExpressionText.g:440:1: (lv_lowerBound_10_0= ruleBound ) { // InternalExpressionText.g:440:1: (lv_lowerBound_10_0= ruleBound ) // InternalExpressionText.g:441:3: lv_lowerBound_10_0= ruleBound { newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getLowerBoundBoundParserRuleCall_8_0()); pushFollow(FOLLOW_17); lv_lowerBound_10_0=ruleBound(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionDescriptionRule()); } set( current, "lowerBound", lv_lowerBound_10_0, "org.eclipse.sirius.expression.text.ExpressionText.Bound"); afterParserOrEnumRuleCall(); } } otherlv_11=(Token)match(input,20,FOLLOW_16); newLeafNode(otherlv_11, grammarAccess.getSiriusExpressionDescriptionAccess().getFullStopFullStopKeyword_9()); // InternalExpressionText.g:461:1: ( (lv_upperBound_12_0= ruleBound ) ) // InternalExpressionText.g:462:1: (lv_upperBound_12_0= ruleBound ) { // InternalExpressionText.g:462:1: (lv_upperBound_12_0= ruleBound ) // InternalExpressionText.g:463:3: lv_upperBound_12_0= ruleBound { newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getUpperBoundBoundParserRuleCall_10_0()); pushFollow(FOLLOW_18); lv_upperBound_12_0=ruleBound(); state._fsp--; if (current==null) { current = createModelElementForParent(grammarAccess.getSiriusExpressionDescriptionRule()); } set( current, "upperBound", lv_upperBound_12_0, "org.eclipse.sirius.expression.text.ExpressionText.Bound"); afterParserOrEnumRuleCall(); } } otherlv_13=(Token)match(input,21,FOLLOW_4); newLeafNode(otherlv_13, grammarAccess.getSiriusExpressionDescriptionAccess().getRightSquareBracketKeyword_11()); otherlv_14=(Token)match(input,9,FOLLOW_19); newLeafNode(otherlv_14, grammarAccess.getSiriusExpressionDescriptionAccess().getLeftCurlyBracketKeyword_12()); otherlv_15=(Token)match(input,22,FOLLOW_20); newLeafNode(otherlv_15, grammarAccess.getSiriusExpressionDescriptionAccess().getUserDefinedVariableContainersKeyword_13()); otherlv_16=(Token)match(input,23,FOLLOW_15); newLeafNode(otherlv_16, grammarAccess.getSiriusExpressionDescriptionAccess().getEqualsSignKeyword_14()); otherlv_17=(Token)match(input,19,FOLLOW_21); newLeafNode(otherlv_17, grammarAccess.getSiriusExpressionDescriptionAccess().getLeftSquareBracketKeyword_15()); // InternalExpressionText.g:499:1: ( ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* )? int alt9=2; int LA9_0 = input.LA(1); if ( (LA9_0==RULE_ID) ) { alt9=1; } switch (alt9) { case 1 : // InternalExpressionText.g:499:2: ( ( ruleFQN ) ) (otherlv_19= ',' ( ( ruleFQN ) ) )* { // InternalExpressionText.g:499:2: ( ( ruleFQN ) ) // InternalExpressionText.g:500:1: ( ruleFQN ) { // InternalExpressionText.g:500:1: ( ruleFQN ) // InternalExpressionText.g:501:3: ruleFQN { if (current==null) { current = createModelElement(grammarAccess.getSiriusExpressionDescriptionRule()); } newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getVariableContainersEClassCrossReference_16_0_0()); pushFollow(FOLLOW_22); ruleFQN(); state._fsp--; afterParserOrEnumRuleCall(); } } // InternalExpressionText.g:514:2: (otherlv_19= ',' ( ( ruleFQN ) ) )* loop8: do { int alt8=2; int LA8_0 = input.LA(1); if ( (LA8_0==17) ) { alt8=1; } switch (alt8) { case 1 : // InternalExpressionText.g:514:4: otherlv_19= ',' ( ( ruleFQN ) ) { otherlv_19=(Token)match(input,17,FOLLOW_3); newLeafNode(otherlv_19, grammarAccess.getSiriusExpressionDescriptionAccess().getCommaKeyword_16_1_0()); // InternalExpressionText.g:518:1: ( ( ruleFQN ) ) // InternalExpressionText.g:519:1: ( ruleFQN ) { // InternalExpressionText.g:519:1: ( ruleFQN ) // InternalExpressionText.g:520:3: ruleFQN { if (current==null) { current = createModelElement(grammarAccess.getSiriusExpressionDescriptionRule()); } newCompositeNode(grammarAccess.getSiriusExpressionDescriptionAccess().getVariableContainersEClassCrossReference_16_1_1_0()); pushFollow(FOLLOW_22); ruleFQN(); state._fsp--; afterParserOrEnumRuleCall(); } } } break; default : break loop8; } } while (true); } break; } otherlv_21=(Token)match(input,21,FOLLOW_23); newLeafNode(otherlv_21, grammarAccess.getSiriusExpressionDescriptionAccess().getRightSquareBracketKeyword_17()); otherlv_22=(Token)match(input,10,FOLLOW_2); newLeafNode(otherlv_22, grammarAccess.getSiriusExpressionDescriptionAccess().getRightCurlyBracketKeyword_18()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSiriusExpressionDescription" // $ANTLR start "entryRuleSiriusParameter" // InternalExpressionText.g:549:1: entryRuleSiriusParameter returns [EObject current=null] : iv_ruleSiriusParameter= ruleSiriusParameter EOF ; public final EObject entryRuleSiriusParameter() throws RecognitionException { EObject current = null; EObject iv_ruleSiriusParameter = null; try { // InternalExpressionText.g:550:2: (iv_ruleSiriusParameter= ruleSiriusParameter EOF ) // InternalExpressionText.g:551:2: iv_ruleSiriusParameter= ruleSiriusParameter EOF { newCompositeNode(grammarAccess.getSiriusParameterRule()); pushFollow(FOLLOW_1); iv_ruleSiriusParameter=ruleSiriusParameter(); state._fsp--; current =iv_ruleSiriusParameter; match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleSiriusParameter" // $ANTLR start "ruleSiriusParameter" // InternalExpressionText.g:558:1: ruleSiriusParameter returns [EObject current=null] : ( ( (lv_optional_0_0= 'optional' ) )? ( (otherlv_1= RULE_ID ) ) ) ; public final EObject ruleSiriusParameter() throws RecognitionException { EObject current = null; Token lv_optional_0_0=null; Token otherlv_1=null; enterRule(); try { // InternalExpressionText.g:561:28: ( ( ( (lv_optional_0_0= 'optional' ) )? ( (otherlv_1= RULE_ID ) ) ) ) // InternalExpressionText.g:562:1: ( ( (lv_optional_0_0= 'optional' ) )? ( (otherlv_1= RULE_ID ) ) ) { // InternalExpressionText.g:562:1: ( ( (lv_optional_0_0= 'optional' ) )? ( (otherlv_1= RULE_ID ) ) ) // InternalExpressionText.g:562:2: ( (lv_optional_0_0= 'optional' ) )? ( (otherlv_1= RULE_ID ) ) { // InternalExpressionText.g:562:2: ( (lv_optional_0_0= 'optional' ) )? int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0==24) ) { alt10=1; } switch (alt10) { case 1 : // InternalExpressionText.g:563:1: (lv_optional_0_0= 'optional' ) { // InternalExpressionText.g:563:1: (lv_optional_0_0= 'optional' ) // InternalExpressionText.g:564:3: lv_optional_0_0= 'optional' { lv_optional_0_0=(Token)match(input,24,FOLLOW_3); newLeafNode(lv_optional_0_0, grammarAccess.getSiriusParameterAccess().getOptionalOptionalKeyword_0_0()); if (current==null) { current = createModelElement(grammarAccess.getSiriusParameterRule()); } setWithLastConsumed(current, "optional", true, "optional"); } } break; } // InternalExpressionText.g:577:3: ( (otherlv_1= RULE_ID ) ) // InternalExpressionText.g:578:1: (otherlv_1= RULE_ID ) { // InternalExpressionText.g:578:1: (otherlv_1= RULE_ID ) // InternalExpressionText.g:579:3: otherlv_1= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getSiriusParameterRule()); } otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); newLeafNode(otherlv_1, grammarAccess.getSiriusParameterAccess().getVariableSiriusVariableCrossReference_1_0()); } } } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleSiriusParameter" // $ANTLR start "entryRuleBound" // InternalExpressionText.g:598:1: entryRuleBound returns [String current=null] : iv_ruleBound= ruleBound EOF ; public final String entryRuleBound() throws RecognitionException { String current = null; AntlrDatatypeRuleToken iv_ruleBound = null; try { // InternalExpressionText.g:599:2: (iv_ruleBound= ruleBound EOF ) // InternalExpressionText.g:600:2: iv_ruleBound= ruleBound EOF { newCompositeNode(grammarAccess.getBoundRule()); pushFollow(FOLLOW_1); iv_ruleBound=ruleBound(); state._fsp--; current =iv_ruleBound.getText(); match(input,EOF,FOLLOW_2); } } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "entryRuleBound" // $ANTLR start "ruleBound" // InternalExpressionText.g:607:1: ruleBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ; public final AntlrDatatypeRuleToken ruleBound() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); Token kw=null; Token this_INT_1=null; enterRule(); try { // InternalExpressionText.g:610:28: ( ( (kw= '-' )? this_INT_1= RULE_INT ) ) // InternalExpressionText.g:611:1: ( (kw= '-' )? this_INT_1= RULE_INT ) { // InternalExpressionText.g:611:1: ( (kw= '-' )? this_INT_1= RULE_INT ) // InternalExpressionText.g:611:2: (kw= '-' )? this_INT_1= RULE_INT { // InternalExpressionText.g:611:2: (kw= '-' )? int alt11=2; int LA11_0 = input.LA(1); if ( (LA11_0==25) ) { alt11=1; } switch (alt11) { case 1 : // InternalExpressionText.g:612:2: kw= '-' { kw=(Token)match(input,25,FOLLOW_24); current.merge(kw); newLeafNode(kw, grammarAccess.getBoundAccess().getHyphenMinusKeyword_0()); } break; } this_INT_1=(Token)match(input,RULE_INT,FOLLOW_2); current.merge(this_INT_1); newLeafNode(this_INT_1, grammarAccess.getBoundAccess().getINTTerminalRuleCall_1()); } } leaveRule(); } catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } finally { } return current; } // $ANTLR end "ruleBound" // Delegated rules public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000200L}); public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000C00L}); public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x000000000000A420L}); public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000008400L}); public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000001002L}); public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000002000L}); public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000004000L}); public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000001040010L}); public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000060000L}); public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000001000010L}); public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000080000L}); public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000002000040L}); public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000100000L}); public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000200000L}); public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000400000L}); public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000200010L}); public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000220000L}); public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000040L}); }