/** * <copyright> * </copyright> * * $Id$ */ package net.sf.orcc.ir.impl; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Collection; import java.util.List; 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.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.ir.util.TypeUtil; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.impl.EFactoryImpl; import org.eclipse.emf.ecore.plugin.EcorePlugin; import org.eclipse.emf.ecore.util.EcoreUtil; /** * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- * end-user-doc --> * @generated */ public class IrFactoryImpl extends EFactoryImpl implements IrFactory { /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @deprecated * @generated */ @Deprecated public static IrPackage getPackage() { return IrPackage.eINSTANCE; } /** * Creates the default factory implementation. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @generated */ public static IrFactory init() { try { IrFactory theIrFactory = (IrFactory) EPackage.Registry.INSTANCE .getEFactory("http://orcc.sf.net/model/2011/Ir"); if (theIrFactory != null) { return theIrFactory; } } catch (Exception exception) { EcorePlugin.INSTANCE.log(exception); } return new IrFactoryImpl(); } /** * Creates an instance of the factory. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @generated */ public IrFactoryImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public String convertOpBinaryToString(EDataType eDataType, Object instanceValue) { return instanceValue == null ? null : instanceValue.toString(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public String convertOpUnaryToString(EDataType eDataType, Object instanceValue) { return instanceValue == null ? null : instanceValue.toString(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public String convertToString(EDataType eDataType, Object instanceValue) { switch (eDataType.getClassifierID()) { case IrPackage.OP_BINARY: return convertOpBinaryToString(eDataType, instanceValue); case IrPackage.OP_UNARY: return convertOpUnaryToString(eDataType, instanceValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public EObject create(EClass eClass) { switch (eClass.getClassifierID()) { case IrPackage.PROCEDURE: return createProcedure(); case IrPackage.PARAM: return createParam(); case IrPackage.BLOCK_BASIC: return createBlockBasic(); case IrPackage.BLOCK_IF: return createBlockIf(); case IrPackage.BLOCK_WHILE: return createBlockWhile(); case IrPackage.INST_ASSIGN: return createInstAssign(); case IrPackage.INST_CALL: return createInstCall(); case IrPackage.INST_LOAD: return createInstLoad(); case IrPackage.INST_PHI: return createInstPhi(); case IrPackage.INST_RETURN: return createInstReturn(); case IrPackage.INST_STORE: return createInstStore(); case IrPackage.ARG_BY_REF: return createArgByRef(); case IrPackage.ARG_BY_VAL: return createArgByVal(); case IrPackage.EXPR_BINARY: return createExprBinary(); case IrPackage.EXPR_BOOL: return createExprBool(); case IrPackage.EXPR_FLOAT: return createExprFloat(); case IrPackage.EXPR_INT: return createExprInt(); case IrPackage.EXPR_LIST: return createExprList(); case IrPackage.EXPR_STRING: return createExprString(); case IrPackage.EXPR_UNARY: return createExprUnary(); case IrPackage.EXPR_VAR: return createExprVar(); case IrPackage.TYPE_BOOL: return createTypeBool(); case IrPackage.TYPE_FLOAT: return createTypeFloat(); case IrPackage.TYPE_INT: return createTypeInt(); case IrPackage.TYPE_LIST: return createTypeList(); case IrPackage.TYPE_STRING: return createTypeString(); case IrPackage.TYPE_UINT: return createTypeUint(); case IrPackage.TYPE_VOID: return createTypeVoid(); case IrPackage.DEF: return createDef(); case IrPackage.VAR: return createVar(); case IrPackage.USE: return createUse(); case IrPackage.PREDICATE: return createPredicate(); case IrPackage.CFG: return createCfg(); case IrPackage.CFG_NODE: return createCfgNode(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ArgByRef createArgByRef() { ArgByRefImpl argByRef = new ArgByRefImpl(); return argByRef; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ArgByVal createArgByVal() { ArgByValImpl argByVal = new ArgByValImpl(); return argByVal; } @Override public Arg createArgByVal(Expression value) { ArgByValImpl argByVal = new ArgByValImpl(); argByVal.setValue(value); return argByVal; } @Override public Arg createArgByVal(Var variable) { return createArgByVal(createExprVar(variable)); } @Override public List<Arg> createArgsByVal(List<Expression> expressions) { List<Arg> args = new ArrayList<Arg>(expressions.size()); for (Expression expr : expressions) { args.add(createArgByVal(expr)); } return args; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public BlockBasic createBlockBasic() { BlockBasicImpl blockBasic = new BlockBasicImpl(); return blockBasic; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public BlockIf createBlockIf() { BlockIfImpl blockIf = new BlockIfImpl(); return blockIf; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public BlockWhile createBlockWhile() { BlockWhileImpl blockWhile = new BlockWhileImpl(); return blockWhile; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Cfg createCfg() { CfgImpl cfg = new CfgImpl(); return cfg; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public CfgNode createCfgNode() { CfgNodeImpl cfgNode = new CfgNodeImpl(); return cfgNode; } @Override public CfgNode createCfgNode(Block node) { CfgNode cfgNode = new CfgNodeImpl(); cfgNode.setNode(node); return cfgNode; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Def createDef() { DefImpl def = new DefImpl(); return def; } @Override public Def createDef(Var variable) { DefImpl def = new DefImpl(); def.setVariable(variable); return def; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprBinary createExprBinary() { ExprBinaryImpl exprBinary = new ExprBinaryImpl(); return exprBinary; } @Override public ExprBinary createExprBinary(Expression e1, OpBinary op, Expression e2, Type type) { ExprBinaryImpl exprBinary = new ExprBinaryImpl(); exprBinary.setE1(e1); exprBinary.setE2(e2); exprBinary.setOp(op); exprBinary.setType(EcoreUtil.copy(type)); return exprBinary; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprBool createExprBool() { ExprBoolImpl exprBool = new ExprBoolImpl(); return exprBool; } @Override public ExprBool createExprBool(boolean value) { ExprBoolImpl exprBool = new ExprBoolImpl(); exprBool.setValue(value); return exprBool; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprFloat createExprFloat() { ExprFloatImpl exprFloat = new ExprFloatImpl(); return exprFloat; } @Override public ExprFloat createExprFloat(BigDecimal value) { ExprFloatImpl exprFloat = new ExprFloatImpl(); exprFloat.setValue(value); return exprFloat; } @Override public ExprFloat createExprFloat(float value) { ExprFloatImpl exprFloat = new ExprFloatImpl(); exprFloat.setValue(BigDecimal.valueOf(value)); return exprFloat; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprInt createExprInt() { ExprIntImpl exprInt = new ExprIntImpl(); return exprInt; } @Override public ExprInt createExprInt(BigInteger value) { ExprIntImpl exprInt = new ExprIntImpl(); exprInt.setValue(value); exprInt.setType(createTypeIntOrUint(value)); return exprInt; } @Override public ExprInt createExprInt(int value) { return createExprInt(BigInteger.valueOf(value)); } @Override public ExprInt createExprInt(long value) { return createExprInt(BigInteger.valueOf(value)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprList createExprList() { ExprListImpl exprList = new ExprListImpl(); return exprList; } @Override public ExprList createExprList(ExprList l1, ExprList l2) { ExprListImpl exprList = new ExprListImpl(); exprList.getValue().addAll(l1.getValue()); exprList.getValue().addAll(l2.getValue()); return exprList; } @Override public ExprList createExprList(List<Expression> exprs) { ExprListImpl exprList = new ExprListImpl(); exprList.getValue().addAll(exprs); return exprList; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprString createExprString() { ExprStringImpl exprString = new ExprStringImpl(); return exprString; } @Override public ExprString createExprString(String value) { ExprStringImpl exprString = new ExprStringImpl(); exprString.setValue(value); return exprString; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprUnary createExprUnary() { ExprUnaryImpl exprUnary = new ExprUnaryImpl(); return exprUnary; } @Override public ExprUnary createExprUnary(OpUnary op, Expression expression, Type type) { ExprUnaryImpl exprUnary = new ExprUnaryImpl(); exprUnary.setExpr(expression); exprUnary.setOp(op); exprUnary.setType(EcoreUtil.copy(type)); return exprUnary; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ExprVar createExprVar() { ExprVarImpl exprVar = new ExprVarImpl(); return exprVar; } @Override public ExprVar createExprVar(Use use) { ExprVarImpl exprVar = new ExprVarImpl(); exprVar.setUse(use); return exprVar; } @Override public ExprVar createExprVar(Var variable) { ExprVarImpl exprVar = new ExprVarImpl(); exprVar.setUse(IrFactory.eINSTANCE.createUse(variable)); return exprVar; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public Object createFromString(EDataType eDataType, String initialValue) { switch (eDataType.getClassifierID()) { case IrPackage.OP_BINARY: return createOpBinaryFromString(eDataType, initialValue); case IrPackage.OP_UNARY: return createOpUnaryFromString(eDataType, initialValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InstAssign createInstAssign() { InstAssignImpl instAssign = new InstAssignImpl(); return instAssign; } @Override public InstAssign createInstAssign(int lineNumber, Var target, Expression value) { InstAssignImpl instAssign = new InstAssignImpl(); instAssign.setLineNumber(lineNumber); instAssign.setTarget(IrFactory.eINSTANCE.createDef(target)); instAssign.setValue(value); return instAssign; } @Override public InstAssign createInstAssign(Var target, Expression value) { return createInstAssign(0, target, value); } @Override public InstAssign createInstAssign(Var target, int value) { return createInstAssign(target, createExprInt(value)); } @Override public InstAssign createInstAssign(Var target, long value) { return createInstAssign(target, createExprInt(value)); } @Override public InstAssign createInstAssign(Var target, Var value) { return createInstAssign(target, createExprVar(value)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InstCall createInstCall() { InstCallImpl instCall = new InstCallImpl(); return instCall; } @Override public InstCall createInstCall(int lineNumber, Var target, Procedure procedure, List<Expression> parameters) { InstCallImpl instCall = new InstCallImpl(); instCall.setLineNumber(lineNumber); if (target != null) { instCall.setTarget(IrFactory.eINSTANCE.createDef(target)); } instCall.setProcedure(procedure); if (parameters != null) { instCall.getArguments().addAll(createArgsByVal(parameters)); } return instCall; } @Override public InstCall createInstCall(Var target, Procedure procedure, List<Expression> parameters) { return createInstCall(0, target, procedure, parameters); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InstLoad createInstLoad() { InstLoadImpl instLoad = new InstLoadImpl(); return instLoad; } @Override public InstLoad createInstLoad(int lineNumber, Def target, Use source, List<Expression> indexes) { InstLoadImpl instLoad = new InstLoadImpl(); instLoad.setLineNumber(lineNumber); instLoad.setTarget(target); instLoad.setSource(source); instLoad.getIndexes().addAll(indexes); return instLoad; } @Override public InstLoad createInstLoad(int lineNumber, Var target, Var source, List<Expression> indexes) { return createInstLoad(lineNumber, IrFactory.eINSTANCE.createDef(target), IrFactory.eINSTANCE.createUse(source), indexes); } @Override public InstLoad createInstLoad(Var target, Var source, int index) { List<Expression> indexes = new ArrayList<Expression>(1); indexes.add(createExprInt(index)); return createInstLoad(target, source, indexes); } @Override public InstLoad createInstLoad(Var target, Var source) { InstLoadImpl instLoad = new InstLoadImpl(); instLoad.setTarget(IrFactory.eINSTANCE.createDef(target)); instLoad.setSource(IrFactory.eINSTANCE.createUse(source)); return instLoad; } @Override public InstLoad createInstLoad(Var target, Var source, List<Expression> indexes) { return createInstLoad(0, IrFactory.eINSTANCE.createDef(target), IrFactory.eINSTANCE.createUse(source), indexes); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InstPhi createInstPhi() { InstPhiImpl instPhi = new InstPhiImpl(); return instPhi; } @Override public InstPhi createInstPhi(int lineNumber, Def target, List<Expression> values) { InstPhiImpl instPhi = new InstPhiImpl(); instPhi.setLineNumber(lineNumber); instPhi.setTarget(target); instPhi.getValues().addAll(values); return instPhi; } @Override public InstPhi createInstPhi(int lineNumber, Var target, List<Expression> values) { return createInstPhi(lineNumber, IrFactory.eINSTANCE.createDef(target), values); } @Override public InstPhi createInstPhi(Var target, List<Expression> values) { return createInstPhi(0, IrFactory.eINSTANCE.createDef(target), values); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InstReturn createInstReturn() { InstReturnImpl instReturn = new InstReturnImpl(); return instReturn; } @Override public InstReturn createInstReturn(Expression value) { InstReturnImpl instReturn = new InstReturnImpl(); instReturn.setValue(value); return instReturn; } @Override public InstReturn createInstReturn(int lineNumber, Expression value) { InstReturnImpl instReturn = new InstReturnImpl(); instReturn.setLineNumber(lineNumber); instReturn.setValue(value); return instReturn; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InstStore createInstStore() { InstStoreImpl instStore = new InstStoreImpl(); return instStore; } @Override public InstStore createInstStore(int lineNumber, Def target, Collection<Expression> indexes, Expression value) { InstStoreImpl instStore = new InstStoreImpl(); instStore.setLineNumber(lineNumber); instStore.setTarget(target); instStore.setValue(value); instStore.getIndexes().addAll(indexes); return instStore; } @Override public InstStore createInstStore(int lineNumber, Var target, Collection<Expression> indexes, Expression value) { return createInstStore(lineNumber, IrFactory.eINSTANCE.createDef(target), indexes, value); } @Override public InstStore createInstStore(Var target, Expression value) { InstStoreImpl instStore = new InstStoreImpl(); instStore.setTarget(IrFactory.eINSTANCE.createDef(target)); instStore.setValue(value); return instStore; } @Override public InstStore createInstStore(Var target, int value) { return createInstStore(target, createExprInt(value)); } @Override public InstStore createInstStore(Var target, int index, Expression source) { List<Expression> indexes = new ArrayList<Expression>(1); indexes.add(createExprInt(index)); return createInstStore(target, indexes, source); } @Override public InstStore createInstStore(Var target, int index, Var source) { List<Expression> indexes = new ArrayList<Expression>(1); indexes.add(createExprInt(index)); return createInstStore(target, indexes, createExprVar(source)); } @Override public InstStore createInstStore(Var target, List<Expression> indexes, Expression value) { return createInstStore(0, target, indexes, value); } @Override public InstStore createInstStore(Var target, List<Expression> indexes, int value) { return createInstStore(target, indexes, createExprInt(value)); } @Override public InstStore createInstStore(Var target, List<Expression> indexes, Var source) { return createInstStore(target, indexes, createExprVar(source)); } @Override public InstStore createInstStore(Var target, Var source) { return createInstStore(target, createExprVar(source)); } @Override public InstStore createInstStore(Var target, Var index, Expression source) { List<Expression> indexes = new ArrayList<Expression>(1); indexes.add(createExprVar(index)); return createInstStore(target, indexes, source); } @Override public InstStore createInstStore(Var target, Var index, Var source) { List<Expression> indexes = new ArrayList<Expression>(1); indexes.add(createExprVar(index)); return createInstStore(target, indexes, createExprVar(source)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public OpBinary createOpBinaryFromString(EDataType eDataType, String initialValue) { OpBinary result = OpBinary.get(initialValue); if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); return result; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public OpUnary createOpUnaryFromString(EDataType eDataType, String initialValue) { OpUnary result = OpUnary.get(initialValue); if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); return result; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Param createParam() { ParamImpl param = new ParamImpl(); return param; } @Override public Param createParam(Var variable) { ParamImpl param = new ParamImpl(); param.setVariable(variable); return param; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Predicate createPredicate() { PredicateImpl predicate = new PredicateImpl(); return predicate; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Procedure createProcedure() { ProcedureImpl procedure = new ProcedureImpl(); return procedure; } @Override public Procedure createProcedure(String name, int lineNumber, Type returnType) { ProcedureImpl procedure = new ProcedureImpl(); procedure.setLineNumber(lineNumber); procedure.setName(name); procedure.setReturnType(EcoreUtil.copy(returnType)); return procedure; } @Override public Procedure createProcedure(String name, Type returnType, Param param) { ProcedureImpl procedure = new ProcedureImpl(); procedure.setName(name); procedure.setReturnType(EcoreUtil.copy(returnType)); procedure.getParameters().add(param); return procedure; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public TypeBool createTypeBool() { TypeBoolImpl typeBool = new TypeBoolImpl(); return typeBool; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> */ public TypeFloat createTypeFloat() { TypeFloatImpl typeFloat = new TypeFloatImpl(); return typeFloat; } public TypeFloat createTypeFloat(int size) { TypeFloatImpl typeFloat = new TypeFloatImpl(); typeFloat.setSize(size); return typeFloat; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> */ public TypeInt createTypeInt() { TypeIntImpl typeInt = new TypeIntImpl(); return typeInt; } @Override public TypeInt createTypeInt(int size) { TypeIntImpl typeInt = new TypeIntImpl(); typeInt.setSize(size); return typeInt; } @Override public Type createTypeIntOrUint(BigInteger value) { int size = TypeUtil.getSize(value); if (value.compareTo(BigInteger.ZERO) >= 0) { return IrFactory.eINSTANCE.createTypeUint(size); } else { return IrFactory.eINSTANCE.createTypeInt(size); } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public TypeList createTypeList() { TypeListImpl typeList = new TypeListImpl(); return typeList; } @Override public TypeList createTypeList(Expression size, Type type) { TypeListImpl typeList = new TypeListImpl(); typeList.setSizeExpr(size); typeList.setType(EcoreUtil.copy(type)); return typeList; } @Override public TypeList createTypeList(int size, Type type) { TypeListImpl typeList = new TypeListImpl(); typeList.setSize(size); typeList.setType(EcoreUtil.copy(type)); return typeList; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public TypeString createTypeString() { TypeStringImpl typeString = new TypeStringImpl(); return typeString; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> */ public TypeUint createTypeUint() { TypeUintImpl typeUint = new TypeUintImpl(); return typeUint; } @Override public TypeUint createTypeUint(int size) { TypeUintImpl typeUint = new TypeUintImpl(); typeUint.setSize(size); return typeUint; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public TypeVoid createTypeVoid() { TypeVoidImpl typeVoid = new TypeVoidImpl(); return typeVoid; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Use createUse() { UseImpl use = new UseImpl(); return use; } @Override public Use createUse(Var variable) { UseImpl use = new UseImpl(); use.setVariable(variable); return use; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Var createVar() { VarImpl var = new VarImpl(); return var; } @Override public Var createVar(int lineNumber, Type type, String name, boolean assignable) { VarImpl var = new VarImpl(); var.setAssignable(assignable); var.setLineNumber(lineNumber); var.setName(name); var.setType(EcoreUtil.copy(type)); return var; } @Override public Var createVar(int lineNumber, Type type, String name, boolean assignable, Expression initialValue) { VarImpl var = new VarImpl(); var.setAssignable(assignable); var.setInitialValue(initialValue); var.setLineNumber(lineNumber); var.setName(name); var.setType(type); return var; } @Override public Var createVar(int lineNumber, Type type, String name, boolean assignable, int index) { VarImpl var = new VarImpl(); var.setAssignable(assignable); var.setIndex(index); var.setLineNumber(lineNumber); var.setName(name); var.setType(EcoreUtil.copy(type)); return var; } @Override public Var createVar(Type type, String name, boolean assignable, int index) { return createVar(0, type, name, assignable, index); } @Override public Var createVarInt(String name, boolean assignable, int index) { return createVar(createTypeInt(), name, assignable, index); } @Override public Var createVarInt(String name, int size, boolean assignable, int index) { return createVar(createTypeInt(size), name, assignable, index); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public IrPackage getIrPackage() { return (IrPackage) getEPackage(); } } // IrFactoryImpl