<?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 <> 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> |