blob: 060bcc605d9a8dd26f1c3437bfa96e9a1d3fee6c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage 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" name="XBNF" nsURI="http://www.eclipse.org/ocl/XBNF" nsPrefix="xbnf">
<eAnnotations source="http://www.eclipse.org/OCL/Import">
<details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="AbstractElement" abstract="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="debug" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parentRule" eType="#//AbstractRule"
resolveProxies="false" eOpposite="#//AbstractRule/element"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractRule">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
eType="#//AbstractElement" containment="true" eOpposite="#//AbstractElement/parentRule"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="debug" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ActionAssignment" eSuperTypes="#//Assignment">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Assignment" abstract="true" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CharacterRange" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="left" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="right" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="elements" lowerBound="1"
upperBound="-1" eType="#//AbstractElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Disjunction" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="conjunctions" lowerBound="1"
upperBound="-1" eType="#//Conjunction" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EOF" eSuperTypes="#//AbstractElement"/>
<eClassifiers xsi:type="ecore:EClass" name="Epsilon" eSuperTypes="#//AbstractElement"/>
<eClassifiers xsi:type="ecore:EClass" name="Grammar">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="syntax" lowerBound="1"
eType="#//Syntax" resolveProxies="false" eOpposite="#//Syntax/grammars"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="goals" ordered="false"
upperBound="-1" eType="#//TypedRule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="rules" ordered="false"
upperBound="-1" eType="#//TypedRule" containment="true" eOpposite="#//TypedRule/grammar"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="debug" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Keyword" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="KeywordAssignment" eSuperTypes="#//Assignment #//Keyword"/>
<eClassifiers xsi:type="ecore:EClass" name="LexerGrammar" eSuperTypes="#//Grammar"/>
<eClassifiers xsi:type="ecore:EClass" name="NegatedToken" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="terminal" lowerBound="1"
eType="#//AbstractElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParserGrammar" eSuperTypes="#//Grammar"/>
<eClassifiers xsi:type="ecore:EClass" name="ParserRule" eSuperTypes="#//TypedRule"/>
<eClassifiers xsi:type="ecore:EClass" name="RuleCall" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="referredRule" lowerBound="1"
eType="#//AbstractRule"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
changeable="false" volatile="true" transient="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="if referredRule &lt;> null then referredRule.name else '' endif"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RuleCallAssignment" eSuperTypes="#//Assignment #//RuleCall"/>
<eClassifiers xsi:type="ecore:EClass" name="Syntax">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="grammars" upperBound="-1"
eType="#//Grammar" containment="true" eOpposite="#//Grammar/syntax"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="debug" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TerminalRule" eSuperTypes="#//TypedRule"/>
<eClassifiers xsi:type="ecore:EClass" name="TypedRule" abstract="true" eSuperTypes="#//AbstractRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClassifier"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="subrules" upperBound="-1"
eType="#//UntypedRule" containment="true" eOpposite="#//UntypedRule/typedRule"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="grammar" lowerBound="1"
eType="#//Grammar" eOpposite="#//Grammar/rules"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="UntilToken" eSuperTypes="#//AbstractElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="terminal" lowerBound="1"
eType="#//AbstractElement" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="UntypedRule" eSuperTypes="#//AbstractRule">
<eStructuralFeatures xsi:type="ecore:EReference" name="typedRule" eType="#//TypedRule"
eOpposite="#//TypedRule/subrules"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Wildcard" eSuperTypes="#//AbstractElement"/>
</ecore:EPackage>