| <?xml version="1.0" encoding="ASCII"?> |
| <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext"> |
| <xtext:Grammar name="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates" usedGrammars="/1"> |
| <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel"> |
| <ePackage href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#/"/> |
| </metamodelDeclarations> |
| <rules xsi:type="xtext:ParserRule" name="Module"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Module"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="module"/> |
| <elements xsi:type="xtext:Assignment" feature="name" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/> |
| </elements> |
| <elements xsi:type="xtext:Assignment" cardinality="*" feature="machines" operator="+="> |
| <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/> |
| </elements> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:ParserRule" name="Statemachine"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Statemachine"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?="> |
| <terminal xsi:type="xtext:Keyword" value="initial"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="statemachine"/> |
| <elements xsi:type="xtext:Assignment" feature="name" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </elements> |
| <elements xsi:type="xtext:Group" cardinality="?"> |
| <elements xsi:type="xtext:Keyword" value="value"/> |
| <elements xsi:type="xtext:Assignment" feature="value" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/> |
| </elements> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="{"/> |
| <elements xsi:type="xtext:Keyword" value="events"/> |
| <elements xsi:type="xtext:Assignment" cardinality="*" feature="events" operator="+="> |
| <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value=";"/> |
| <elements xsi:type="xtext:Assignment" cardinality="*" feature="states" operator="+="> |
| <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="}"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:ParserRule" name="Event"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Event"/> |
| </type> |
| <alternatives xsi:type="xtext:Assignment" feature="name" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:ParserRule" name="State"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//State"/> |
| </type> |
| <alternatives xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:RuleCall" rule="/0/@rules.4"/> |
| <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:ParserRule" name="SimpleState"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//SimpleState"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?="> |
| <terminal xsi:type="xtext:Keyword" value="initial"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="state"/> |
| <elements xsi:type="xtext:Assignment" feature="name" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </elements> |
| <elements xsi:type="xtext:Group" cardinality="?"> |
| <elements xsi:type="xtext:Keyword" value="value"/> |
| <elements xsi:type="xtext:Assignment" feature="value" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/> |
| </elements> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="{"/> |
| <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+="> |
| <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="}"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:ParserRule" name="CompoundState"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//CompoundState"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="compound"/> |
| <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?="> |
| <terminal xsi:type="xtext:Keyword" value="initial"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="state"/> |
| <elements xsi:type="xtext:Assignment" feature="name" operator="="> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="machine"/> |
| <elements xsi:type="xtext:Assignment" feature="machine" operator="="> |
| <terminal xsi:type="xtext:CrossReference"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Statemachine"/> |
| </type> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </terminal> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="{"/> |
| <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+="> |
| <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="}"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:ParserRule" name="Transition"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Transition"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Assignment" feature="event" operator="="> |
| <terminal xsi:type="xtext:CrossReference"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Event"/> |
| </type> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </terminal> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="=>"/> |
| <elements xsi:type="xtext:Assignment" feature="state" operator="="> |
| <terminal xsi:type="xtext:CrossReference"> |
| <type metamodel="/0/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//State"/> |
| </type> |
| <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> |
| </terminal> |
| </elements> |
| </alternatives> |
| </rules> |
| </xtext:Grammar> |
| <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4"> |
| <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> |
| <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> |
| </metamodelDeclarations> |
| <rules xsi:type="xtext:TerminalRule" name="ID"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/> |
| <elements xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:CharacterRange"> |
| <left value="a"/> |
| <right value="z"/> |
| </elements> |
| <elements xsi:type="xtext:CharacterRange"> |
| <left value="A"/> |
| <right value="Z"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="_"/> |
| </elements> |
| <elements xsi:type="xtext:Alternatives" cardinality="*"> |
| <elements xsi:type="xtext:CharacterRange"> |
| <left value="a"/> |
| <right value="z"/> |
| </elements> |
| <elements xsi:type="xtext:CharacterRange"> |
| <left value="A"/> |
| <right value="Z"/> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="_"/> |
| <elements xsi:type="xtext:CharacterRange"> |
| <left value="0"/> |
| <right value="9"/> |
| </elements> |
| </elements> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:TerminalRule" name="INT"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> |
| </type> |
| <alternatives xsi:type="xtext:CharacterRange" cardinality="+"> |
| <left value="0"/> |
| <right value="9"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:TerminalRule" name="STRING"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </type> |
| <alternatives xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="""/> |
| <elements xsi:type="xtext:Alternatives" cardinality="*"> |
| <elements xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="\"/> |
| <elements xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:Keyword" value="b"/> |
| <elements xsi:type="xtext:Keyword" value="t"/> |
| <elements xsi:type="xtext:Keyword" value="n"/> |
| <elements xsi:type="xtext:Keyword" value="f"/> |
| <elements xsi:type="xtext:Keyword" value="r"/> |
| <elements xsi:type="xtext:Keyword" value="u"/> |
| <elements xsi:type="xtext:Keyword" value="""/> |
| <elements xsi:type="xtext:Keyword" value="'"/> |
| <elements xsi:type="xtext:Keyword" value="\"/> |
| </elements> |
| </elements> |
| <elements xsi:type="xtext:NegatedToken"> |
| <terminal xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:Keyword" value="\"/> |
| <elements xsi:type="xtext:Keyword" value="""/> |
| </terminal> |
| </elements> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="""/> |
| </elements> |
| <elements xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="'"/> |
| <elements xsi:type="xtext:Alternatives" cardinality="*"> |
| <elements xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="\"/> |
| <elements xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:Keyword" value="b"/> |
| <elements xsi:type="xtext:Keyword" value="t"/> |
| <elements xsi:type="xtext:Keyword" value="n"/> |
| <elements xsi:type="xtext:Keyword" value="f"/> |
| <elements xsi:type="xtext:Keyword" value="r"/> |
| <elements xsi:type="xtext:Keyword" value="u"/> |
| <elements xsi:type="xtext:Keyword" value="""/> |
| <elements xsi:type="xtext:Keyword" value="'"/> |
| <elements xsi:type="xtext:Keyword" value="\"/> |
| </elements> |
| </elements> |
| <elements xsi:type="xtext:NegatedToken"> |
| <terminal xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:Keyword" value="\"/> |
| <elements xsi:type="xtext:Keyword" value="'"/> |
| </terminal> |
| </elements> |
| </elements> |
| <elements xsi:type="xtext:Keyword" value="'"/> |
| </elements> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="/*"/> |
| <elements xsi:type="xtext:UntilToken"> |
| <terminal xsi:type="xtext:Keyword" value="*/"/> |
| </elements> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </type> |
| <alternatives xsi:type="xtext:Group"> |
| <elements xsi:type="xtext:Keyword" value="//"/> |
| <elements xsi:type="xtext:NegatedToken" cardinality="*"> |
| <terminal xsi:type="xtext:Alternatives"> |
| <elements xsi:type="xtext:Keyword" value="
"/> |
| <elements xsi:type="xtext:Keyword" value="
"/> |
| </terminal> |
| </elements> |
| <elements xsi:type="xtext:Group" cardinality="?"> |
| <elements xsi:type="xtext:Keyword" cardinality="?" value="
"/> |
| <elements xsi:type="xtext:Keyword" value="
"/> |
| </elements> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:TerminalRule" name="WS"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </type> |
| <alternatives xsi:type="xtext:Alternatives" cardinality="+"> |
| <elements xsi:type="xtext:Keyword" value=" "/> |
| <elements xsi:type="xtext:Keyword" value="	"/> |
| <elements xsi:type="xtext:Keyword" value="
"/> |
| <elements xsi:type="xtext:Keyword" value="
"/> |
| </alternatives> |
| </rules> |
| <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER"> |
| <type metamodel="/1/@metamodelDeclarations.0"> |
| <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </type> |
| <alternatives xsi:type="xtext:Wildcard"/> |
| </rules> |
| </xtext:Grammar> |
| </xmi:XMI> |