<?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.xtext.example.mydsl3.MyDsl" usedGrammars="/1">
    <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="myDsl">
      <ePackage href="http://www.xtext.org/example/mydsl3/MyDsl#/"/>
    </metamodelDeclarations>
    <rules xsi:type="xtext:ParserRule" name="AgentInternalViewpoint">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//AgentInternalViewpoint"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="AgentInternalViewPoint"/>
        <elements xsi:type="xtext:Keyword" value="{"/>
        <elements xsi:type="xtext:Alternatives">
          <elements xsi:type="xtext:Group">
            <elements xsi:type="xtext:Assignment" feature="semanticwebagent" operator="+=">
              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
            </elements>
            <elements xsi:type="xtext:Assignment" feature="capabilities" operator="+=">
              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
            </elements>
          </elements>
          <elements xsi:type="xtext:Group">
            <elements xsi:type="xtext:Assignment" feature="capabilities" operator="+=">
              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
            </elements>
            <elements xsi:type="xtext:Assignment" feature="semanticwebagent" operator="+=">
              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
            </elements>
          </elements>
        </elements>
        <elements xsi:type="xtext:Alternatives" cardinality="*">
          <elements xsi:type="xtext:Assignment" feature="belief" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="goal" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="capabilities" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="agentstate" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="semanticwebagent" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="role" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="plan" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="agenttype" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="behaviour" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Keyword" value="}"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Belief">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Belief"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Belief"/>
        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
        </elements>
        <elements xsi:type="xtext:Assignment" feature="description" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
        </elements>
        <elements xsi:type="xtext:Assignment" feature="dynamic" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
        </elements>
        <elements xsi:type="xtext:Keyword" value=";"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Goal">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Goal"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Goal"/>
        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
        </elements>
        <elements xsi:type="xtext:Assignment" feature="description" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
        </elements>
        <elements xsi:type="xtext:Assignment" feature="recur" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
        </elements>
        <elements xsi:type="xtext:Keyword" value=";"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Capabilities">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Capabilities"/>
      </type>
      <alternatives xsi:type="xtext:Alternatives">
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="Capabilities"/>
          <elements xsi:type="xtext:Assignment" feature="name" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="description" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Assignment" feature="cap" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Capabilities"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Keyword" value="{"/>
          <elements xsi:type="xtext:Alternatives" cardinality="*">
            <elements xsi:type="xtext:Group">
              <elements xsi:type="xtext:Keyword" value="includes"/>
              <elements xsi:type="xtext:Assignment" feature="belief" operator="=">
                <terminal xsi:type="xtext:CrossReference">
                  <type metamodel="/0/@metamodelDeclarations.0">
                    <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Belief"/>
                  </type>
                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
                </terminal>
              </elements>
              <elements xsi:type="xtext:Keyword" value=";"/>
            </elements>
            <elements xsi:type="xtext:Group">
              <elements xsi:type="xtext:Keyword" value="uses"/>
              <elements xsi:type="xtext:Assignment" feature="goal" operator="=">
                <terminal xsi:type="xtext:CrossReference">
                  <type metamodel="/0/@metamodelDeclarations.0">
                    <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Goal"/>
                  </type>
                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
                </terminal>
              </elements>
              <elements xsi:type="xtext:Keyword" value=";"/>
            </elements>
            <elements xsi:type="xtext:Group">
              <elements xsi:type="xtext:Keyword" value="applies"/>
              <elements xsi:type="xtext:Assignment" feature="plan" operator="=">
                <terminal xsi:type="xtext:CrossReference">
                  <type metamodel="/0/@metamodelDeclarations.0">
                    <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Plan"/>
                  </type>
                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
                </terminal>
              </elements>
              <elements xsi:type="xtext:Keyword" value=";"/>
            </elements>
          </elements>
          <elements xsi:type="xtext:Keyword" value="}"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="AgentState">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//AgentState"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="AgentState"/>
        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
        </elements>
        <elements xsi:type="xtext:Keyword" value=";"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="SemanticWebAgent">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//SemanticWebAgent"/>
      </type>
      <alternatives xsi:type="xtext:Alternatives">
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="SemanticWebAgent"/>
          <elements xsi:type="xtext:Assignment" feature="name" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="description" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="properties" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Assignment" feature="semanticwebagent" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//SemanticWebAgent"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Group">
            <elements xsi:type="xtext:Keyword" value="{"/>
            <elements xsi:type="xtext:Keyword" value="contains"/>
            <elements xsi:type="xtext:Assignment" feature="agentstate" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//AgentState"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
            <elements xsi:type="xtext:Group" cardinality="*">
              <elements xsi:type="xtext:Keyword" value="includes"/>
              <elements xsi:type="xtext:Assignment" feature="cap" operator="=">
                <terminal xsi:type="xtext:CrossReference">
                  <type metamodel="/0/@metamodelDeclarations.0">
                    <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Capabilities"/>
                  </type>
                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
                </terminal>
              </elements>
              <elements xsi:type="xtext:Keyword" value=";"/>
            </elements>
            <elements xsi:type="xtext:Keyword" value="includes"/>
            <elements xsi:type="xtext:Assignment" feature="cap" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Capabilities"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
            <elements xsi:type="xtext:Group" cardinality="?">
              <elements xsi:type="xtext:Keyword" value="has"/>
              <elements xsi:type="xtext:Assignment" feature="agenttype" operator="=">
                <terminal xsi:type="xtext:CrossReference">
                  <type metamodel="/0/@metamodelDeclarations.0">
                    <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//AgentType"/>
                  </type>
                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
                </terminal>
              </elements>
              <elements xsi:type="xtext:Keyword" value=";"/>
            </elements>
            <elements xsi:type="xtext:Keyword" value="plays"/>
            <elements xsi:type="xtext:Assignment" feature="role" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Role"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
            <elements xsi:type="xtext:Group" cardinality="*">
              <elements xsi:type="xtext:Keyword" value="plays"/>
              <elements xsi:type="xtext:Assignment" feature="role" operator="=">
                <terminal xsi:type="xtext:CrossReference">
                  <type metamodel="/0/@metamodelDeclarations.0">
                    <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Role"/>
                  </type>
                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
                </terminal>
              </elements>
              <elements xsi:type="xtext:Keyword" value=";"/>
            </elements>
          </elements>
          <elements xsi:type="xtext:Keyword" value="}"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Role">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Role"/>
      </type>
      <alternatives xsi:type="xtext:Alternatives">
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="Role"/>
          <elements xsi:type="xtext:Assignment" feature="name" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Assignment" feature="role" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Role"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Keyword" value="{"/>
          <elements xsi:type="xtext:Keyword" value="has"/>
          <elements xsi:type="xtext:Assignment" feature="beh" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Behaviour"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value="has"/>
            <elements xsi:type="xtext:Assignment" feature="beh" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Behaviour"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value="}"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Plan">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Plan"/>
      </type>
      <alternatives xsi:type="xtext:Alternatives">
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="Plan"/>
          <elements xsi:type="xtext:Assignment" feature="name" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="type" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="description" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="priority" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Assignment" feature="plan" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Plan"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Keyword" value="{"/>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value="dispatches"/>
            <elements xsi:type="xtext:Assignment" feature="goal" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Goal"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value="}"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="AgentType">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//AgentType"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="AgentType"/>
        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
        </elements>
        <elements xsi:type="xtext:Keyword" value=";"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Behaviour">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Behaviour"/>
      </type>
      <alternatives xsi:type="xtext:Alternatives">
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="Behaviour"/>
          <elements xsi:type="xtext:Assignment" feature="name" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
          </elements>
          <elements xsi:type="xtext:Assignment" feature="resident" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Assignment" feature="beh" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Behaviour"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Keyword" value="{"/>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value="executes"/>
            <elements xsi:type="xtext:Assignment" feature="plan" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Plan"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value="composed_of"/>
          <elements xsi:type="xtext:Assignment" feature="beh" operator="=">
            <terminal xsi:type="xtext:CrossReference">
              <type metamodel="/0/@metamodelDeclarations.0">
                <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Behaviour"/>
              </type>
              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
            </terminal>
          </elements>
          <elements xsi:type="xtext:Keyword" value=";"/>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value="composed_of"/>
            <elements xsi:type="xtext:Assignment" feature="beh" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Behaviour"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
          </elements>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value="executes"/>
            <elements xsi:type="xtext:Assignment" feature="plan" operator="=">
              <terminal xsi:type="xtext:CrossReference">
                <type metamodel="/0/@metamodelDeclarations.0">
                  <classifier xsi:type="ecore:EClass" href="http://www.xtext.org/example/mydsl3/MyDsl#//Plan"/>
                </type>
                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
              </terminal>
            </elements>
            <elements xsi:type="xtext:Keyword" value=";"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value="}"/>
        </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="&quot;"/>
          <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="&quot;"/>
                <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="&quot;"/>
              </terminal>
            </elements>
          </elements>
          <elements xsi:type="xtext:Keyword" value="&quot;"/>
        </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="&quot;"/>
                <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="&#xA;"/>
            <elements xsi:type="xtext:Keyword" value="&#xD;"/>
          </terminal>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
          <elements xsi:type="xtext:Keyword" value="&#xA;"/>
        </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="&#x9;"/>
        <elements xsi:type="xtext:Keyword" value="&#xD;"/>
        <elements xsi:type="xtext:Keyword" value="&#xA;"/>
      </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>
