/***************************************************************************** * Copyright (c) 2010 CEA LIST. * * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * CEA LIST - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.textedit.state.xtext.services; import com.google.inject.Singleton; import com.google.inject.Inject; import org.eclipse.xtext.*; import org.eclipse.xtext.service.GrammarProvider; import org.eclipse.xtext.service.AbstractElementFinder.*; import org.eclipse.xtext.common.services.TerminalsGrammarAccess; @Singleton public class UmlStateGrammarAccess extends AbstractGrammarElementFinder { public class StateRuleElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StateRule"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Keyword cColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); private final Assignment cSubmachineAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cSubmachineSubmachineRuleParserRuleCall_1_1_0 = (RuleCall)cSubmachineAssignment_1_1.eContents().get(0); private final UnorderedGroup cUnorderedGroup_2 = (UnorderedGroup)cGroup.eContents().get(2); private final Assignment cEntryAssignment_2_0 = (Assignment)cUnorderedGroup_2.eContents().get(0); private final RuleCall cEntryEntryRuleParserRuleCall_2_0_0 = (RuleCall)cEntryAssignment_2_0.eContents().get(0); private final Assignment cDoAssignment_2_1 = (Assignment)cUnorderedGroup_2.eContents().get(1); private final RuleCall cDoDoRuleParserRuleCall_2_1_0 = (RuleCall)cDoAssignment_2_1.eContents().get(0); private final Assignment cExitAssignment_2_2 = (Assignment)cUnorderedGroup_2.eContents().get(2); private final RuleCall cExitExitRuleParserRuleCall_2_2_0 = (RuleCall)cExitAssignment_2_2.eContents().get(0); //StateRule: // name=ID (":" submachine=SubmachineRule)? (entry=EntryRule? & do=DoRule? & exit=ExitRule?); public ParserRule getRule() { return rule; } //name=ID (":" submachine=SubmachineRule)? (entry=EntryRule? & do=DoRule? & exit=ExitRule?) public Group getGroup() { return cGroup; } //name=ID public Assignment getNameAssignment_0() { return cNameAssignment_0; } //ID public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } //(":" submachine=SubmachineRule)? public Group getGroup_1() { return cGroup_1; } //":" public Keyword getColonKeyword_1_0() { return cColonKeyword_1_0; } //submachine=SubmachineRule public Assignment getSubmachineAssignment_1_1() { return cSubmachineAssignment_1_1; } //SubmachineRule public RuleCall getSubmachineSubmachineRuleParserRuleCall_1_1_0() { return cSubmachineSubmachineRuleParserRuleCall_1_1_0; } //entry=EntryRule? & do=DoRule? & exit=ExitRule? public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; } //entry=EntryRule? public Assignment getEntryAssignment_2_0() { return cEntryAssignment_2_0; } //EntryRule public RuleCall getEntryEntryRuleParserRuleCall_2_0_0() { return cEntryEntryRuleParserRuleCall_2_0_0; } //do=DoRule? public Assignment getDoAssignment_2_1() { return cDoAssignment_2_1; } //DoRule public RuleCall getDoDoRuleParserRuleCall_2_1_0() { return cDoDoRuleParserRuleCall_2_1_0; } //exit=ExitRule? public Assignment getExitAssignment_2_2() { return cExitAssignment_2_2; } //ExitRule public RuleCall getExitExitRuleParserRuleCall_2_2_0() { return cExitExitRuleParserRuleCall_2_2_0; } } public class SubmachineRuleElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SubmachineRule"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cPathAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cPathQualifiedNameParserRuleCall_0_0 = (RuleCall)cPathAssignment_0.eContents().get(0); private final Assignment cSubmachineAssignment_1 = (Assignment)cGroup.eContents().get(1); private final CrossReference cSubmachineStateMachineCrossReference_1_0 = (CrossReference)cSubmachineAssignment_1.eContents().get(0); private final RuleCall cSubmachineStateMachineIDTerminalRuleCall_1_0_1 = (RuleCall)cSubmachineStateMachineCrossReference_1_0.eContents().get(1); //SubmachineRule: // path=QualifiedName? submachine=[uml::StateMachine]; public ParserRule getRule() { return rule; } //path=QualifiedName? submachine=[uml::StateMachine] public Group getGroup() { return cGroup; } //path=QualifiedName? public Assignment getPathAssignment_0() { return cPathAssignment_0; } //QualifiedName public RuleCall getPathQualifiedNameParserRuleCall_0_0() { return cPathQualifiedNameParserRuleCall_0_0; } //submachine=[uml::StateMachine] public Assignment getSubmachineAssignment_1() { return cSubmachineAssignment_1; } //[uml::StateMachine] public CrossReference getSubmachineStateMachineCrossReference_1_0() { return cSubmachineStateMachineCrossReference_1_0; } //ID public RuleCall getSubmachineStateMachineIDTerminalRuleCall_1_0_1() { return cSubmachineStateMachineIDTerminalRuleCall_1_0_1; } } public class QualifiedNameElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedName"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cPathAssignment_0 = (Assignment)cGroup.eContents().get(0); private final CrossReference cPathNamespaceCrossReference_0_0 = (CrossReference)cPathAssignment_0.eContents().get(0); private final RuleCall cPathNamespaceIDTerminalRuleCall_0_0_1 = (RuleCall)cPathNamespaceCrossReference_0_0.eContents().get(1); private final Keyword cColonColonKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cRemainingAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cRemainingQualifiedNameParserRuleCall_2_0 = (RuleCall)cRemainingAssignment_2.eContents().get(0); //QualifiedName: // path=[uml::Namespace] "::" remaining=QualifiedName?; public ParserRule getRule() { return rule; } //path=[uml::Namespace] "::" remaining=QualifiedName? public Group getGroup() { return cGroup; } //path=[uml::Namespace] public Assignment getPathAssignment_0() { return cPathAssignment_0; } //[uml::Namespace] public CrossReference getPathNamespaceCrossReference_0_0() { return cPathNamespaceCrossReference_0_0; } //ID public RuleCall getPathNamespaceIDTerminalRuleCall_0_0_1() { return cPathNamespaceIDTerminalRuleCall_0_0_1; } //"::" public Keyword getColonColonKeyword_1() { return cColonColonKeyword_1; } //remaining=QualifiedName? public Assignment getRemainingAssignment_2() { return cRemainingAssignment_2; } //QualifiedName public RuleCall getRemainingQualifiedNameParserRuleCall_2_0() { return cRemainingQualifiedNameParserRuleCall_2_0; } } public class EntryRuleElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntryRule"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cEntryKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cKindAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cKindBehaviorKindEnumRuleCall_1_0 = (RuleCall)cKindAssignment_1.eContents().get(0); private final Assignment cBehaviorNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cBehaviorNameIDTerminalRuleCall_2_0 = (RuleCall)cBehaviorNameAssignment_2.eContents().get(0); //EntryRule: // "entry" kind=BehaviorKind behaviorName=ID; public ParserRule getRule() { return rule; } //"entry" kind=BehaviorKind behaviorName=ID public Group getGroup() { return cGroup; } //"entry" public Keyword getEntryKeyword_0() { return cEntryKeyword_0; } //kind=BehaviorKind public Assignment getKindAssignment_1() { return cKindAssignment_1; } //BehaviorKind public RuleCall getKindBehaviorKindEnumRuleCall_1_0() { return cKindBehaviorKindEnumRuleCall_1_0; } //behaviorName=ID public Assignment getBehaviorNameAssignment_2() { return cBehaviorNameAssignment_2; } //ID public RuleCall getBehaviorNameIDTerminalRuleCall_2_0() { return cBehaviorNameIDTerminalRuleCall_2_0; } } public class DoRuleElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DoRule"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cDoKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cKindAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cKindBehaviorKindEnumRuleCall_1_0 = (RuleCall)cKindAssignment_1.eContents().get(0); private final Assignment cBehaviorNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cBehaviorNameIDTerminalRuleCall_2_0 = (RuleCall)cBehaviorNameAssignment_2.eContents().get(0); //DoRule: // "do" kind=BehaviorKind behaviorName=ID; public ParserRule getRule() { return rule; } //"do" kind=BehaviorKind behaviorName=ID public Group getGroup() { return cGroup; } //"do" public Keyword getDoKeyword_0() { return cDoKeyword_0; } //kind=BehaviorKind public Assignment getKindAssignment_1() { return cKindAssignment_1; } //BehaviorKind public RuleCall getKindBehaviorKindEnumRuleCall_1_0() { return cKindBehaviorKindEnumRuleCall_1_0; } //behaviorName=ID public Assignment getBehaviorNameAssignment_2() { return cBehaviorNameAssignment_2; } //ID public RuleCall getBehaviorNameIDTerminalRuleCall_2_0() { return cBehaviorNameIDTerminalRuleCall_2_0; } } public class ExitRuleElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ExitRule"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cExitKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cKindAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cKindBehaviorKindEnumRuleCall_1_0 = (RuleCall)cKindAssignment_1.eContents().get(0); private final Assignment cBehaviorNameAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cBehaviorNameIDTerminalRuleCall_2_0 = (RuleCall)cBehaviorNameAssignment_2.eContents().get(0); //ExitRule: // "exit" kind=BehaviorKind behaviorName=ID; public ParserRule getRule() { return rule; } //"exit" kind=BehaviorKind behaviorName=ID public Group getGroup() { return cGroup; } //"exit" public Keyword getExitKeyword_0() { return cExitKeyword_0; } //kind=BehaviorKind public Assignment getKindAssignment_1() { return cKindAssignment_1; } //BehaviorKind public RuleCall getKindBehaviorKindEnumRuleCall_1_0() { return cKindBehaviorKindEnumRuleCall_1_0; } //behaviorName=ID public Assignment getBehaviorNameAssignment_2() { return cBehaviorNameAssignment_2; } //ID public RuleCall getBehaviorNameIDTerminalRuleCall_2_0() { return cBehaviorNameIDTerminalRuleCall_2_0; } } public class BehaviorKindElements extends AbstractEnumRuleElementFinder { private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "BehaviorKind"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final EnumLiteralDeclaration cACTIVITYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); private final Keyword cACTIVITYActivityKeyword_0_0 = (Keyword)cACTIVITYEnumLiteralDeclaration_0.eContents().get(0); private final EnumLiteralDeclaration cSTATE_MACHINEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); private final Keyword cSTATE_MACHINEStateMachineKeyword_1_0 = (Keyword)cSTATE_MACHINEEnumLiteralDeclaration_1.eContents().get(0); private final EnumLiteralDeclaration cOPAQUE_BEHAVIOREnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); private final Keyword cOPAQUE_BEHAVIOROpaqueBehaviorKeyword_2_0 = (Keyword)cOPAQUE_BEHAVIOREnumLiteralDeclaration_2.eContents().get(0); //enum BehaviorKind: // ACTIVITY="Activity" | STATE_MACHINE="StateMachine" | OPAQUE_BEHAVIOR="OpaqueBehavior"; public EnumRule getRule() { return rule; } //ACTIVITY="Activity" | STATE_MACHINE="StateMachine" | OPAQUE_BEHAVIOR="OpaqueBehavior" public Alternatives getAlternatives() { return cAlternatives; } //ACTIVITY="Activity" public EnumLiteralDeclaration getACTIVITYEnumLiteralDeclaration_0() { return cACTIVITYEnumLiteralDeclaration_0; } //"Activity" public Keyword getACTIVITYActivityKeyword_0_0() { return cACTIVITYActivityKeyword_0_0; } //STATE_MACHINE="StateMachine" public EnumLiteralDeclaration getSTATE_MACHINEEnumLiteralDeclaration_1() { return cSTATE_MACHINEEnumLiteralDeclaration_1; } //"StateMachine" public Keyword getSTATE_MACHINEStateMachineKeyword_1_0() { return cSTATE_MACHINEStateMachineKeyword_1_0; } //OPAQUE_BEHAVIOR="OpaqueBehavior" public EnumLiteralDeclaration getOPAQUE_BEHAVIOREnumLiteralDeclaration_2() { return cOPAQUE_BEHAVIOREnumLiteralDeclaration_2; } //"OpaqueBehavior" public Keyword getOPAQUE_BEHAVIOROpaqueBehaviorKeyword_2_0() { return cOPAQUE_BEHAVIOROpaqueBehaviorKeyword_2_0; } } private StateRuleElements pStateRule; private SubmachineRuleElements pSubmachineRule; private QualifiedNameElements pQualifiedName; private EntryRuleElements pEntryRule; private DoRuleElements pDoRule; private ExitRuleElements pExitRule; private BehaviorKindElements unknownRuleBehaviorKind; private final GrammarProvider grammarProvider; private TerminalsGrammarAccess gaTerminals; @Inject public UmlStateGrammarAccess(GrammarProvider grammarProvider, TerminalsGrammarAccess gaTerminals) { this.grammarProvider = grammarProvider; this.gaTerminals = gaTerminals; } public Grammar getGrammar() { return grammarProvider.getGrammar(this); } public TerminalsGrammarAccess getTerminalsGrammarAccess() { return gaTerminals; } //StateRule: // name=ID (":" submachine=SubmachineRule)? (entry=EntryRule? & do=DoRule? & exit=ExitRule?); public StateRuleElements getStateRuleAccess() { return (pStateRule != null) ? pStateRule : (pStateRule = new StateRuleElements()); } public ParserRule getStateRuleRule() { return getStateRuleAccess().getRule(); } //SubmachineRule: // path=QualifiedName? submachine=[uml::StateMachine]; public SubmachineRuleElements getSubmachineRuleAccess() { return (pSubmachineRule != null) ? pSubmachineRule : (pSubmachineRule = new SubmachineRuleElements()); } public ParserRule getSubmachineRuleRule() { return getSubmachineRuleAccess().getRule(); } //QualifiedName: // path=[uml::Namespace] "::" remaining=QualifiedName?; public QualifiedNameElements getQualifiedNameAccess() { return (pQualifiedName != null) ? pQualifiedName : (pQualifiedName = new QualifiedNameElements()); } public ParserRule getQualifiedNameRule() { return getQualifiedNameAccess().getRule(); } //EntryRule: // "entry" kind=BehaviorKind behaviorName=ID; public EntryRuleElements getEntryRuleAccess() { return (pEntryRule != null) ? pEntryRule : (pEntryRule = new EntryRuleElements()); } public ParserRule getEntryRuleRule() { return getEntryRuleAccess().getRule(); } //DoRule: // "do" kind=BehaviorKind behaviorName=ID; public DoRuleElements getDoRuleAccess() { return (pDoRule != null) ? pDoRule : (pDoRule = new DoRuleElements()); } public ParserRule getDoRuleRule() { return getDoRuleAccess().getRule(); } //ExitRule: // "exit" kind=BehaviorKind behaviorName=ID; public ExitRuleElements getExitRuleAccess() { return (pExitRule != null) ? pExitRule : (pExitRule = new ExitRuleElements()); } public ParserRule getExitRuleRule() { return getExitRuleAccess().getRule(); } //enum BehaviorKind: // ACTIVITY="Activity" | STATE_MACHINE="StateMachine" | OPAQUE_BEHAVIOR="OpaqueBehavior"; public BehaviorKindElements getBehaviorKindAccess() { return (unknownRuleBehaviorKind != null) ? unknownRuleBehaviorKind : (unknownRuleBehaviorKind = new BehaviorKindElements()); } public EnumRule getBehaviorKindRule() { return getBehaviorKindAccess().getRule(); } //terminal ID: // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*; public TerminalRule getIDRule() { return gaTerminals.getIDRule(); } //terminal INT returns ecore::EInt: // "0".."9"+; public TerminalRule getINTRule() { return gaTerminals.getINTRule(); } //terminal STRING: // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" | // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'"; public TerminalRule getSTRINGRule() { return gaTerminals.getSTRINGRule(); } //terminal ML_COMMENT: // "/ *"->"* /"; public TerminalRule getML_COMMENTRule() { return gaTerminals.getML_COMMENTRule(); } //terminal SL_COMMENT: // "//" !("\n" | "\r")* ("\r"? "\n")?; public TerminalRule getSL_COMMENTRule() { return gaTerminals.getSL_COMMENTRule(); } //terminal WS: // (" " | "\t" | "\r" | "\n")+; public TerminalRule getWSRule() { return gaTerminals.getWSRule(); } //terminal ANY_OTHER: // .; public TerminalRule getANY_OTHERRule() { return gaTerminals.getANY_OTHERRule(); } }