blob: 77e8c510989e6bdfe8297e2cb79ab9a543e6ae7c [file] [log] [blame]
<?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.amp.amf.testing.ATest" usedGrammars="/1">
<metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="aTest">
<ePackage href="http://www.eclipse.org/amp/amf/testing/ATest#/"/>
</metamodelDeclarations>
<metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
<ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
</metamodelDeclarations>
<metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">
<ePackage href="http://metaabm.org/structure#/"/>
</metamodelDeclarations>
<rules xsi:type="xtext:ParserRule" name="Model">
<type metamodel="/0/@metamodelDeclarations.0">
<classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//Model"/>
</type>
<alternatives xsi:type="xtext:Group">
<tokens xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
</tokens>
<tokens xsi:type="xtext:Assignment" cardinality="?" feature="description" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
</tokens>
<tokens xsi:type="xtext:Assignment" cardinality="?" feature="tests" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
</tokens>
<tokens xsi:type="xtext:Assignment" cardinality="*" feature="contraints" operator="+=">
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
</tokens>
</alternatives>
</rules>
<rules xsi:type="xtext:ParserRule" name="Tests">
<type metamodel="/0/@metamodelDeclarations.0">
<classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//Tests"/>
</type>
<alternatives xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="TESTS"/>
<tokens xsi:type="xtext:Assignment" feature="importURI" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
</tokens>
</alternatives>
</rules>
<rules xsi:type="xtext:ParserRule" name="Constraint">
<type metamodel="/0/@metamodelDeclarations.0">
<classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//Constraint"/>
</type>
<alternatives xsi:type="xtext:Group">
<tokens xsi:type="xtext:Assignment" feature="measure" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
</tokens>
<tokens xsi:type="xtext:Keyword" value="("/>
<tokens xsi:type="xtext:Assignment" feature="agent" operator="=">
<terminal xsi:type="xtext:CrossReference">
<type metamodel="/0/@metamodelDeclarations.2">
<classifier xsi:type="ecore:EClass" href="http://metaabm.org/structure#//SAgent"/>
</type>
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
</terminal>
</tokens>
<tokens xsi:type="xtext:Keyword" value=":"/>
<tokens xsi:type="xtext:Assignment" feature="attribute" operator="=">
<terminal xsi:type="xtext:CrossReference">
<type metamodel="/0/@metamodelDeclarations.2">
<classifier xsi:type="ecore:EClass" href="http://metaabm.org/structure#//SAttribute"/>
</type>
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
</terminal>
</tokens>
<tokens xsi:type="xtext:Group" cardinality="?">
<tokens xsi:type="xtext:Keyword" value=":"/>
<tokens xsi:type="xtext:Assignment" feature="qualifier" operator="=">
<terminal xsi:type="xtext:CrossReference">
<type metamodel="/0/@metamodelDeclarations.2">
<classifier xsi:type="ecore:EClass" href="http://metaabm.org/structure#//SStateValue"/>
</type>
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
</terminal>
</tokens>
</tokens>
<tokens xsi:type="xtext:Keyword" value=")"/>
<tokens xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="="/>
<tokens xsi:type="xtext:Keyword" value="["/>
<tokens xsi:type="xtext:Assignment" feature="minValue" operator="=">
<terminal xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
<groups xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
</terminal>
</tokens>
<tokens xsi:type="xtext:Keyword" value=","/>
<tokens xsi:type="xtext:Assignment" feature="maxValue" operator="=">
<terminal xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
<groups xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
</terminal>
</tokens>
<tokens xsi:type="xtext:Keyword" value="]"/>
</tokens>
</alternatives>
</rules>
<rules xsi:type="xtext:EnumRule" name="Measure">
<type metamodel="/0/@metamodelDeclarations.0">
<classifier xsi:type="ecore:EEnum" href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure"/>
</type>
<alternatives xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:EnumLiteralDeclaration">
<enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/COUNT"/>
<literal value="Count"/>
</groups>
<groups xsi:type="xtext:EnumLiteralDeclaration">
<enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/AVERAGE"/>
<literal value="Average"/>
</groups>
<groups xsi:type="xtext:EnumLiteralDeclaration">
<enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/SUM"/>
<literal value="Sum"/>
</groups>
<groups xsi:type="xtext:EnumLiteralDeclaration">
<enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/MINIMUM"/>
<literal value="Minimum"/>
</groups>
<groups xsi:type="xtext:EnumLiteralDeclaration">
<enumLiteral href="http://www.eclipse.org/amp/amf/testing/ATest#//Measure/MAXIMUM"/>
<literal value="Maximum"/>
</groups>
</alternatives>
</rules>
<rules xsi:type="xtext:ParserRule" name="IntValue">
<type metamodel="/0/@metamodelDeclarations.0">
<classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//IntValue"/>
</type>
<alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
</alternatives>
</rules>
<rules xsi:type="xtext:ParserRule" name="RealValue">
<type metamodel="/0/@metamodelDeclarations.0">
<classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/amp/amf/testing/ATest#//RealValue"/>
</type>
<alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
</alternatives>
</rules>
<rules xsi:type="xtext:TerminalRule" name="REAL">
<type metamodel="/0/@metamodelDeclarations.1">
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</type>
<alternatives xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" cardinality="?" value="-"/>
<tokens xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
<tokens xsi:type="xtext:Group" cardinality="?">
<tokens xsi:type="xtext:Keyword" value="."/>
<tokens xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
</tokens>
</alternatives>
</rules>
<rules xsi:type="xtext:TerminalRule" name="PLAIN_STRING">
<type metamodel="/0/@metamodelDeclarations.1">
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</type>
<alternatives xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="&#xab;"/>
<tokens xsi:type="xtext:Alternatives" cardinality="*">
<groups xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="\"/>
<tokens xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="b"/>
<groups xsi:type="xtext:Keyword" value="t"/>
<groups xsi:type="xtext:Keyword" value="n"/>
<groups xsi:type="xtext:Keyword" value="f"/>
<groups xsi:type="xtext:Keyword" value="r"/>
<groups xsi:type="xtext:Keyword" value="&quot;"/>
<groups xsi:type="xtext:Keyword" value="'"/>
<groups xsi:type="xtext:Keyword" value="\"/>
</tokens>
</groups>
<groups xsi:type="xtext:NegatedToken">
<terminal xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="\"/>
<groups xsi:type="xtext:Keyword" value="&#xab;"/>
<groups xsi:type="xtext:Keyword" value="&#xbb;"/>
</terminal>
</groups>
</tokens>
<tokens xsi:type="xtext:Keyword" value="&#xbb;"/>
</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">
<tokens xsi:type="xtext:Keyword" cardinality="?" value="^"/>
<tokens xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:CharacterRange">
<left value="a"/>
<right value="z"/>
</groups>
<groups xsi:type="xtext:CharacterRange">
<left value="A"/>
<right value="Z"/>
</groups>
<groups xsi:type="xtext:Keyword" value="_"/>
</tokens>
<tokens xsi:type="xtext:Alternatives" cardinality="*">
<groups xsi:type="xtext:CharacterRange">
<left value="a"/>
<right value="z"/>
</groups>
<groups xsi:type="xtext:CharacterRange">
<left value="A"/>
<right value="Z"/>
</groups>
<groups xsi:type="xtext:Keyword" value="_"/>
<groups xsi:type="xtext:CharacterRange">
<left value="0"/>
<right value="9"/>
</groups>
</tokens>
</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">
<groups xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="&quot;"/>
<tokens xsi:type="xtext:Alternatives" cardinality="*">
<groups xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="\"/>
<tokens xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="b"/>
<groups xsi:type="xtext:Keyword" value="t"/>
<groups xsi:type="xtext:Keyword" value="n"/>
<groups xsi:type="xtext:Keyword" value="f"/>
<groups xsi:type="xtext:Keyword" value="r"/>
<groups xsi:type="xtext:Keyword" value="&quot;"/>
<groups xsi:type="xtext:Keyword" value="'"/>
<groups xsi:type="xtext:Keyword" value="\"/>
</tokens>
</groups>
<groups xsi:type="xtext:NegatedToken">
<terminal xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="\"/>
<groups xsi:type="xtext:Keyword" value="&quot;"/>
</terminal>
</groups>
</tokens>
<tokens xsi:type="xtext:Keyword" value="&quot;"/>
</groups>
<groups xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="'"/>
<tokens xsi:type="xtext:Alternatives" cardinality="*">
<groups xsi:type="xtext:Group">
<tokens xsi:type="xtext:Keyword" value="\"/>
<tokens xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="b"/>
<groups xsi:type="xtext:Keyword" value="t"/>
<groups xsi:type="xtext:Keyword" value="n"/>
<groups xsi:type="xtext:Keyword" value="f"/>
<groups xsi:type="xtext:Keyword" value="r"/>
<groups xsi:type="xtext:Keyword" value="&quot;"/>
<groups xsi:type="xtext:Keyword" value="'"/>
<groups xsi:type="xtext:Keyword" value="\"/>
</tokens>
</groups>
<groups xsi:type="xtext:NegatedToken">
<terminal xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="\"/>
<groups xsi:type="xtext:Keyword" value="'"/>
</terminal>
</groups>
</tokens>
<tokens xsi:type="xtext:Keyword" value="'"/>
</groups>
</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">
<tokens xsi:type="xtext:Keyword" value="/*"/>
<tokens xsi:type="xtext:UntilToken">
<terminal xsi:type="xtext:Keyword" value="*/"/>
</tokens>
</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">
<tokens xsi:type="xtext:Keyword" value="//"/>
<tokens xsi:type="xtext:NegatedToken" cardinality="*">
<terminal xsi:type="xtext:Alternatives">
<groups xsi:type="xtext:Keyword" value="&#xA;"/>
<groups xsi:type="xtext:Keyword" value="&#xD;"/>
</terminal>
</tokens>
<tokens xsi:type="xtext:Group" cardinality="?">
<tokens xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
<tokens xsi:type="xtext:Keyword" value="&#xA;"/>
</tokens>
</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="+">
<groups xsi:type="xtext:Keyword" value=" "/>
<groups xsi:type="xtext:Keyword" value="&#x9;"/>
<groups xsi:type="xtext:Keyword" value="&#xD;"/>
<groups 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>