Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordwagelaar2013-05-24 19:48:54 +0000
committerdwagelaar2013-05-24 19:48:54 +0000
commitefeb4feb82e2cdc754b0268077b360284bfd129a (patch)
tree61ec8a3846933ebcc22d763810c3ee4a0ad2780c /plugins/org.eclipse.m2m.atl.emftvm
parentea8344f31c3c366421169900c33027d301e6968d (diff)
downloadorg.eclipse.atl-efeb4feb82e2cdc754b0268077b360284bfd129a.tar.gz
org.eclipse.atl-efeb4feb82e2cdc754b0268077b360284bfd129a.tar.xz
org.eclipse.atl-efeb4feb82e2cdc754b0268077b360284bfd129a.zip
Fix performance bottleneck for the bytecode verifier.
Diffstat (limited to 'plugins/org.eclipse.m2m.atl.emftvm')
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore1687
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java3
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java2
-rw-r--r--plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java59
5 files changed, 890 insertions, 863 deletions
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore b/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore
index 67979295..9d1de26a 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore
+++ b/plugins/org.eclipse.m2m.atl.emftvm/model/emftvm.ecore
@@ -1,844 +1,843 @@
-<?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="emftvm" nsURI="http://www.eclipse.org/m2m/atl/2011/EMFTVM" nsPrefix="emftvm">
- <eClassifiers xsi:type="ecore:EDataType" name="ModuleResolver" instanceClassName="org.eclipse.m2m.atl.emftvm.util.ModuleResolver"/>
- <eClassifiers xsi:type="ecore:EDataType" name="EnumLiteral" instanceClassName="org.eclipse.m2m.atl.emftvm.util.EnumLiteral"/>
- <eClassifiers xsi:type="ecore:EDataType" name="StackFrame" instanceClassName="org.eclipse.m2m.atl.emftvm.util.StackFrame"/>
- <eClassifiers xsi:type="ecore:EDataType" name="Method" instanceClassName="java.lang.reflect.Method"/>
- <eClassifiers xsi:type="ecore:EDataType" name="TimingData" instanceClassName="org.eclipse.m2m.atl.emftvm.util.TimingData"/>
- <eClassifiers xsi:type="ecore:EDataType" name="VMMonitor" instanceClassName="org.eclipse.m2m.atl.emftvm.util.VMMonitor"
- serializable="false"/>
- <eClassifiers xsi:type="ecore:EDataType" name="LazyCollection" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyCollection">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="LazyBag" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyBag">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="LazyList" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyList">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="LazyOrderedSet" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyOrderedSet">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="LazySet" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazySet">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="EJavaObjectArray" instanceClassName="java.lang.Object[]"/>
- <eClassifiers xsi:type="ecore:EDataType" name="EObjectArray" instanceClassName="org.eclipse.emf.ecore.EObject[]"/>
- <eClassifiers xsi:type="ecore:EDataType" name="EBooleanArray" instanceClassName="boolean[]"/>
- <eClassifiers xsi:type="ecore:EDataType" name="EJavaSet" instanceClassName="java.util.Set">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="EJavaIterable" instanceClassName="java.lang.Iterable">
- <eTypeParameters name="E"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ModelDeclarationTag">
- <eLiterals name="input"/>
- <eLiterals name="inout" value="1"/>
- <eLiterals name="output" value="2"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="FeatureTag">
- <eLiterals name="Field"/>
- <eLiterals name="StaticField" value="1"/>
- <eLiterals name="Operation" value="2"/>
- <eLiterals name="StaticOperation" value="3"/>
- <eLiterals name="QueryOperation" value="4"/>
- <eLiterals name="StaticQueryOperation" value="5"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="Opcode">
- <eLiterals name="PUSH" literal="PUSH"/>
- <eLiterals name="PUSHT" value="1" literal="PUSHT"/>
- <eLiterals name="PUSHF" value="2" literal="PUSHF"/>
- <eLiterals name="POP" value="3" literal="POP"/>
- <eLiterals name="LOAD" value="4" literal="LOAD"/>
- <eLiterals name="STORE" value="5" literal="STORE"/>
- <eLiterals name="SET" value="6" literal="SET"/>
- <eLiterals name="GET" value="7" literal="GET"/>
- <eLiterals name="GET_TRANS" value="8" literal="GET_TRANS"/>
- <eLiterals name="SET_STATIC" value="9" literal="SET_STATIC"/>
- <eLiterals name="GET_STATIC" value="10" literal="GET_STATIC"/>
- <eLiterals name="FINDTYPE" value="11" literal="FINDTYPE"/>
- <eLiterals name="FINDTYPE_S" value="12" literal="FINDTYPE_S"/>
- <eLiterals name="NEW" value="13" literal="NEW"/>
- <eLiterals name="NEW_S" value="14" literal="NEW_S"/>
- <eLiterals name="DELETE" value="15" literal="DELETE"/>
- <eLiterals name="DUP" value="16" literal="DUP"/>
- <eLiterals name="DUP_X1" value="17" literal="DUP_X1"/>
- <eLiterals name="SWAP" value="18" literal="SWAP"/>
- <eLiterals name="SWAP_X1" value="19"/>
- <eLiterals name="IF" value="20" literal="IF"/>
- <eLiterals name="IFN" value="21"/>
- <eLiterals name="GOTO" value="22" literal="GOTO"/>
- <eLiterals name="ITERATE" value="23" literal="ITERATE"/>
- <eLiterals name="ENDITERATE" value="24" literal="ENDITERATE"/>
- <eLiterals name="INVOKE" value="25" literal="INVOKE"/>
- <eLiterals name="INVOKE_SUPER" value="26" literal="INVOKE_SUPER"/>
- <eLiterals name="INVOKE_STATIC" value="27" literal="INVOKE_STATIC"/>
- <eLiterals name="ALLINST" value="28" literal="ALLINST"/>
- <eLiterals name="ALLINST_IN" value="29" literal="ALLINST_IN"/>
- <eLiterals name="ISNULL" value="30"/>
- <eLiterals name="GETENVTYPE" value="31"/>
- <eLiterals name="NOT" value="32"/>
- <eLiterals name="AND" value="33" literal="AND"/>
- <eLiterals name="OR" value="34"/>
- <eLiterals name="XOR" value="35"/>
- <eLiterals name="IMPLIES" value="36"/>
- <eLiterals name="IFTE" value="37"/>
- <eLiterals name="RETURN" value="38"/>
- <eLiterals name="GETCB" value="39" literal="GETCB"/>
- <eLiterals name="INVOKE_ALL_CBS" value="40" literal="INVOKE_ALL_CBS"/>
- <eLiterals name="INVOKE_CB" value="41" literal="INVOKE_CB"/>
- <eLiterals name="INVOKE_CB_S" value="42"/>
- <eLiterals name="MATCH" value="43" literal="MATCH"/>
- <eLiterals name="MATCH_S" value="44"/>
- <eLiterals name="ADD" value="45"/>
- <eLiterals name="REMOVE" value="46"/>
- <eLiterals name="INSERT" value="47"/>
- <eLiterals name="GET_SUPER" value="48" literal="GET_SUPER"/>
- <eLiterals name="GETENV" value="49" literal="GETENV"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="RuleMode">
- <eLiterals name="manual"/>
- <eLiterals name="automaticSingle" value="1"/>
- <eLiterals name="automaticRecursive" value="2"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ConstantTag">
- <eLiterals name="String"/>
- <eLiterals name="Integer" value="1"/>
- <eLiterals name="Double" value="2"/>
- <eLiterals name="Byte" value="3"/>
- <eLiterals name="Character" value="4"/>
- <eLiterals name="Float" value="5"/>
- <eLiterals name="Short" value="6"/>
- <eLiterals name="Long" value="7"/>
- <eLiterals name="EnumLiteral" value="8" literal="EnumLiteral"/>
- <eLiterals name="Null" value="9" literal="Null"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="ClassNotFoundException" instanceClassName="java.lang.ClassNotFoundException"/>
- <eClassifiers xsi:type="ecore:EClass" name="ExecEnv">
- <eOperations name="loadModule" eType="#//Module">
- <eParameters name="resolver" eType="#//ModuleResolver"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="loadModule" eType="#//Module">
- <eParameters name="resolver" eType="#//ModuleResolver"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="validate" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
- </eOperations>
- <eOperations name="findOperation" eType="#//Operation">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="parameterTypes" eType="#//EJavaObjectArray"/>
- </eOperations>
- <eOperations name="findOperation" eType="#//Operation">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="findOperation" eType="#//Operation">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="parameterType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- </eOperations>
- <eOperations name="hasOperation" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="argcount" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- </eOperations>
- <eOperations name="findStaticOperation" eType="#//Operation">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="parameterTypes" eType="#//EJavaObjectArray"/>
- </eOperations>
- <eOperations name="findStaticOperation" eType="#//Operation">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="findStaticOperation" eType="#//Operation">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="parameterType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- </eOperations>
- <eOperations name="hasStaticOperation" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="argcount" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- </eOperations>
- <eOperations name="findField" eType="#//Field">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="hasField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="findStaticField" eType="#//Field">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="hasStaticField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="findRule" eType="#//Rule">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="findType" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"
- eExceptions="#//ClassNotFoundException">
- <eParameters name="modelName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="typeName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="run" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="timingData" eType="#//TimingData"/>
- </eOperations>
- <eOperations name="getRules">
- <eGenericType eClassifier="#//LazyList">
- <eTypeArguments eClassifier="#//Rule"/>
- </eGenericType>
- </eOperations>
- <eOperations name="getModelOf" eType="#//Model">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eOperations>
- <eOperations name="getModelID" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
- <eParameters name="model" eType="#//Model"/>
- </eOperations>
- <eOperations name="getMetaModelID" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
- <eParameters name="metamodel" eType="#//Metamodel"/>
- </eOperations>
- <eOperations name="queueForDelete">
- <eParameters name="element" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="deleteQueue"/>
- <eOperations name="getInputModelOf" eType="#//Model">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eOperations>
- <eOperations name="getInoutModelOf" eType="#//Model">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eOperations>
- <eOperations name="getOutputModelOf" eType="#//Model">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eOperations>
- <eOperations name="getMonitor" eType="#//VMMonitor"/>
- <eOperations name="setMonitor">
- <eParameters name="monitor" eType="#//VMMonitor"/>
- </eOperations>
- <eOperations name="registerMetaModel">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="metamodel" eType="#//Metamodel"/>
- </eOperations>
- <eOperations name="registerInputModel">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="model" eType="#//Model"/>
- </eOperations>
- <eOperations name="registerInOutModel">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="model" eType="#//Model"/>
- </eOperations>
- <eOperations name="registerOutputModel">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eParameters name="model" eType="#//Model"/>
- </eOperations>
- <eOperations name="clearModels"/>
- <eOperations name="getMetaModel" eType="#//Metamodel">
- <eParameters name="resource" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"/>
- </eOperations>
- <eOperations name="queueForSet">
- <eParameters name="feature" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueForSet">
- <eParameters name="field" eType="#//Field"/>
- <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueXmiIDForSet">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueForAdd">
- <eParameters name="feature" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueForAdd">
- <eParameters name="field" eType="#//Field"/>
- <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueXmiIDForAdd">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueForRemove">
- <eParameters name="feature" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueForRemove">
- <eParameters name="field" eType="#//Field"/>
- <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="queueXmiIDForRemove">
- <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="setQueue"/>
- <eOperations name="queueForRemap">
- <eParameters name="source" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="target" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="remapQueue"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaModels" lowerBound="1"
- changeable="false" transient="true" defaultValueLiteral="" derived="true">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eTypeArguments eClassifier="#//Metamodel"/>
- </eGenericType>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputModels" lowerBound="1"
- changeable="false" transient="true" defaultValueLiteral="" derived="true">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eTypeArguments eClassifier="#//Model"/>
- </eGenericType>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="inoutModels" lowerBound="1"
- changeable="false" transient="true" defaultValueLiteral="" derived="true">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eTypeArguments eClassifier="#//Model"/>
- </eGenericType>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="outputModels" lowerBound="1"
- changeable="false" transient="true" defaultValueLiteral="" derived="true">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eTypeArguments eClassifier="#//Model"/>
- </eGenericType>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="modules" lowerBound="1"
- changeable="false" transient="true" derived="true">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eTypeArguments eClassifier="#//Module"/>
- </eGenericType>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="matches" lowerBound="1"
- eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLinkSet"
- changeable="false" transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="traces" lowerBound="1"
- eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLinkSet"
- changeable="false" transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueResults" lowerBound="1"
- changeable="false" transient="true" derived="true">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
- <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
- </eGenericType>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="jitDisabled" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
- transient="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="currentPhase" eType="#//RuleMode"
- changeable="false" transient="true" defaultValueLiteral="null"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Model">
- <eOperations name="allInstancesOf">
- <eGenericType eClassifier="#//LazyList">
- <eTypeArguments eClassifier="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eGenericType>
- <eParameters name="type" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
- </eOperations>
- <eOperations name="newElement" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="type" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
- </eOperations>
- <eOperations name="deleteElement">
- <eParameters name="element" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="resource" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"
- transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="allowInterModelReferences"
- lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
- transient="true" defaultValueLiteral="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Metamodel" eSuperTypes="#//Model">
- <eOperations name="findType" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier">
- <eParameters name="typeName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Module" eSuperTypes="#//NamedElement">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceName" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
- eType="#//Feature" containment="true" eOpposite="#//Feature/module"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
- eType="#//Rule" containment="true" eOpposite="#//Rule/module"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="eImports" upperBound="-1"
- eType="#//Module" transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="imports" upperBound="-1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inputModels" upperBound="-1"
- eType="#//ModelDeclaration" containment="true" eOpposite="#//ModelDeclaration/inputModelFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inoutModels" upperBound="-1"
- eType="#//ModelDeclaration" containment="true" eOpposite="#//ModelDeclaration/inoutModelFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outputModels" upperBound="-1"
- eType="#//ModelDeclaration" containment="true" eOpposite="#//ModelDeclaration/outputModelFor"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ModelDeclaration">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelName" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaModelName" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inputModelFor" eType="#//Module"
- eOpposite="#//Module/inputModels"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inoutModelFor" eType="#//Module"
- eOpposite="#//Module/inoutModels"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outputModelFor" eType="#//Module"
- eOpposite="#//Module/outputModels"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//TypedElement">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="eContext" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"
- transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//Module"
- eOpposite="#//Module/features"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="context" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="contextModel" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="#//Feature">
- <eOperations name="getValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- </eOperations>
- <eOperations name="setValue">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- </eOperations>
- <eOperations name="getValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="getStaticValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="clear"/>
- <eOperations name="addValue">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="removeValue">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="staticValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"
- transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="initialiser" lowerBound="1"
- eType="#//CodeBlock" containment="true" eOpposite="#//CodeBlock/initialiserFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="rule" eType="#//Rule" eOpposite="#//Rule/fields"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//Feature">
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
- eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="query" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="body" lowerBound="1" eType="#//CodeBlock"
- containment="true" eOpposite="#//CodeBlock/bodyFor"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//TypedElement">
- <eStructuralFeatures xsi:type="ecore:EReference" name="operation" eType="#//Operation"
- eOpposite="#//Operation/parameters"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
- <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"
- transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeModel" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Instruction" abstract="true">
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningBlock" lowerBound="1"
- eType="#//CodeBlock" eOpposite="#//CodeBlock/code"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="opcode" lowerBound="1"
- eType="#//Opcode" changeable="false" transient="true" defaultValueLiteral=""
- derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="stackProduction" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- changeable="false" transient="true" defaultValueLiteral="0" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="stackConsumption" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- changeable="false" transient="true" defaultValueLiteral="0" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="stackLevel" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- changeable="false" volatile="true" transient="true" defaultValueLiteral="0"
- derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="lineNumber" eType="#//LineNumber"
- eOpposite="#//LineNumber/instructions"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LineNumber">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="startLine" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- defaultValueLiteral="-1"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="startColumn" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- defaultValueLiteral="-1"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="endLine" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- defaultValueLiteral="-1"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="endColumn" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- defaultValueLiteral="-1"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="startChar" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- defaultValueLiteral="-1"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="endChar" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- defaultValueLiteral="-1"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningBlock" lowerBound="1"
- eType="#//CodeBlock" eOpposite="#//CodeBlock/lineNumbers"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="instructions" upperBound="-1"
- eType="#//Instruction" eOpposite="#//Instruction/lineNumber"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LocalVariable" eSuperTypes="#//TypedElement">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="slot" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningBlock" lowerBound="1"
- eType="#//CodeBlock" eOpposite="#//CodeBlock/localVariables"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="startInstruction" eType="#//Instruction"
- transient="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="endInstruction" eType="#//Instruction"
- transient="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="startInstructionIndex"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="endInstructionIndex" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Rule" eSuperTypes="#//NamedElement">
- <eOperations name="findField" eType="#//Field">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="hasField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="findStaticField" eType="#//Field">
- <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="hasStaticField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eOperations>
- <eOperations name="registerField">
- <eParameters name="field" eType="#//Field"/>
- </eOperations>
- <eOperations name="matchSingle" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="matchRecursive" eType="#//EBooleanArray">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="matchManual" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject">
- <eParameters name="frame" eType="#//StackFrame"/>
- <eParameters name="values" eType="#//EJavaObjectArray"/>
- </eOperations>
- <eOperations name="matchOne" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="frame" eType="#//StackFrame"/>
- <eParameters name="valuesMap">
- <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- </eGenericType>
- </eParameters>
- </eOperations>
- <eOperations name="createTraces">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="completeTraceFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="frame" eType="#//StackFrame"/>
- <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
- </eOperations>
- <eOperations name="apply">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="postApply">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="applyFirst" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="applyFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="frame" eType="#//StackFrame"/>
- <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
- </eOperations>
- <eOperations name="postApplyFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="frame" eType="#//StackFrame"/>
- <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
- </eOperations>
- <eOperations name="getAllESuperRules">
- <eGenericType eClassifier="#//LazySet">
- <eTypeArguments eClassifier="#//Rule"/>
- </eGenericType>
- </eOperations>
- <eOperations name="createUniqueMapping">
- <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
- </eOperations>
- <eOperations name="compileState">
- <eParameters name="env" eType="#//ExecEnv"/>
- </eOperations>
- <eOperations name="resetState"/>
- <eOperations name="compileIterables">
- <eParameters name="env" eType="#//ExecEnv"/>
- </eOperations>
- <eOperations name="clearFields"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//Module"
- eOpposite="#//Module/rules"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" lowerBound="1" eType="#//RuleMode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inputElements" upperBound="-1"
- eType="#//InputRuleElement" containment="true" eOpposite="#//InputRuleElement/inputFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outputElements" upperBound="-1"
- eType="#//OutputRuleElement" containment="true" eOpposite="#//OutputRuleElement/outputFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperRules" upperBound="-1"
- eType="#//Rule" transient="true" derived="true" eOpposite="#//Rule/eSubRules"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="eSubRules" upperBound="-1"
- eType="#//Rule" transient="true" derived="true" eOpposite="#//Rule/eSuperRules"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="matcher" eType="#//CodeBlock"
- containment="true" eOpposite="#//CodeBlock/matcherFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="applier" eType="#//CodeBlock"
- containment="true" eOpposite="#//CodeBlock/applierFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="postApply" eType="#//CodeBlock"
- containment="true" eOpposite="#//CodeBlock/postApplyFor"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="superRules" upperBound="-1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1"
- eType="#//Field" containment="true" eOpposite="#//Field/rule"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="distinctElements" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
- changeable="false" transient="true" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="withLeaves" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
- changeable="false" transient="true" derived="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RuleElement" abstract="true" eSuperTypes="#//TypedElement">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="models" upperBound="-1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="eModels" upperBound="-1"
- eType="#//Model" transient="true" derived="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InputRuleElement" eSuperTypes="#//RuleElement">
- <eOperations name="createIterable">
- <eGenericType eClassifier="#//EJavaIterable">
- <eTypeArguments eClassifier="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- </eGenericType>
- <eParameters name="env" eType="#//ExecEnv"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="binding" eType="#//CodeBlock"
- containment="true" eOpposite="#//CodeBlock/bindingFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inputFor" eType="#//Rule"
- eOpposite="#//Rule/inputElements"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OutputRuleElement" eSuperTypes="#//RuleElement">
- <eStructuralFeatures xsi:type="ecore:EReference" name="mapsTo" upperBound="-1"
- eType="#//InputRuleElement"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outputFor" eType="#//Rule"
- eOpposite="#//Rule/outputElements"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CodeBlock">
- <eOperations name="execute" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="frame" eType="#//StackFrame"/>
- </eOperations>
- <eOperations name="getStackLevel" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- <eOperations name="getModule" eType="#//Module"/>
- <eOperations name="getOperation" eType="#//Operation"/>
- <eOperations name="getField" eType="#//Field"/>
- <eOperations name="getPredecessors" upperBound="-1" eType="#//Instruction">
- <eParameters name="i" eType="#//Instruction"/>
- </eOperations>
- <eOperations name="getAllPredecessors" upperBound="-1" eType="#//Instruction">
- <eParameters name="i" eType="#//Instruction"/>
- </eOperations>
- <eOperations name="getNonLoopingPredecessors" upperBound="-1" eType="#//Instruction">
- <eParameters name="i" eType="#//Instruction"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxLocals" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxStack" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="code" upperBound="-1" eType="#//Instruction"
- containment="true" eOpposite="#//Instruction/owningBlock"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="lineNumbers" upperBound="-1"
- eType="#//LineNumber" containment="true" eOpposite="#//LineNumber/owningBlock"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" upperBound="-1"
- eType="#//LocalVariable" containment="true" eOpposite="#//LocalVariable/owningBlock"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="matcherFor" eType="#//Rule"
- eOpposite="#//Rule/matcher"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="applierFor" eType="#//Rule"
- eOpposite="#//Rule/applier"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="postApplyFor" eType="#//Rule"
- eOpposite="#//Rule/postApply.1"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="bodyFor" eType="#//Operation"
- eOpposite="#//Operation/body"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="initialiserFor" eType="#//Field"
- eOpposite="#//Field/initialiser"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nested" upperBound="-1"
- eType="#//CodeBlock" containment="true" eOpposite="#//CodeBlock/nestedFor"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestedFor" eType="#//CodeBlock"
- eOpposite="#//CodeBlock/nested"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="parentFrame" eType="#//StackFrame"
- transient="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="bindingFor" eType="#//InputRuleElement"
- eOpposite="#//InputRuleElement/binding"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Push" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"
- transient="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
- defaultValueLiteral=""/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"
- defaultValueLiteral=""/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="doubleValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="byteValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EByteObject"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="charValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ECharacterObject"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="floatValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EFloatObject"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EShortObject"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="longValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Pusht" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Pushf" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Pop" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="LocalVariableInstruction" abstract="true"
- eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="cbOffset" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="slot" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- changeable="false" volatile="true" transient="true" defaultValueLiteral="-1"
- derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="localVariableIndex" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="localVariable" lowerBound="1"
- eType="#//LocalVariable" volatile="true" transient="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Load" eSuperTypes="#//LocalVariableInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Store" eSuperTypes="#//LocalVariableInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="FieldInstruction" abstract="true" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldname" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Set" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Get" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="GetTrans" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="SetStatic" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="GetStatic" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Findtype" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelname" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="typename" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="FindtypeS" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="New" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelname" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="NewS" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Delete" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Dup" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="DupX1" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Swap" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="SwapX1" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="BranchInstruction" abstract="true" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
- eType="#//Instruction" volatile="true" transient="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="If" eSuperTypes="#//BranchInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Ifn" eSuperTypes="#//BranchInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Goto" eSuperTypes="#//BranchInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Iterate" eSuperTypes="#//BranchInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Enditerate" eSuperTypes="#//BranchInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeInstruction" abstract="true" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="argcount" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeOperationInstruction" abstract="true"
- eSuperTypes="#//InvokeInstruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="opname" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Invoke" eSuperTypes="#//InvokeOperationInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeSuper" eSuperTypes="#//InvokeOperationInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeStatic" eSuperTypes="#//InvokeOperationInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Allinst" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="AllinstIn" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Isnull" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Getenvtype" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Not" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="And" eSuperTypes="#//CodeBlockInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Or" eSuperTypes="#//CodeBlockInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Xor" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Implies" eSuperTypes="#//CodeBlockInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Ifte" eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="thenCbIndex" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="elseCbIndex" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="thenCb" lowerBound="1"
- eType="#//CodeBlock" volatile="true" transient="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="elseCb" lowerBound="1"
- eType="#//CodeBlock" volatile="true" transient="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Return" eSuperTypes="#//Instruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="CodeBlockInstruction" abstract="true"
- eSuperTypes="#//Instruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="cbIndex" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
- volatile="true" defaultValueLiteral="-1" derived="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="codeBlock" lowerBound="1"
- eType="#//CodeBlock" volatile="true" transient="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Getcb" eSuperTypes="#//CodeBlockInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeAllCbs" eSuperTypes="#//InvokeInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeCb" eSuperTypes="#//CodeBlockInstruction #//InvokeInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="InvokeCbS" eSuperTypes="#//InvokeInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Match" eSuperTypes="#//InvokeInstruction">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="rulename" lowerBound="1"
- eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MatchS" eSuperTypes="#//InvokeInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Add" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Remove" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Insert" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="GetSuper" eSuperTypes="#//FieldInstruction"/>
- <eClassifiers xsi:type="ecore:EClass" name="Getenv" eSuperTypes="#//Instruction"/>
-</ecore:EPackage>
+<?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="emftvm" nsURI="http://www.eclipse.org/m2m/atl/2011/EMFTVM" nsPrefix="emftvm">
+ <eClassifiers xsi:type="ecore:EDataType" name="ModuleResolver" instanceClassName="org.eclipse.m2m.atl.emftvm.util.ModuleResolver"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="EnumLiteral" instanceClassName="org.eclipse.m2m.atl.emftvm.util.EnumLiteral"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="StackFrame" instanceClassName="org.eclipse.m2m.atl.emftvm.util.StackFrame"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="Method" instanceClassName="java.lang.reflect.Method"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="TimingData" instanceClassName="org.eclipse.m2m.atl.emftvm.util.TimingData"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="VMMonitor" instanceClassName="org.eclipse.m2m.atl.emftvm.util.VMMonitor"
+ serializable="false"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="LazyCollection" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyCollection">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="LazyBag" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyBag">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="LazyList" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyList">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="LazyOrderedSet" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazyOrderedSet">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="LazySet" instanceClassName="org.eclipse.m2m.atl.emftvm.util.LazySet">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="EJavaObjectArray" instanceClassName="java.lang.Object[]"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="EObjectArray" instanceClassName="org.eclipse.emf.ecore.EObject[]"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="EBooleanArray" instanceClassName="boolean[]"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="EJavaSet" instanceClassName="java.util.Set">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="EJavaIterable" instanceClassName="java.lang.Iterable">
+ <eTypeParameters name="E"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ModelDeclarationTag">
+ <eLiterals name="input"/>
+ <eLiterals name="inout" value="1"/>
+ <eLiterals name="output" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FeatureTag">
+ <eLiterals name="Field"/>
+ <eLiterals name="StaticField" value="1"/>
+ <eLiterals name="Operation" value="2"/>
+ <eLiterals name="StaticOperation" value="3"/>
+ <eLiterals name="QueryOperation" value="4"/>
+ <eLiterals name="StaticQueryOperation" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Opcode">
+ <eLiterals name="PUSH" literal="PUSH"/>
+ <eLiterals name="PUSHT" value="1" literal="PUSHT"/>
+ <eLiterals name="PUSHF" value="2" literal="PUSHF"/>
+ <eLiterals name="POP" value="3" literal="POP"/>
+ <eLiterals name="LOAD" value="4" literal="LOAD"/>
+ <eLiterals name="STORE" value="5" literal="STORE"/>
+ <eLiterals name="SET" value="6" literal="SET"/>
+ <eLiterals name="GET" value="7" literal="GET"/>
+ <eLiterals name="GET_TRANS" value="8" literal="GET_TRANS"/>
+ <eLiterals name="SET_STATIC" value="9" literal="SET_STATIC"/>
+ <eLiterals name="GET_STATIC" value="10" literal="GET_STATIC"/>
+ <eLiterals name="FINDTYPE" value="11" literal="FINDTYPE"/>
+ <eLiterals name="FINDTYPE_S" value="12" literal="FINDTYPE_S"/>
+ <eLiterals name="NEW" value="13" literal="NEW"/>
+ <eLiterals name="NEW_S" value="14" literal="NEW_S"/>
+ <eLiterals name="DELETE" value="15" literal="DELETE"/>
+ <eLiterals name="DUP" value="16" literal="DUP"/>
+ <eLiterals name="DUP_X1" value="17" literal="DUP_X1"/>
+ <eLiterals name="SWAP" value="18" literal="SWAP"/>
+ <eLiterals name="SWAP_X1" value="19"/>
+ <eLiterals name="IF" value="20" literal="IF"/>
+ <eLiterals name="IFN" value="21"/>
+ <eLiterals name="GOTO" value="22" literal="GOTO"/>
+ <eLiterals name="ITERATE" value="23" literal="ITERATE"/>
+ <eLiterals name="ENDITERATE" value="24" literal="ENDITERATE"/>
+ <eLiterals name="INVOKE" value="25" literal="INVOKE"/>
+ <eLiterals name="INVOKE_SUPER" value="26" literal="INVOKE_SUPER"/>
+ <eLiterals name="INVOKE_STATIC" value="27" literal="INVOKE_STATIC"/>
+ <eLiterals name="ALLINST" value="28" literal="ALLINST"/>
+ <eLiterals name="ALLINST_IN" value="29" literal="ALLINST_IN"/>
+ <eLiterals name="ISNULL" value="30"/>
+ <eLiterals name="GETENVTYPE" value="31"/>
+ <eLiterals name="NOT" value="32"/>
+ <eLiterals name="AND" value="33" literal="AND"/>
+ <eLiterals name="OR" value="34"/>
+ <eLiterals name="XOR" value="35"/>
+ <eLiterals name="IMPLIES" value="36"/>
+ <eLiterals name="IFTE" value="37"/>
+ <eLiterals name="RETURN" value="38"/>
+ <eLiterals name="GETCB" value="39" literal="GETCB"/>
+ <eLiterals name="INVOKE_ALL_CBS" value="40" literal="INVOKE_ALL_CBS"/>
+ <eLiterals name="INVOKE_CB" value="41" literal="INVOKE_CB"/>
+ <eLiterals name="INVOKE_CB_S" value="42"/>
+ <eLiterals name="MATCH" value="43" literal="MATCH"/>
+ <eLiterals name="MATCH_S" value="44"/>
+ <eLiterals name="ADD" value="45"/>
+ <eLiterals name="REMOVE" value="46"/>
+ <eLiterals name="INSERT" value="47"/>
+ <eLiterals name="GET_SUPER" value="48" literal="GET_SUPER"/>
+ <eLiterals name="GETENV" value="49" literal="GETENV"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RuleMode">
+ <eLiterals name="manual"/>
+ <eLiterals name="automaticSingle" value="1"/>
+ <eLiterals name="automaticRecursive" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ConstantTag">
+ <eLiterals name="String"/>
+ <eLiterals name="Integer" value="1"/>
+ <eLiterals name="Double" value="2"/>
+ <eLiterals name="Byte" value="3"/>
+ <eLiterals name="Character" value="4"/>
+ <eLiterals name="Float" value="5"/>
+ <eLiterals name="Short" value="6"/>
+ <eLiterals name="Long" value="7"/>
+ <eLiterals name="EnumLiteral" value="8" literal="EnumLiteral"/>
+ <eLiterals name="Null" value="9" literal="Null"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="ClassNotFoundException" instanceClassName="java.lang.ClassNotFoundException"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ExecEnv">
+ <eOperations name="loadModule" eType="#//Module">
+ <eParameters name="resolver" eType="#//ModuleResolver"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="loadModule" eType="#//Module">
+ <eParameters name="resolver" eType="#//ModuleResolver"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="validate" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ </eOperations>
+ <eOperations name="findOperation" eType="#//Operation">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="parameterTypes" eType="#//EJavaObjectArray"/>
+ </eOperations>
+ <eOperations name="findOperation" eType="#//Operation">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="findOperation" eType="#//Operation">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="parameterType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="hasOperation" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="argcount" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="findStaticOperation" eType="#//Operation">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="parameterTypes" eType="#//EJavaObjectArray"/>
+ </eOperations>
+ <eOperations name="findStaticOperation" eType="#//Operation">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="findStaticOperation" eType="#//Operation">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="parameterType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="hasStaticOperation" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="argcount" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="findField" eType="#//Field">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="hasField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="findStaticField" eType="#//Field">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="hasStaticField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="findRule" eType="#//Rule">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="findType" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"
+ eExceptions="#//ClassNotFoundException">
+ <eParameters name="modelName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="typeName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="run" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="timingData" eType="#//TimingData"/>
+ </eOperations>
+ <eOperations name="getRules">
+ <eGenericType eClassifier="#//LazyList">
+ <eTypeArguments eClassifier="#//Rule"/>
+ </eGenericType>
+ </eOperations>
+ <eOperations name="getModelOf" eType="#//Model">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eOperations>
+ <eOperations name="getModelID" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eParameters name="model" eType="#//Model"/>
+ </eOperations>
+ <eOperations name="getMetaModelID" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eParameters name="metamodel" eType="#//Metamodel"/>
+ </eOperations>
+ <eOperations name="queueForDelete">
+ <eParameters name="element" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="deleteQueue"/>
+ <eOperations name="getInputModelOf" eType="#//Model">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eOperations>
+ <eOperations name="getInoutModelOf" eType="#//Model">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eOperations>
+ <eOperations name="getOutputModelOf" eType="#//Model">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eOperations>
+ <eOperations name="getMonitor" eType="#//VMMonitor"/>
+ <eOperations name="setMonitor">
+ <eParameters name="monitor" eType="#//VMMonitor"/>
+ </eOperations>
+ <eOperations name="registerMetaModel">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="metamodel" eType="#//Metamodel"/>
+ </eOperations>
+ <eOperations name="registerInputModel">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="model" eType="#//Model"/>
+ </eOperations>
+ <eOperations name="registerInOutModel">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="model" eType="#//Model"/>
+ </eOperations>
+ <eOperations name="registerOutputModel">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eParameters name="model" eType="#//Model"/>
+ </eOperations>
+ <eOperations name="clearModels"/>
+ <eOperations name="getMetaModel" eType="#//Metamodel">
+ <eParameters name="resource" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"/>
+ </eOperations>
+ <eOperations name="queueForSet">
+ <eParameters name="feature" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueForSet">
+ <eParameters name="field" eType="#//Field"/>
+ <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueXmiIDForSet">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueForAdd">
+ <eParameters name="feature" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueForAdd">
+ <eParameters name="field" eType="#//Field"/>
+ <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueXmiIDForAdd">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueForRemove">
+ <eParameters name="feature" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueForRemove">
+ <eParameters name="field" eType="#//Field"/>
+ <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="queueXmiIDForRemove">
+ <eParameters name="object" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="setQueue"/>
+ <eOperations name="queueForRemap">
+ <eParameters name="source" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="target" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="remapQueue"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaModels" lowerBound="1"
+ changeable="false" transient="true" defaultValueLiteral="" derived="true">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="#//Metamodel"/>
+ </eGenericType>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputModels" lowerBound="1"
+ changeable="false" transient="true" defaultValueLiteral="" derived="true">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="#//Model"/>
+ </eGenericType>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inoutModels" lowerBound="1"
+ changeable="false" transient="true" defaultValueLiteral="" derived="true">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="#//Model"/>
+ </eGenericType>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outputModels" lowerBound="1"
+ changeable="false" transient="true" defaultValueLiteral="" derived="true">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="#//Model"/>
+ </eGenericType>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modules" lowerBound="1"
+ changeable="false" transient="true" derived="true">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="#//Module"/>
+ </eGenericType>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matches" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLinkSet"
+ changeable="false" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="traces" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLinkSet"
+ changeable="false" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueResults" lowerBound="1"
+ changeable="false" transient="true" derived="true">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="jitDisabled" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="currentPhase" eType="#//RuleMode"
+ changeable="false" transient="true" defaultValueLiteral="null"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eOperations name="allInstancesOf">
+ <eGenericType eClassifier="#//LazyList">
+ <eTypeArguments eClassifier="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eGenericType>
+ <eParameters name="type" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
+ </eOperations>
+ <eOperations name="newElement" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
+ <eParameters name="type" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
+ </eOperations>
+ <eOperations name="deleteElement">
+ <eParameters name="element" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resource" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"
+ transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="allowInterModelReferences"
+ lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ transient="true" defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Metamodel" eSuperTypes="#//Model">
+ <eOperations name="findType" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier">
+ <eParameters name="typeName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Module" eSuperTypes="#//NamedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceName" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
+ eType="#//Feature" containment="true" eOpposite="#//Feature/module"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
+ eType="#//Rule" containment="true" eOpposite="#//Rule/module"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eImports" upperBound="-1"
+ eType="#//Module" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="imports" upperBound="-1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputModels" upperBound="-1"
+ eType="#//ModelDeclaration" containment="true" eOpposite="#//ModelDeclaration/inputModelFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inoutModels" upperBound="-1"
+ eType="#//ModelDeclaration" containment="true" eOpposite="#//ModelDeclaration/inoutModelFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputModels" upperBound="-1"
+ eType="#//ModelDeclaration" containment="true" eOpposite="#//ModelDeclaration/outputModelFor"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelName" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaModelName" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputModelFor" eType="#//Module"
+ eOpposite="#//Module/inputModels"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inoutModelFor" eType="#//Module"
+ eOpposite="#//Module/inoutModels"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputModelFor" eType="#//Module"
+ eOpposite="#//Module/outputModels"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//TypedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eContext" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"
+ transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//Module"
+ eOpposite="#//Module/features"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="context" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contextModel" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="#//Feature">
+ <eOperations name="getValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="setValue">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="getValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="getStaticValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="clear"/>
+ <eOperations name="addValue">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="index" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="removeValue">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="staticValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"
+ transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initialiser" lowerBound="1"
+ eType="#//CodeBlock" containment="true" eOpposite="#//CodeBlock/initialiserFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" eType="#//Rule" eOpposite="#//Rule/fields"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//Feature">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
+ eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="query" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="body" lowerBound="1" eType="#//CodeBlock"
+ containment="true" eOpposite="#//CodeBlock/bodyFor"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//TypedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operation" eType="#//Operation"
+ eOpposite="#//Operation/parameters"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"
+ transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeModel" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Instruction" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningBlock" lowerBound="1"
+ eType="#//CodeBlock" eOpposite="#//CodeBlock/code"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="opcode" lowerBound="1"
+ eType="#//Opcode" changeable="false" transient="true" defaultValueLiteral=""
+ derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stackProduction" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ changeable="false" transient="true" defaultValueLiteral="0" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stackConsumption" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ changeable="false" transient="true" defaultValueLiteral="0" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stackLevel" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ changeable="false" transient="true" defaultValueLiteral="0" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lineNumber" eType="#//LineNumber"
+ eOpposite="#//LineNumber/instructions"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LineNumber">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startLine" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startColumn" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="endLine" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="endColumn" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startChar" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="endChar" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningBlock" lowerBound="1"
+ eType="#//CodeBlock" eOpposite="#//CodeBlock/lineNumbers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="instructions" upperBound="-1"
+ eType="#//Instruction" eOpposite="#//Instruction/lineNumber"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocalVariable" eSuperTypes="#//TypedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="slot" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningBlock" lowerBound="1"
+ eType="#//CodeBlock" eOpposite="#//CodeBlock/localVariables"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="startInstruction" eType="#//Instruction"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="endInstruction" eType="#//Instruction"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startInstructionIndex"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="endInstructionIndex" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Rule" eSuperTypes="#//NamedElement">
+ <eOperations name="findField" eType="#//Field">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="hasField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="findStaticField" eType="#//Field">
+ <eParameters name="context" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="hasStaticField" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eOperations>
+ <eOperations name="registerField">
+ <eParameters name="field" eType="#//Field"/>
+ </eOperations>
+ <eOperations name="matchSingle" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="matchRecursive" eType="#//EBooleanArray">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="matchManual" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ <eParameters name="values" eType="#//EJavaObjectArray"/>
+ </eOperations>
+ <eOperations name="matchOne" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ <eParameters name="valuesMap">
+ <eGenericType eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eTypeArguments eClassifier="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="createTraces">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="completeTraceFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
+ </eOperations>
+ <eOperations name="apply">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="postApply">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="applyFirst" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="applyFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
+ </eOperations>
+ <eOperations name="postApplyFor" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
+ </eOperations>
+ <eOperations name="getAllESuperRules">
+ <eGenericType eClassifier="#//LazySet">
+ <eTypeArguments eClassifier="#//Rule"/>
+ </eGenericType>
+ </eOperations>
+ <eOperations name="createUniqueMapping">
+ <eParameters name="trace" eType="ecore:EClass platform:/plugin/org.eclipse.m2m.atl.emftvm.trace/model/trace.ecore#//TraceLink"/>
+ </eOperations>
+ <eOperations name="compileState">
+ <eParameters name="env" eType="#//ExecEnv"/>
+ </eOperations>
+ <eOperations name="resetState"/>
+ <eOperations name="compileIterables">
+ <eParameters name="env" eType="#//ExecEnv"/>
+ </eOperations>
+ <eOperations name="clearFields"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//Module"
+ eOpposite="#//Module/rules"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" lowerBound="1" eType="#//RuleMode"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputElements" upperBound="-1"
+ eType="#//InputRuleElement" containment="true" eOpposite="#//InputRuleElement/inputFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputElements" upperBound="-1"
+ eType="#//OutputRuleElement" containment="true" eOpposite="#//OutputRuleElement/outputFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperRules" upperBound="-1"
+ eType="#//Rule" transient="true" derived="true" eOpposite="#//Rule/eSubRules"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eSubRules" upperBound="-1"
+ eType="#//Rule" transient="true" derived="true" eOpposite="#//Rule/eSuperRules"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matcher" eType="#//CodeBlock"
+ containment="true" eOpposite="#//CodeBlock/matcherFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applier" eType="#//CodeBlock"
+ containment="true" eOpposite="#//CodeBlock/applierFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postApply" eType="#//CodeBlock"
+ containment="true" eOpposite="#//CodeBlock/postApplyFor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="superRules" upperBound="-1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1"
+ eType="#//Field" containment="true" eOpposite="#//Field/rule"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="distinctElements" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ changeable="false" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="withLeaves" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ changeable="false" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RuleElement" abstract="true" eSuperTypes="#//TypedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="models" upperBound="-1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eModels" upperBound="-1"
+ eType="#//Model" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InputRuleElement" eSuperTypes="#//RuleElement">
+ <eOperations name="createIterable">
+ <eGenericType eClassifier="#//EJavaIterable">
+ <eTypeArguments eClassifier="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ </eGenericType>
+ <eParameters name="env" eType="#//ExecEnv"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="binding" eType="#//CodeBlock"
+ containment="true" eOpposite="#//CodeBlock/bindingFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputFor" eType="#//Rule"
+ eOpposite="#//Rule/inputElements"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutputRuleElement" eSuperTypes="#//RuleElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapsTo" upperBound="-1"
+ eType="#//InputRuleElement"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputFor" eType="#//Rule"
+ eOpposite="#//Rule/outputElements"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CodeBlock">
+ <eOperations name="execute" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="frame" eType="#//StackFrame"/>
+ </eOperations>
+ <eOperations name="getStackLevel" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ <eOperations name="getModule" eType="#//Module"/>
+ <eOperations name="getOperation" eType="#//Operation"/>
+ <eOperations name="getField" eType="#//Field"/>
+ <eOperations name="getPredecessors" upperBound="-1" eType="#//Instruction">
+ <eParameters name="i" eType="#//Instruction"/>
+ </eOperations>
+ <eOperations name="getAllPredecessors" upperBound="-1" eType="#//Instruction">
+ <eParameters name="i" eType="#//Instruction"/>
+ </eOperations>
+ <eOperations name="getNonLoopingPredecessors" upperBound="-1" eType="#//Instruction">
+ <eParameters name="i" eType="#//Instruction"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxLocals" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxStack" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="code" upperBound="-1" eType="#//Instruction"
+ containment="true" eOpposite="#//Instruction/owningBlock"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lineNumbers" upperBound="-1"
+ eType="#//LineNumber" containment="true" eOpposite="#//LineNumber/owningBlock"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" upperBound="-1"
+ eType="#//LocalVariable" containment="true" eOpposite="#//LocalVariable/owningBlock"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matcherFor" eType="#//Rule"
+ eOpposite="#//Rule/matcher"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applierFor" eType="#//Rule"
+ eOpposite="#//Rule/applier"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postApplyFor" eType="#//Rule"
+ eOpposite="#//Rule/postApply.1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodyFor" eType="#//Operation"
+ eOpposite="#//Operation/body"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initialiserFor" eType="#//Field"
+ eOpposite="#//Field/initialiser"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nested" upperBound="-1"
+ eType="#//CodeBlock" containment="true" eOpposite="#//CodeBlock/nestedFor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestedFor" eType="#//CodeBlock"
+ eOpposite="#//CodeBlock/nested"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parentFrame" eType="#//StackFrame"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bindingFor" eType="#//InputRuleElement"
+ eOpposite="#//InputRuleElement/binding"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Push" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="doubleValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="byteValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EByteObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="charValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ECharacterObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="floatValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EFloatObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EShortObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="longValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Pusht" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Pushf" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Pop" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="LocalVariableInstruction" abstract="true"
+ eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cbOffset" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="slot" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ changeable="false" volatile="true" transient="true" defaultValueLiteral="-1"
+ derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="localVariableIndex" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="localVariable" lowerBound="1"
+ eType="#//LocalVariable" volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Load" eSuperTypes="#//LocalVariableInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Store" eSuperTypes="#//LocalVariableInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="FieldInstruction" abstract="true" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldname" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Set" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Get" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GetTrans" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SetStatic" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GetStatic" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Findtype" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelname" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="typename" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FindtypeS" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="New" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelname" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NewS" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Delete" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Dup" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DupX1" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Swap" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SwapX1" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="BranchInstruction" abstract="true" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//Instruction" volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="If" eSuperTypes="#//BranchInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Ifn" eSuperTypes="#//BranchInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Goto" eSuperTypes="#//BranchInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Iterate" eSuperTypes="#//BranchInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Enditerate" eSuperTypes="#//BranchInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeInstruction" abstract="true" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="argcount" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeOperationInstruction" abstract="true"
+ eSuperTypes="#//InvokeInstruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="opname" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Invoke" eSuperTypes="#//InvokeOperationInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeSuper" eSuperTypes="#//InvokeOperationInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeStatic" eSuperTypes="#//InvokeOperationInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Allinst" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AllinstIn" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Isnull" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Getenvtype" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Not" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="And" eSuperTypes="#//CodeBlockInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Or" eSuperTypes="#//CodeBlockInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Xor" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Implies" eSuperTypes="#//CodeBlockInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Ifte" eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="thenCbIndex" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elseCbIndex" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="thenCb" lowerBound="1"
+ eType="#//CodeBlock" volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elseCb" lowerBound="1"
+ eType="#//CodeBlock" volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Return" eSuperTypes="#//Instruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CodeBlockInstruction" abstract="true"
+ eSuperTypes="#//Instruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cbIndex" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+ volatile="true" defaultValueLiteral="-1" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="codeBlock" lowerBound="1"
+ eType="#//CodeBlock" volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Getcb" eSuperTypes="#//CodeBlockInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeAllCbs" eSuperTypes="#//InvokeInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeCb" eSuperTypes="#//CodeBlockInstruction #//InvokeInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InvokeCbS" eSuperTypes="#//InvokeInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Match" eSuperTypes="#//InvokeInstruction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rulename" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatchS" eSuperTypes="#//InvokeInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Add" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Remove" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Insert" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GetSuper" eSuperTypes="#//FieldInstruction"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Getenv" eSuperTypes="#//Instruction"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java
index 76375064..9e6b4f5a 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/Instruction.java
@@ -125,7 +125,7 @@ public interface Instruction extends EObject {
* <!-- end-user-doc -->
* @return the value of the '<em>Stack Level</em>' attribute.
* @see org.eclipse.m2m.atl.emftvm.EmftvmPackage#getInstruction_StackLevel()
- * @model default="0" required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @model default="0" required="true" transient="true" changeable="false" derived="true"
* @generated
*/
int getStackLevel();
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java
index 504e7aab..2dddb519 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/CodeBlockImpl.java
@@ -1491,6 +1491,9 @@ public class CodeBlockImpl extends EObjectImpl implements CodeBlock {
switch (notification.getFeatureID(null)) {
case EmftvmPackage.CODE_BLOCK__CODE:
codeChanged();
+ for (Instruction i : getCode()) {
+ i.eNotify(notification);
+ }
break;
case EmftvmPackage.CODE_BLOCK__LOCAL_VARIABLES:
localVariablesChanged();
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java
index a0df4d56..a74f3d0d 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/EmftvmPackageImpl.java
@@ -3659,7 +3659,7 @@ public class EmftvmPackageImpl extends EPackageImpl implements EmftvmPackage {
initEAttribute(getInstruction_Opcode(), this.getOpcode(), "opcode", "", 1, 1, Instruction.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
initEAttribute(getInstruction_StackProduction(), theEcorePackage.getEInt(), "stackProduction", "0", 1, 1, Instruction.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
initEAttribute(getInstruction_StackConsumption(), theEcorePackage.getEInt(), "stackConsumption", "0", 1, 1, Instruction.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
- initEAttribute(getInstruction_StackLevel(), theEcorePackage.getEInt(), "stackLevel", "0", 1, 1, Instruction.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getInstruction_StackLevel(), theEcorePackage.getEInt(), "stackLevel", "0", 1, 1, Instruction.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
initEReference(getInstruction_LineNumber(), this.getLineNumber(), this.getLineNumber_Instructions(), "lineNumber", null, 0, 1, Instruction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(lineNumberEClass, LineNumber.class, "LineNumber", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java
index 4ddec92e..24570fd3 100644
--- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java
+++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/InstructionImpl.java
@@ -111,6 +111,16 @@ public abstract class InstructionImpl extends EObjectImpl implements Instruction
*/
protected static final int STACK_LEVEL_EDEFAULT = 0;
/**
+ * The cached value of the '{@link #getStackLevel() <em>Stack Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStackLevel()
+ * @generated
+ * @ordered
+ */
+ protected int stackLevel = STACK_LEVEL_EDEFAULT;
+ protected boolean stackLevelSet;
+ /**
* The cached value of the '{@link #getLineNumber() <em>Line Number</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -223,23 +233,26 @@ public abstract class InstructionImpl extends EObjectImpl implements Instruction
* @generated NOT
*/
public int getStackLevel() {
- int stackLevelChange = getStackProduction() - getStackConsumption();
- final CodeBlock cb = getOwningBlock();
- if (cb != null) {
- int prevStackLevel = 0;
- final EList<Instruction> code = cb.getCode();
- final int index = code.indexOf(this);
- final EList<Instruction> nlp = cb.getNonLoopingPredecessors(this);
- for (Instruction pred : nlp) {
- // ITERATE only gives correct stack production/consumption in combination
- // with its ENDITERATE companion, so ignore jumps from ITERATE
- if (!(pred instanceof Iterate) || code.indexOf(pred) == index - 1) {
- prevStackLevel = Math.max(prevStackLevel, pred.getStackLevel());
+ if (!stackLevelSet) {
+ stackLevel = getStackProduction() - getStackConsumption();
+ final CodeBlock cb = getOwningBlock();
+ if (cb != null) {
+ int prevStackLevel = 0;
+ final EList<Instruction> code = cb.getCode();
+ final int index = code.indexOf(this);
+ final EList<Instruction> nlp = cb.getNonLoopingPredecessors(this);
+ for (Instruction pred : nlp) {
+ // ITERATE only gives correct stack production/consumption in combination
+ // with its ENDITERATE companion, so ignore jumps from ITERATE
+ if (!(pred instanceof Iterate) || code.indexOf(pred) == index - 1) {
+ prevStackLevel = Math.max(prevStackLevel, pred.getStackLevel());
+ }
}
+ stackLevel += prevStackLevel;
}
- stackLevelChange += prevStackLevel;
+ stackLevelSet = true;
}
- return stackLevelChange;
+ return stackLevel;
}
/**
@@ -441,7 +454,7 @@ public abstract class InstructionImpl extends EObjectImpl implements Instruction
case EmftvmPackage.INSTRUCTION__STACK_CONSUMPTION:
return stackConsumption != STACK_CONSUMPTION_EDEFAULT;
case EmftvmPackage.INSTRUCTION__STACK_LEVEL:
- return getStackLevel() != STACK_LEVEL_EDEFAULT;
+ return stackLevel != STACK_LEVEL_EDEFAULT;
case EmftvmPackage.INSTRUCTION__LINE_NUMBER:
return lineNumber != null;
}
@@ -449,9 +462,21 @@ public abstract class InstructionImpl extends EObjectImpl implements Instruction
}
/**
- * <!-- begin-user-doc. -->
* {@inheritDoc}
- * <!-- end-user-doc -->
+ */
+ @Override
+ public void eNotify(Notification notification) {
+ super.eNotify(notification);
+ switch (notification.getFeatureID(null)) {
+ case EmftvmPackage.CODE_BLOCK__CODE:
+ stackLevelSet = false;
+ break;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc. --> {@inheritDoc} <!-- end-user-doc -->
+ *
* @generated NOT
*/
@Override

Back to the top