vhdlams.ecore 13.5 KB
<?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="vhdlams"
    nsURI="http://www.femto-st.fr/disc/vhdlams.ecore" nsPrefix="vhdlams">
  <eClassifiers xsi:type="ecore:EClass" name="Entity" eSuperTypes="#//Component">
    <eStructuralFeatures xsi:type="ecore:EReference" name="architecture" lowerBound="1"
        upperBound="-1" eType="#//Architecture" eOpposite="#//Architecture/entity"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DesignUnit" abstract="true" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Package"
        eOpposite="#//Package/designUnit"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Architecture" eSuperTypes="#//Component">
    <eStructuralFeatures xsi:type="ecore:EReference" name="entity" lowerBound="1"
        eType="#//Entity" eOpposite="#//Entity/architecture"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Element">
    <eStructuralFeatures xsi:type="ecore:EReference" name="comment" eType="#//Comment"
        eOpposite="#//Comment/element"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Component" abstract="true" eSuperTypes="#//DesignUnit">
    <eStructuralFeatures xsi:type="ecore:EReference" name="property" upperBound="-1"
        eType="#//Property" containment="true" eOpposite="#//Property/owner"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="statement" upperBound="-1"
        eType="#//Statement" containment="true" eOpposite="#//Statement/owner"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//DesignUnit">
    <eStructuralFeatures xsi:type="ecore:EReference" name="designUnit" upperBound="-1"
        eType="#//DesignUnit" containment="true" eOpposite="#//DesignUnit/owner"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerModel" eType="#//VAModel"
        eOpposite="#//VAModel/package"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="VAModel">
    <eStructuralFeatures xsi:type="ecore:EReference" name="package" upperBound="-1"
        eType="#//Package" containment="true" eOpposite="#//Package/ownerModel"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="library" upperBound="-1"
        eType="#//Library" containment="true" eOpposite="#//Library/owner"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//DesignUnit">
    <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//Element"
        eOpposite="#//Element/comment"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="PortDirection">
    <eLiterals name="IN"/>
    <eLiterals name="OUT" value="1"/>
    <eLiterals name="INOUT" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Property" abstract="true" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//Component"
        eOpposite="#//Component/property"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//Property">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" eType="#//PortDirection"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Terminal" eSuperTypes="#//Port"/>
  <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Port"/>
  <eClassifiers xsi:type="ecore:EClass" name="QuantityPort" eSuperTypes="#//Port"/>
  <eClassifiers xsi:type="ecore:EClass" name="Type" eSuperTypes="#//DesignUnit"/>
  <eClassifiers xsi:type="ecore:EClass" name="Constant" eSuperTypes="#//Property"/>
  <eClassifiers xsi:type="ecore:EClass" name="Generic" eSuperTypes="#//Property"/>
  <eClassifiers xsi:type="ecore:EClass" name="LibraryForVhdlAms" eSuperTypes="#//Package"/>
  <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Component"
        eOpposite="#//Component/statement"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentInstanciation" eSuperTypes="#//Statement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//Entity"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="map" upperBound="-1" eType="#//Map"
        containment="true" eOpposite="#//Map/owner"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="architecture" eType="#//Architecture"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PortMap" eSuperTypes="#//Map">
    <eStructuralFeatures xsi:type="ecore:EReference" name="from" lowerBound="1" eType="#//Port"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="#//Port"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Library">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//VAModel"
        eOpposite="#//VAModel/library"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="use" upperBound="-1" eType="#//Use"
        containment="true" eOpposite="#//Use/owner"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Use">
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Library"
        eOpposite="#//Library/use"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Nature" eSuperTypes="#//Type"/>
  <eClassifiers xsi:type="ecore:EClass" name="Quantity" eSuperTypes="#//Property"/>
  <eClassifiers xsi:type="ecore:EClass" name="BranchQuantity" eSuperTypes="#//Quantity">
    <eStructuralFeatures xsi:type="ecore:EReference" name="plus_terminal" eType="#//Terminal"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="minus_terminal" eType="#//Terminal"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="through" eType="#//Variable"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="across" eType="#//Variable"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//BranchQuantity"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//Statement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="returnType" eType="#//Type"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" upperBound="-1"
        eType="#//Parameter" containment="true" eOpposite="#//Parameter/ownerFunction"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sequentialStatement" lowerBound="1"
        eType="#//SequentialStatement" containment="true" eOpposite="#//SequentialStatement/ownerFunction"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Parameter">
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerFunction" eType="#//Function"
        eOpposite="#//Function/parameter"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerProcess" eType="#//Process"
        eOpposite="#//Process/parameter"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SequentialStatement" abstract="true"
      eSuperTypes="#//Statement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerFunction" eType="#//Function"
        eOpposite="#//Function/sequentialStatement"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerProcess" eType="#//Process"
        eOpposite="#//Process/sequentialStatement"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sequentialStatement" upperBound="-1"
        eType="#//SequentialStatement" containment="true" eOpposite="#//SequentialStatement/ownerSequentialStatement"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerSequentialStatement"
        eType="#//SequentialStatement" eOpposite="#//SequentialStatement/sequentialStatement"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="predecessor" eType="#//SequentialStatement"
        eOpposite="#//SequentialStatement/successor"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="successor" lowerBound="1"
        eType="#//SequentialStatement" eOpposite="#//SequentialStatement/predecessor"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Map" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//ComponentInstanciation"
        eOpposite="#//ComponentInstanciation/map"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="GenericMap" eSuperTypes="#//Map">
    <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//Property"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//Expression"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Expression">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ConcurrentialStatement" eSuperTypes="#//Statement"/>
  <eClassifiers xsi:type="ecore:EClass" name="Equation" eSuperTypes="#//ConcurrentialStatement"/>
  <eClassifiers xsi:type="ecore:EClass" name="Process" eSuperTypes="#//ConcurrentialStatement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" upperBound="-1"
        eType="#//Parameter" containment="true" eOpposite="#//Parameter/ownerProcess"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sequentialStatement" upperBound="-1"
        eType="#//SequentialStatement" containment="true" eOpposite="#//SequentialStatement/ownerProcess"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
        eType="#//ProcessVariable" containment="true" eOpposite="#//ProcessVariable/ownerProcess"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IfThenStatement" eSuperTypes="#//SequentialStatement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="booleanExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="else" lowerBound="1" eType="#//ElseStatement"
        eOpposite="#//ElseStatement/if"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ElseStatement" eSuperTypes="#//SequentialStatement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="if" lowerBound="1" eType="#//IfThenStatement"
        eOpposite="#//IfThenStatement/else"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ForStatement" eSuperTypes="#//SequentialStatement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="loopCondition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Statements" eSuperTypes="#//SequentialStatement"/>
  <eClassifiers xsi:type="ecore:EClass" name="ProcessVariable">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownerProcess" eType="#//Process"
        eOpposite="#//Process/variables"/>
  </eClassifiers>
</ecore:EPackage>