<?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.openhab.model.Sitemap" usedGrammars="/1">
    <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="sitemap">
      <ePackage href="http://www.openhab.org/model/Sitemap#/"/>
    </metamodelDeclarations>
    <rules xsi:type="xtext:ParserRule" name="SitemapModel">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//SitemapModel"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="sitemap"/>
        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Sitemap">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Sitemap"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="label="/>
          <elements xsi:type="xtext:Assignment" feature="label" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="icon="/>
          <elements xsi:type="xtext:Assignment" feature="icon" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Keyword" value="{"/>
        <elements xsi:type="xtext:Assignment" cardinality="+" feature="children" operator="+=">
          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
        </elements>
        <elements xsi:type="xtext:Keyword" value="}"/>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Widget">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Widget"/>
      </type>
      <alternatives xsi:type="xtext:Alternatives">
        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
        <elements xsi:type="xtext:Alternatives">
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="LinkableWidget">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//LinkableWidget"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Alternatives">
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="label="/>
          <elements xsi:type="xtext:Assignment" feature="label" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="icon="/>
          <elements xsi:type="xtext:Assignment" feature="icon" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="{"/>
          <elements xsi:type="xtext:Assignment" cardinality="+" feature="children" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
          </elements>
          <elements xsi:type="xtext:Keyword" value="}"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Frame">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Frame"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Frame"/>
        <elements xsi:type="xtext:Action">
          <type metamodel="/0/@metamodelDeclarations.0">
            <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Frame"/>
          </type>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Text">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Text"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Text"/>
        <elements xsi:type="xtext:Action">
          <type metamodel="/0/@metamodelDeclarations.0">
            <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Text"/>
          </type>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Group">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Group"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Group"/>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Image">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Image"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Image"/>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="url="/>
          <elements xsi:type="xtext:Assignment" feature="url" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Switch">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Switch"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Switch"/>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="label="/>
          <elements xsi:type="xtext:Assignment" feature="label" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="icon="/>
          <elements xsi:type="xtext:Assignment" feature="icon" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="mappings=["/>
          <elements xsi:type="xtext:Assignment" feature="mappings" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
          </elements>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value=","/>
            <elements xsi:type="xtext:Assignment" feature="mappings" operator="+=">
              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
            </elements>
          </elements>
          <elements xsi:type="xtext:Keyword" value="]"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Slider">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Slider"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Slider"/>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="label="/>
          <elements xsi:type="xtext:Assignment" feature="label" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="icon="/>
          <elements xsi:type="xtext:Assignment" feature="icon" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="sendFrequency="/>
          <elements xsi:type="xtext:Assignment" feature="frequency" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Assignment" cardinality="?" feature="switchEnabled" operator="?=">
          <terminal xsi:type="xtext:Keyword" value="switchSupport"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Selection">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Selection"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="Selection"/>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="label="/>
          <elements xsi:type="xtext:Assignment" feature="label" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="icon="/>
          <elements xsi:type="xtext:Assignment" feature="icon" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="mappings=["/>
          <elements xsi:type="xtext:Assignment" feature="mappings" operator="+=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
          </elements>
          <elements xsi:type="xtext:Group" cardinality="*">
            <elements xsi:type="xtext:Keyword" value=","/>
            <elements xsi:type="xtext:Assignment" feature="mappings" operator="+=">
              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
            </elements>
          </elements>
          <elements xsi:type="xtext:Keyword" value="]"/>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="List">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//List"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Keyword" value="List"/>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="item="/>
          <elements xsi:type="xtext:Assignment" feature="item" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="label="/>
          <elements xsi:type="xtext:Assignment" feature="label" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group" cardinality="?">
          <elements xsi:type="xtext:Keyword" value="icon="/>
          <elements xsi:type="xtext:Assignment" feature="icon" operator="=">
            <terminal xsi:type="xtext:Alternatives">
              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
              <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
            </terminal>
          </elements>
        </elements>
        <elements xsi:type="xtext:Group">
          <elements xsi:type="xtext:Keyword" value="separator="/>
          <elements xsi:type="xtext:Assignment" feature="separator" operator="=">
            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </elements>
        </elements>
      </alternatives>
    </rules>
    <rules xsi:type="xtext:ParserRule" name="Mapping">
      <type metamodel="/0/@metamodelDeclarations.0">
        <classifier xsi:type="ecore:EClass" href="http://www.openhab.org/model/Sitemap#//Mapping"/>
      </type>
      <alternatives xsi:type="xtext:Group">
        <elements xsi:type="xtext:Assignment" feature="cmd" operator="=">
          <terminal xsi:type="xtext:Alternatives">
            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
            <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </terminal>
        </elements>
        <elements xsi:type="xtext:Keyword" value="="/>
        <elements xsi:type="xtext:Assignment" feature="label" operator="=">
          <terminal xsi:type="xtext:Alternatives">
            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
            <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
          </terminal>
        </elements>
      </alternatives>
    </rules>
    <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" 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>
  </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>
