<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipselabs.mscript.language/src"
    modelPluginID="org.eclipselabs.mscript.language" modelName="IL" importerID="org.eclipse.emf.importer.ecore"
    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipselabs.mscript.typesystem/model/TypeSystem.genmodel#//typesystem">
  <foreignModel>IL.ecore</foreignModel>
  <genPackages prefix="IL" basePackage="org.eclipselabs.mscript.language" disposableProviderFactory="true"
      ecorePackage="IL.ecore#/">
    <genDataTypes ecoreDataType="IL.ecore#//IValue"/>
    <genClasses ecoreClass="IL.ecore#//ILFunctionDefinition">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//ILFunctionDefinition/stateful"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//ILFunctionDefinition/name"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ILFunctionDefinition/templateVariableDeclarations"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ILFunctionDefinition/inputVariableDeclarations"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ILFunctionDefinition/outputVariableDeclarations"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ILFunctionDefinition/instanceVariableDeclarations"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ILFunctionDefinition/initializationCompound"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ILFunctionDefinition/computationCompounds"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//Compound">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//Compound/statements"/>
      <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference IL.ecore#//Compound/localVariableDeclarations"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//ComputationCompound">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IL.ecore#//ComputationCompound/inputs"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IL.ecore#//ComputationCompound/outputs"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//VariableDeclaration">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//VariableDeclaration/name"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IL.ecore#//VariableDeclaration/dataType"/>
    </genClasses>
    <genClasses image="false" ecoreClass="IL.ecore#//StatefulVariableDeclaration">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//StatefulVariableDeclaration/circularBufferSize"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//TemplateVariableDeclaration">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//TemplateVariableDeclaration/value"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//InputVariableDeclaration">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IL.ecore#//InputVariableDeclaration/feedingCompounds"/>
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//InputVariableDeclaration/directFeedthrough"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//OutputVariableDeclaration"/>
    <genClasses ecoreClass="IL.ecore#//InstanceVariableDeclaration"/>
    <genClasses ecoreClass="IL.ecore#//LocalVariableDeclaration">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//LocalVariableDeclaration/initializer"/>
    </genClasses>
    <genClasses image="false" ecoreClass="IL.ecore#//Statement"/>
    <genClasses ecoreClass="IL.ecore#//CompoundStatement"/>
    <genClasses image="false" ecoreClass="IL.ecore#//VariableAccess">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IL.ecore#//VariableAccess/target"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IL.ecore#//VariableAccess/stepIndex"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//Assignment">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//Assignment/assignedExpression"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//IfStatement">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//IfStatement/condition"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//IfStatement/thenStatement"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//IfStatement/elseStatement"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//ForeachStatement">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ForeachStatement/iterationVariableDeclaration"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ForeachStatement/collectionExpression"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//ForeachStatement/body"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//VariableReference">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IL.ecore#//VariableReference/arrayIndices"/>
    </genClasses>
    <genClasses ecoreClass="IL.ecore#//InvalidExpression"/>
  </genPackages>
</genmodel:GenModel>
