/**
* <copyright>
* </copyright>
*
* $Id$
*/
package net.sf.orcc.ir.impl;
import net.sf.orcc.df.DfPackage;
import net.sf.orcc.df.impl.DfPackageImpl;
import net.sf.orcc.graph.GraphPackage;
import net.sf.orcc.ir.Arg;
import net.sf.orcc.ir.ArgByRef;
import net.sf.orcc.ir.ArgByVal;
import net.sf.orcc.ir.Block;
import net.sf.orcc.ir.BlockBasic;
import net.sf.orcc.ir.BlockIf;
import net.sf.orcc.ir.BlockWhile;
import net.sf.orcc.ir.Cfg;
import net.sf.orcc.ir.CfgNode;
import net.sf.orcc.ir.Def;
import net.sf.orcc.ir.ExprBinary;
import net.sf.orcc.ir.ExprBool;
import net.sf.orcc.ir.ExprFloat;
import net.sf.orcc.ir.ExprInt;
import net.sf.orcc.ir.ExprList;
import net.sf.orcc.ir.ExprString;
import net.sf.orcc.ir.ExprUnary;
import net.sf.orcc.ir.ExprVar;
import net.sf.orcc.ir.Expression;
import net.sf.orcc.ir.InstAssign;
import net.sf.orcc.ir.InstCall;
import net.sf.orcc.ir.InstLoad;
import net.sf.orcc.ir.InstPhi;
import net.sf.orcc.ir.InstReturn;
import net.sf.orcc.ir.InstStore;
import net.sf.orcc.ir.Instruction;
import net.sf.orcc.ir.IrFactory;
import net.sf.orcc.ir.IrPackage;
import net.sf.orcc.ir.OpBinary;
import net.sf.orcc.ir.OpUnary;
import net.sf.orcc.ir.Param;
import net.sf.orcc.ir.Predicate;
import net.sf.orcc.ir.Procedure;
import net.sf.orcc.ir.Type;
import net.sf.orcc.ir.TypeBool;
import net.sf.orcc.ir.TypeFloat;
import net.sf.orcc.ir.TypeInt;
import net.sf.orcc.ir.TypeList;
import net.sf.orcc.ir.TypeString;
import net.sf.orcc.ir.TypeUint;
import net.sf.orcc.ir.TypeVoid;
import net.sf.orcc.ir.Use;
import net.sf.orcc.ir.Var;
import net.sf.orcc.moc.MocPackage;
import net.sf.orcc.moc.impl.MocPackageImpl;
import net.sf.orcc.util.UtilPackage;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
/**
* <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
* end-user-doc -->
* @generated
*/
public class IrPackageImpl extends EPackageImpl implements IrPackage {
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass expressionEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeBoolEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeFloatEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeIntEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeListEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeStringEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeUintEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeVoidEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instructionEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass procedureEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass paramEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass blockEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass blockBasicEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass blockIfEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass blockWhileEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instAssignEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instCallEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instLoadEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instPhiEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instReturnEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass instStoreEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass argEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass argByRefEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass argByValEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass varEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass useEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprBinaryEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprBoolEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprFloatEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprIntEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprListEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprStringEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprUnaryEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass exprVarEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass defEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass predicateEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass cfgEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass cfgNodeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EEnum opBinaryEEnum = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EEnum opUnaryEEnum = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the
* package package URI value.
* <p>
* Note: the correct way to create the package is via the static factory
* method {@link #init init()}, which also performs initialization of the
* package, or returns the registered package, if one already exists. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see net.sf.orcc.ir.IrPackage#eNS_URI
* @see #init()
* @generated
*/
private IrPackageImpl() {
super(eNS_URI, IrFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model,
* and for any others upon which it depends.
*
* <p>
* This method is used to initialize {@link IrPackage#eINSTANCE} when that
* field is accessed. Clients should not invoke it directly. Instead, they
* should simply access that field to obtain the package. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static IrPackage init() {
if (isInited)
return (IrPackage) EPackage.Registry.INSTANCE
.getEPackage(IrPackage.eNS_URI);
// Obtain or create and register package
IrPackageImpl theIrPackage = (IrPackageImpl) (EPackage.Registry.INSTANCE
.get(eNS_URI) instanceof IrPackageImpl ? EPackage.Registry.INSTANCE
.get(eNS_URI) : new IrPackageImpl());
isInited = true;
// Initialize simple dependencies
UtilPackage.eINSTANCE.eClass();
GraphPackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
DfPackageImpl theDfPackage = (DfPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(DfPackage.eNS_URI) instanceof DfPackageImpl ? EPackage.Registry.INSTANCE
.getEPackage(DfPackage.eNS_URI) : DfPackage.eINSTANCE);
MocPackageImpl theMocPackage = (MocPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(MocPackage.eNS_URI) instanceof MocPackageImpl ? EPackage.Registry.INSTANCE
.getEPackage(MocPackage.eNS_URI) : MocPackage.eINSTANCE);
// Create package meta-data objects
theIrPackage.createPackageContents();
theDfPackage.createPackageContents();
theMocPackage.createPackageContents();
// Initialize created meta-data
theIrPackage.initializePackageContents();
theDfPackage.initializePackageContents();
theMocPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theIrPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(IrPackage.eNS_URI, theIrPackage);
return theIrPackage;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExpression() {
return expressionEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getType() {
return typeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeBool() {
return typeBoolEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeFloat() {
return typeFloatEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getTypeFloat_Size() {
return (EAttribute) typeFloatEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeInt() {
return typeIntEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getTypeInt_Size() {
return (EAttribute) typeIntEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeList() {
return typeListEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypeList_SizeExpr() {
return (EReference) typeListEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypeList_Type() {
return (EReference) typeListEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeString() {
return typeStringEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getTypeString_Size() {
return (EAttribute) typeStringEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeUint() {
return typeUintEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getTypeUint_Size() {
return (EAttribute) typeUintEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeVoid() {
return typeVoidEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstruction() {
return instructionEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstruction_Predicate() {
return (EReference) instructionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getInstruction_LineNumber() {
return (EAttribute) instructionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getPredicate() {
return predicateEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getPredicate_Expressions() {
return (EReference) predicateEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getCfg() {
return cfgEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getCfg_Entry() {
return (EReference) cfgEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getCfg_Exit() {
return (EReference) cfgEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getCfgNode() {
return cfgNodeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getCfgNode_Node() {
return (EReference) cfgNodeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getProcedure() {
return procedureEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getProcedure_Name() {
return (EAttribute) procedureEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getProcedure_ReturnType() {
return (EReference) procedureEClass.getEStructuralFeatures().get(6);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getProcedure_Cfg() {
return (EReference) procedureEClass.getEStructuralFeatures().get(7);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getParam() {
return paramEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getParam_Variable() {
return (EReference) paramEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getParam_ByRef() {
return (EAttribute) paramEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getBlock() {
return blockEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlock_CfgNode() {
return (EReference) blockEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getBlockBasic() {
return blockBasicEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockBasic_Instructions() {
return (EReference) blockBasicEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getBlockIf() {
return blockIfEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockIf_Condition() {
return (EReference) blockIfEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockIf_ElseBlocks() {
return (EReference) blockIfEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockIf_JoinBlock() {
return (EReference) blockIfEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getBlockIf_LineNumber() {
return (EAttribute) blockIfEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockIf_ThenBlocks() {
return (EReference) blockIfEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getBlockWhile() {
return blockWhileEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockWhile_Condition() {
return (EReference) blockWhileEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockWhile_JoinBlock() {
return (EReference) blockWhileEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getBlockWhile_LineNumber() {
return (EAttribute) blockWhileEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getBlockWhile_Blocks() {
return (EReference) blockWhileEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getProcedure_Native() {
return (EAttribute) procedureEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getProcedure_Blocks() {
return (EReference) procedureEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getProcedure_Locals() {
return (EReference) procedureEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getProcedure_Parameters() {
return (EReference) procedureEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getProcedure_LineNumber() {
return (EAttribute) procedureEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstAssign() {
return instAssignEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstAssign_Target() {
return (EReference) instAssignEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstAssign_Value() {
return (EReference) instAssignEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstCall() {
return instCallEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstCall_Arguments() {
return (EReference) instCallEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstCall_Procedure() {
return (EReference) instCallEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstCall_Target() {
return (EReference) instCallEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstLoad() {
return instLoadEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstLoad_Indexes() {
return (EReference) instLoadEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstLoad_Source() {
return (EReference) instLoadEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstLoad_Target() {
return (EReference) instLoadEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstPhi() {
return instPhiEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstPhi_OldVariable() {
return (EReference) instPhiEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstPhi_Target() {
return (EReference) instPhiEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstPhi_Values() {
return (EReference) instPhiEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstReturn() {
return instReturnEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstReturn_Value() {
return (EReference) instReturnEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getInstStore() {
return instStoreEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstStore_Indexes() {
return (EReference) instStoreEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstStore_Target() {
return (EReference) instStoreEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getInstStore_Value() {
return (EReference) instStoreEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getArg() {
return argEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getArgByRef() {
return argByRefEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getArgByRef_Indexes() {
return (EReference) argByRefEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getArgByRef_Use() {
return (EReference) argByRefEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getArgByVal() {
return argByValEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getArgByVal_Value() {
return (EReference) argByValEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getVar() {
return varEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_Index() {
return (EAttribute) varEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getVar_InitialValue() {
return (EReference) varEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_Name() {
return (EAttribute) varEClass.getEStructuralFeatures().get(7);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getVar_Type() {
return (EReference) varEClass.getEStructuralFeatures().get(8);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_Value() {
return (EAttribute) varEClass.getEStructuralFeatures().get(10);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_Assignable() {
return (EAttribute) varEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_Global() {
return (EAttribute) varEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getVar_Uses() {
return (EReference) varEClass.getEStructuralFeatures().get(9);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getVar_Defs() {
return (EReference) varEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_LineNumber() {
return (EAttribute) varEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getVar_Local() {
return (EAttribute) varEClass.getEStructuralFeatures().get(6);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getUse() {
return useEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getUse_Variable() {
return (EReference) useEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprBinary() {
return exprBinaryEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprBinary_E1() {
return (EReference) exprBinaryEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprBinary_E2() {
return (EReference) exprBinaryEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExprBinary_Op() {
return (EAttribute) exprBinaryEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprBinary_Type() {
return (EReference) exprBinaryEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprBool() {
return exprBoolEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExprBool_Value() {
return (EAttribute) exprBoolEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprFloat() {
return exprFloatEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExprFloat_Value() {
return (EAttribute) exprFloatEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprInt() {
return exprIntEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExprInt_Value() {
return (EAttribute) exprIntEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprInt_Type() {
return (EReference) exprIntEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprList() {
return exprListEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprList_Value() {
return (EReference) exprListEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprString() {
return exprStringEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExprString_Value() {
return (EAttribute) exprStringEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprUnary() {
return exprUnaryEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprUnary_Expr() {
return (EReference) exprUnaryEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExprUnary_Op() {
return (EAttribute) exprUnaryEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprUnary_Type() {
return (EReference) exprUnaryEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExprVar() {
return exprVarEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExprVar_Use() {
return (EReference) exprVarEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getDef() {
return defEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getDef_Variable() {
return (EReference) defEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EEnum getOpBinary() {
return opBinaryEEnum;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EEnum getOpUnary() {
return opUnaryEEnum;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public IrFactory getIrFactory() {
return (IrFactory) getEFactoryInstance();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private boolean isCreated = false;
/**
* Creates the meta-model objects for the package. This method is
* guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated)
return;
isCreated = true;
// Create classes and their features
procedureEClass = createEClass(PROCEDURE);
createEAttribute(procedureEClass, PROCEDURE__LINE_NUMBER);
createEReference(procedureEClass, PROCEDURE__LOCALS);
createEAttribute(procedureEClass, PROCEDURE__NAME);
createEAttribute(procedureEClass, PROCEDURE__NATIVE);
createEReference(procedureEClass, PROCEDURE__BLOCKS);
createEReference(procedureEClass, PROCEDURE__PARAMETERS);
createEReference(procedureEClass, PROCEDURE__RETURN_TYPE);
createEReference(procedureEClass, PROCEDURE__CFG);
paramEClass = createEClass(PARAM);
createEReference(paramEClass, PARAM__VARIABLE);
createEAttribute(paramEClass, PARAM__BY_REF);
blockEClass = createEClass(BLOCK);
createEReference(blockEClass, BLOCK__CFG_NODE);
blockBasicEClass = createEClass(BLOCK_BASIC);
createEReference(blockBasicEClass, BLOCK_BASIC__INSTRUCTIONS);
blockIfEClass = createEClass(BLOCK_IF);
createEReference(blockIfEClass, BLOCK_IF__CONDITION);
createEReference(blockIfEClass, BLOCK_IF__ELSE_BLOCKS);
createEReference(blockIfEClass, BLOCK_IF__JOIN_BLOCK);
createEAttribute(blockIfEClass, BLOCK_IF__LINE_NUMBER);
createEReference(blockIfEClass, BLOCK_IF__THEN_BLOCKS);
blockWhileEClass = createEClass(BLOCK_WHILE);
createEReference(blockWhileEClass, BLOCK_WHILE__CONDITION);
createEReference(blockWhileEClass, BLOCK_WHILE__JOIN_BLOCK);
createEAttribute(blockWhileEClass, BLOCK_WHILE__LINE_NUMBER);
createEReference(blockWhileEClass, BLOCK_WHILE__BLOCKS);
instructionEClass = createEClass(INSTRUCTION);
createEAttribute(instructionEClass, INSTRUCTION__LINE_NUMBER);
createEReference(instructionEClass, INSTRUCTION__PREDICATE);
instAssignEClass = createEClass(INST_ASSIGN);
createEReference(instAssignEClass, INST_ASSIGN__TARGET);
createEReference(instAssignEClass, INST_ASSIGN__VALUE);
instCallEClass = createEClass(INST_CALL);
createEReference(instCallEClass, INST_CALL__ARGUMENTS);
createEReference(instCallEClass, INST_CALL__PROCEDURE);
createEReference(instCallEClass, INST_CALL__TARGET);
instLoadEClass = createEClass(INST_LOAD);
createEReference(instLoadEClass, INST_LOAD__INDEXES);
createEReference(instLoadEClass, INST_LOAD__SOURCE);
createEReference(instLoadEClass, INST_LOAD__TARGET);
instPhiEClass = createEClass(INST_PHI);
createEReference(instPhiEClass, INST_PHI__OLD_VARIABLE);
createEReference(instPhiEClass, INST_PHI__TARGET);
createEReference(instPhiEClass, INST_PHI__VALUES);
instReturnEClass = createEClass(INST_RETURN);
createEReference(instReturnEClass, INST_RETURN__VALUE);
instStoreEClass = createEClass(INST_STORE);
createEReference(instStoreEClass, INST_STORE__INDEXES);
createEReference(instStoreEClass, INST_STORE__TARGET);
createEReference(instStoreEClass, INST_STORE__VALUE);
argEClass = createEClass(ARG);
argByRefEClass = createEClass(ARG_BY_REF);
createEReference(argByRefEClass, ARG_BY_REF__INDEXES);
createEReference(argByRefEClass, ARG_BY_REF__USE);
argByValEClass = createEClass(ARG_BY_VAL);
createEReference(argByValEClass, ARG_BY_VAL__VALUE);
expressionEClass = createEClass(EXPRESSION);
exprBinaryEClass = createEClass(EXPR_BINARY);
createEReference(exprBinaryEClass, EXPR_BINARY__E1);
createEReference(exprBinaryEClass, EXPR_BINARY__E2);
createEAttribute(exprBinaryEClass, EXPR_BINARY__OP);
createEReference(exprBinaryEClass, EXPR_BINARY__TYPE);
exprBoolEClass = createEClass(EXPR_BOOL);
createEAttribute(exprBoolEClass, EXPR_BOOL__VALUE);
exprFloatEClass = createEClass(EXPR_FLOAT);
createEAttribute(exprFloatEClass, EXPR_FLOAT__VALUE);
exprIntEClass = createEClass(EXPR_INT);
createEAttribute(exprIntEClass, EXPR_INT__VALUE);
createEReference(exprIntEClass, EXPR_INT__TYPE);
exprListEClass = createEClass(EXPR_LIST);
createEReference(exprListEClass, EXPR_LIST__VALUE);
exprStringEClass = createEClass(EXPR_STRING);
createEAttribute(exprStringEClass, EXPR_STRING__VALUE);
exprUnaryEClass = createEClass(EXPR_UNARY);
createEReference(exprUnaryEClass, EXPR_UNARY__EXPR);
createEAttribute(exprUnaryEClass, EXPR_UNARY__OP);
createEReference(exprUnaryEClass, EXPR_UNARY__TYPE);
exprVarEClass = createEClass(EXPR_VAR);
createEReference(exprVarEClass, EXPR_VAR__USE);
typeEClass = createEClass(TYPE);
typeBoolEClass = createEClass(TYPE_BOOL);
typeFloatEClass = createEClass(TYPE_FLOAT);
createEAttribute(typeFloatEClass, TYPE_FLOAT__SIZE);
typeIntEClass = createEClass(TYPE_INT);
createEAttribute(typeIntEClass, TYPE_INT__SIZE);
typeListEClass = createEClass(TYPE_LIST);
createEReference(typeListEClass, TYPE_LIST__SIZE_EXPR);
createEReference(typeListEClass, TYPE_LIST__TYPE);
typeStringEClass = createEClass(TYPE_STRING);
createEAttribute(typeStringEClass, TYPE_STRING__SIZE);
typeUintEClass = createEClass(TYPE_UINT);
createEAttribute(typeUintEClass, TYPE_UINT__SIZE);
typeVoidEClass = createEClass(TYPE_VOID);
defEClass = createEClass(DEF);
createEReference(defEClass, DEF__VARIABLE);
varEClass = createEClass(VAR);
createEAttribute(varEClass, VAR__ASSIGNABLE);
createEReference(varEClass, VAR__DEFS);
createEAttribute(varEClass, VAR__GLOBAL);
createEAttribute(varEClass, VAR__INDEX);
createEReference(varEClass, VAR__INITIAL_VALUE);
createEAttribute(varEClass, VAR__LINE_NUMBER);
createEAttribute(varEClass, VAR__LOCAL);
createEAttribute(varEClass, VAR__NAME);
createEReference(varEClass, VAR__TYPE);
createEReference(varEClass, VAR__USES);
createEAttribute(varEClass, VAR__VALUE);
useEClass = createEClass(USE);
createEReference(useEClass, USE__VARIABLE);
predicateEClass = createEClass(PREDICATE);
createEReference(predicateEClass, PREDICATE__EXPRESSIONS);
cfgEClass = createEClass(CFG);
createEReference(cfgEClass, CFG__ENTRY);
createEReference(cfgEClass, CFG__EXIT);
cfgNodeEClass = createEClass(CFG_NODE);
createEReference(cfgNodeEClass, CFG_NODE__NODE);
// Create enums
opBinaryEEnum = createEEnum(OP_BINARY);
opUnaryEEnum = createEEnum(OP_UNARY);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private boolean isInitialized = false;
/**
* Complete the initialization of the package and its meta-model. This
* method is guarded to have no affect on any invocation but its first. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public void initializePackageContents() {
if (isInitialized)
return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Obtain other dependent packages
UtilPackage theUtilPackage = (UtilPackage) EPackage.Registry.INSTANCE
.getEPackage(UtilPackage.eNS_URI);
GraphPackage theGraphPackage = (GraphPackage) EPackage.Registry.INSTANCE
.getEPackage(GraphPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
procedureEClass.getESuperTypes().add(theUtilPackage.getAttributable());
paramEClass.getESuperTypes().add(theUtilPackage.getAttributable());
blockEClass.getESuperTypes().add(theUtilPackage.getAttributable());
blockBasicEClass.getESuperTypes().add(this.getBlock());
blockIfEClass.getESuperTypes().add(this.getBlock());
blockWhileEClass.getESuperTypes().add(this.getBlock());
instructionEClass.getESuperTypes()
.add(theUtilPackage.getAttributable());
instAssignEClass.getESuperTypes().add(this.getInstruction());
instCallEClass.getESuperTypes().add(this.getInstruction());
instLoadEClass.getESuperTypes().add(this.getInstruction());
instPhiEClass.getESuperTypes().add(this.getInstruction());
instReturnEClass.getESuperTypes().add(this.getInstruction());
instStoreEClass.getESuperTypes().add(this.getInstruction());
argEClass.getESuperTypes().add(theUtilPackage.getAttributable());
argByRefEClass.getESuperTypes().add(this.getArg());
argByValEClass.getESuperTypes().add(this.getArg());
expressionEClass.getESuperTypes().add(theUtilPackage.getAttributable());
exprBinaryEClass.getESuperTypes().add(this.getExpression());
exprBoolEClass.getESuperTypes().add(this.getExpression());
exprFloatEClass.getESuperTypes().add(this.getExpression());
exprIntEClass.getESuperTypes().add(this.getExpression());
exprListEClass.getESuperTypes().add(this.getExpression());
exprStringEClass.getESuperTypes().add(this.getExpression());
exprUnaryEClass.getESuperTypes().add(this.getExpression());
exprVarEClass.getESuperTypes().add(this.getExpression());
typeBoolEClass.getESuperTypes().add(this.getType());
typeFloatEClass.getESuperTypes().add(this.getType());
typeIntEClass.getESuperTypes().add(this.getType());
typeListEClass.getESuperTypes().add(this.getType());
typeStringEClass.getESuperTypes().add(this.getType());
typeUintEClass.getESuperTypes().add(this.getType());
typeVoidEClass.getESuperTypes().add(this.getType());
varEClass.getESuperTypes().add(theUtilPackage.getAttributable());
cfgEClass.getESuperTypes().add(theGraphPackage.getGraph());
cfgNodeEClass.getESuperTypes().add(theGraphPackage.getVertex());
// Initialize classes and features; add operations and parameters
initEClass(procedureEClass, Procedure.class, "Procedure", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getProcedure_LineNumber(), ecorePackage.getEInt(),
"lineNumber", null, 0, 1, Procedure.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getProcedure_Locals(), this.getVar(), null, "locals",
null, 0, -1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getProcedure_Name(), ecorePackage.getEString(), "name",
null, 0, 1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEAttribute(getProcedure_Native(), ecorePackage.getEBoolean(),
"native", null, 0, 1, Procedure.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getProcedure_Blocks(), this.getBlock(), null, "blocks",
null, 0, -1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcedure_Parameters(), this.getParam(), null,
"parameters", null, 0, -1, Procedure.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcedure_ReturnType(), this.getType(), null,
"returnType", null, 0, 1, Procedure.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcedure_Cfg(), this.getCfg(), null, "cfg", null, 0,
1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(paramEClass, Param.class, "Param", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getParam_Variable(), this.getVar(), null, "variable",
null, 0, 1, Param.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getParam_ByRef(), ecorePackage.getEBoolean(), "byRef",
null, 0, 1, Param.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(blockEClass, Block.class, "Block", IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBlock_CfgNode(), this.getCfgNode(),
this.getCfgNode_Node(), "cfgNode", null, 0, 1, Block.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(blockBasicEClass, BlockBasic.class, "BlockBasic",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBlockBasic_Instructions(), this.getInstruction(),
null, "instructions", null, 0, -1, BlockBasic.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(blockIfEClass, BlockIf.class, "BlockIf", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBlockIf_Condition(), this.getExpression(), null,
"condition", null, 0, 1, BlockIf.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBlockIf_ElseBlocks(), this.getBlock(), null,
"elseBlocks", null, 0, -1, BlockIf.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBlockIf_JoinBlock(), this.getBlockBasic(), null,
"joinBlock", null, 0, 1, BlockIf.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBlockIf_LineNumber(), ecorePackage.getEInt(),
"lineNumber", null, 0, 1, BlockIf.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getBlockIf_ThenBlocks(), this.getBlock(), null,
"thenBlocks", null, 0, -1, BlockIf.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(blockWhileEClass, BlockWhile.class, "BlockWhile",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBlockWhile_Condition(), this.getExpression(), null,
"condition", null, 0, 1, BlockWhile.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBlockWhile_JoinBlock(), this.getBlockBasic(), null,
"joinBlock", null, 0, 1, BlockWhile.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBlockWhile_LineNumber(), ecorePackage.getEInt(),
"lineNumber", null, 0, 1, BlockWhile.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getBlockWhile_Blocks(), this.getBlock(), null, "blocks",
null, 0, -1, BlockWhile.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(instructionEClass, Instruction.class, "Instruction",
IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getInstruction_LineNumber(), ecorePackage.getEInt(),
"lineNumber", null, 0, 1, Instruction.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getInstruction_Predicate(), this.getPredicate(), null,
"predicate", 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(instAssignEClass, InstAssign.class, "InstAssign",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInstAssign_Target(), this.getDef(), null, "target",
null, 0, 1, InstAssign.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstAssign_Value(), this.getExpression(), null,
"value", null, 0, 1, InstAssign.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(instCallEClass, InstCall.class, "InstCall", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInstCall_Arguments(), this.getArg(), null,
"arguments", null, 0, -1, InstCall.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstCall_Procedure(), this.getProcedure(), null,
"procedure", null, 0, 1, InstCall.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstCall_Target(), this.getDef(), null, "target",
null, 0, 1, InstCall.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(instLoadEClass, InstLoad.class, "InstLoad", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInstLoad_Indexes(), this.getExpression(), null,
"indexes", null, 0, -1, InstLoad.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstLoad_Source(), this.getUse(), null, "source",
null, 0, 1, InstLoad.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstLoad_Target(), this.getDef(), null, "target",
null, 0, 1, InstLoad.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(instPhiEClass, InstPhi.class, "InstPhi", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInstPhi_OldVariable(), this.getVar(), null,
"oldVariable", null, 0, 1, InstPhi.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstPhi_Target(), this.getDef(), null, "target",
null, 0, 1, InstPhi.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstPhi_Values(), this.getExpression(), null,
"values", null, 0, -1, InstPhi.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(instReturnEClass, InstReturn.class, "InstReturn",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInstReturn_Value(), this.getExpression(), null,
"value", null, 0, 1, InstReturn.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(instStoreEClass, InstStore.class, "InstStore", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInstStore_Indexes(), this.getExpression(), null,
"indexes", null, 0, -1, InstStore.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstStore_Target(), this.getDef(), null, "target",
null, 0, 1, InstStore.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInstStore_Value(), this.getExpression(), null,
"value", null, 0, 1, InstStore.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(argEClass, Arg.class, "Arg", IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEClass(argByRefEClass, ArgByRef.class, "ArgByRef", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getArgByRef_Indexes(), this.getExpression(), null,
"indexes", null, 0, -1, ArgByRef.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getArgByRef_Use(), this.getUse(), null, "use", null, 0,
1, ArgByRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(argByValEClass, ArgByVal.class, "ArgByVal", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getArgByVal_Value(), this.getExpression(), null,
"value", null, 0, 1, ArgByVal.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(expressionEClass, Expression.class, "Expression",
IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(exprBinaryEClass, ExprBinary.class, "ExprBinary",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getExprBinary_E1(), this.getExpression(), null, "e1",
null, 0, 1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getExprBinary_E2(), this.getExpression(), null, "e2",
null, 0, 1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getExprBinary_Op(), this.getOpBinary(), "op", null, 0,
1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEReference(getExprBinary_Type(), this.getType(), null, "type",
null, 0, 1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(exprBoolEClass, ExprBool.class, "ExprBool", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getExprBool_Value(), ecorePackage.getEBoolean(),
"value", null, 0, 1, ExprBool.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(exprFloatEClass, ExprFloat.class, "ExprFloat", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getExprFloat_Value(), ecorePackage.getEBigDecimal(),
"value", null, 0, 1, ExprFloat.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(exprIntEClass, ExprInt.class, "ExprInt", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getExprInt_Value(), ecorePackage.getEBigInteger(),
"value", null, 0, 1, ExprInt.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getExprInt_Type(), this.getType(), null, "type", null,
0, 1, ExprInt.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(exprListEClass, ExprList.class, "ExprList", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getExprList_Value(), this.getExpression(), null,
"value", null, 0, -1, ExprList.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(exprStringEClass, ExprString.class, "ExprString",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getExprString_Value(), ecorePackage.getEString(),
"value", null, 0, 1, ExprString.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(exprUnaryEClass, ExprUnary.class, "ExprUnary", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getExprUnary_Expr(), this.getExpression(), null, "expr",
null, 0, 1, ExprUnary.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getExprUnary_Op(), this.getOpUnary(), "op", null, 0, 1,
ExprUnary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getExprUnary_Type(), this.getType(), null, "type", null,
0, 1, ExprUnary.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(exprVarEClass, ExprVar.class, "ExprVar", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getExprVar_Use(), this.getUse(), null, "use", null, 0,
1, ExprVar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(typeEClass, Type.class, "Type", IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEClass(typeBoolEClass, TypeBool.class, "TypeBool", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(typeFloatEClass, TypeFloat.class, "TypeFloat", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTypeFloat_Size(), ecorePackage.getEInt(), "size",
"32", 0, 1, TypeFloat.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(typeIntEClass, TypeInt.class, "TypeInt", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTypeInt_Size(), ecorePackage.getEInt(), "size", "32",
0, 1, TypeInt.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(typeListEClass, TypeList.class, "TypeList", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTypeList_SizeExpr(), this.getExpression(), null,
"sizeExpr", null, 0, 1, TypeList.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTypeList_Type(), this.getType(), null, "type", null,
0, 1, TypeList.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(typeStringEClass, TypeString.class, "TypeString",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTypeString_Size(), ecorePackage.getEInt(), "size",
null, 0, 1, TypeString.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(typeUintEClass, TypeUint.class, "TypeUint", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTypeUint_Size(), ecorePackage.getEInt(), "size",
"32", 0, 1, TypeUint.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(typeVoidEClass, TypeVoid.class, "TypeVoid", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(defEClass, Def.class, "Def", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEReference(getDef_Variable(), this.getVar(), this.getVar_Defs(),
"variable", null, 0, 1, Def.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(varEClass, Var.class, "Var", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getVar_Assignable(), ecorePackage.getEBoolean(),
"assignable", null, 0, 1, Var.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getVar_Defs(), this.getDef(), this.getDef_Variable(),
"defs", null, 0, -1, Var.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getVar_Global(), ecorePackage.getEBoolean(), "global",
null, 0, 1, Var.class, IS_TRANSIENT, IS_VOLATILE,
!IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED,
IS_ORDERED);
initEAttribute(getVar_Index(), ecorePackage.getEInt(), "index", null,
0, 1, Var.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getVar_InitialValue(), this.getExpression(), null,
"initialValue", null, 0, 1, Var.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getVar_LineNumber(), ecorePackage.getEInt(),
"lineNumber", null, 0, 1, Var.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEAttribute(getVar_Local(), ecorePackage.getEBoolean(), "local",
null, 0, 1, Var.class, IS_TRANSIENT, IS_VOLATILE,
!IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED,
IS_ORDERED);
initEAttribute(getVar_Name(), ecorePackage.getEString(), "name", null,
0, 1, Var.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getVar_Type(), this.getType(), null, "type", null, 0, 1,
Var.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getVar_Uses(), this.getUse(), this.getUse_Variable(),
"uses", null, 0, -1, Var.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getVar_Value(), ecorePackage.getEJavaObject(), "value",
null, 0, 1, Var.class, IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEClass(useEClass, Use.class, "Use", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEReference(getUse_Variable(), this.getVar(), this.getVar_Uses(),
"variable", null, 0, 1, Use.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPredicate_Expressions(), this.getExpression(), null,
"expressions", null, 0, -1, Predicate.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(cfgEClass, Cfg.class, "Cfg", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEReference(getCfg_Entry(), this.getCfgNode(), null, "entry", null,
0, 1, Cfg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEReference(getCfg_Exit(), this.getCfgNode(), null, "exit", null, 0,
1, Cfg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(cfgNodeEClass, CfgNode.class, "CfgNode", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getCfgNode_Node(), this.getBlock(),
this.getBlock_CfgNode(), "node", null, 0, 1, CfgNode.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
// Initialize enums and add enum literals
initEEnum(opBinaryEEnum, OpBinary.class, "OpBinary");
addEEnumLiteral(opBinaryEEnum, OpBinary.BITAND);
addEEnumLiteral(opBinaryEEnum, OpBinary.BITOR);
addEEnumLiteral(opBinaryEEnum, OpBinary.BITXOR);
addEEnumLiteral(opBinaryEEnum, OpBinary.DIV);
addEEnumLiteral(opBinaryEEnum, OpBinary.DIV_INT);
addEEnumLiteral(opBinaryEEnum, OpBinary.EQ);
addEEnumLiteral(opBinaryEEnum, OpBinary.EXP);
addEEnumLiteral(opBinaryEEnum, OpBinary.GE);
addEEnumLiteral(opBinaryEEnum, OpBinary.GT);
addEEnumLiteral(opBinaryEEnum, OpBinary.LE);
addEEnumLiteral(opBinaryEEnum, OpBinary.LOGIC_AND);
addEEnumLiteral(opBinaryEEnum, OpBinary.LOGIC_OR);
addEEnumLiteral(opBinaryEEnum, OpBinary.LT);
addEEnumLiteral(opBinaryEEnum, OpBinary.MINUS);
addEEnumLiteral(opBinaryEEnum, OpBinary.MOD);
addEEnumLiteral(opBinaryEEnum, OpBinary.NE);
addEEnumLiteral(opBinaryEEnum, OpBinary.PLUS);
addEEnumLiteral(opBinaryEEnum, OpBinary.SHIFT_LEFT);
addEEnumLiteral(opBinaryEEnum, OpBinary.SHIFT_RIGHT);
addEEnumLiteral(opBinaryEEnum, OpBinary.TIMES);
initEEnum(opUnaryEEnum, OpUnary.class, "OpUnary");
addEEnumLiteral(opUnaryEEnum, OpUnary.BITNOT);
addEEnumLiteral(opUnaryEEnum, OpUnary.LOGIC_NOT);
addEEnumLiteral(opUnaryEEnum, OpUnary.MINUS);
addEEnumLiteral(opUnaryEEnum, OpUnary.NUM_ELTS);
// Create resource
createResource(eNS_URI);
}
} // IrPackageImpl