AClass ftrcls = factor.getParamterizedType();
if(factor instanceof GlobalVariable ||
((ftrcls.getCastOrder() <= AClass.BOOLEAN_ACLASS.getCastOrder() ||
ftrcls.getCastOrder() > AClass.INT_ACLASS.getCastOrder()) &&
factor instanceof LocalVariable)){
AbstractArithmetic arithOperator = OperatorFactory.newOperator(Subtraction.class,
new Class<?>[]{ProgramBlock.class, Parameterized.class, Parameterized.class},
block, factor, getValue());
arithOperator.prepare();
MemberVariable mvar = (MemberVariable) factor;
assigner = block.assign(mvar, arithOperator);
assigner.prepare();