Class MultiplicativeExpressionTransformer
java.lang.Object
gw.internal.gosu.ir.transform.AbstractElementTransformer<T>
gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer<T>
gw.internal.gosu.ir.transform.expression.ArithmeticExpressionTransformer<MultiplicativeExpression>
gw.internal.gosu.ir.transform.expression.MultiplicativeExpressionTransformer
public class MultiplicativeExpressionTransformer
extends ArithmeticExpressionTransformer<MultiplicativeExpression>
-
Field Summary
Fields inherited from class gw.internal.gosu.ir.transform.AbstractElementTransformer
CAPTURED_VAR_PREFIX, CTX_SYMBOL, CTX_SYMBOL_SUFFIX, CUSTOM_RUNTIMES, EMPTY_CLASS_ARRAY, ENHANCEMENT_THIS_REF, ENHANCEMENT_TYPE_PARAM_PREFIX, ENUM_PARAM_PREFIX, OBJECT_TYPE, OUTER_ACCESS, TYPE_PARAM_PREFIX -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateMultiplicativeExpressionTransformer(TopLevelTransformationContext cc, MultiplicativeExpression expr) -
Method Summary
Modifier and TypeMethodDescriptionstatic IRExpressionprotected IRExpressionprivate IRExpressiondimensionMultiplication(IType type) private IRExpressiondoDimByDimDivision(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private IRExpressiondoDimByNumberMultiplyOrDivide(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit, boolean bLhsDim) private IRExpressiondoMultiplicationOrDivision(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit, boolean bLhsDim, boolean bRhsDim) private IRExpressionprivate IRExpressionmultiplyBigDimension(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private IRArithmeticExpressionmultiplyBoxedDimension(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private IRExpressionmultiplyRationalDimension(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private booleanMethods inherited from class gw.internal.gosu.ir.transform.expression.ArithmeticExpressionTransformer
bigArithmetic, bigDecimalArithmetic, bigIntegerArithmetic, compileNumericArithmetic, isBigDecimalArithmetic, isBigIntegerArithmetic, isMixedBigDecimalArithmetic, isMixedBigIntegerArithmetic, isMixedPrimitiveAndBoxedArithmetic, isMixedRationalArithmetic, isPrimitiveArithmetic, makeBigExpression, mixedBigArithmetic, mixedPrimitiveAndBoxedArithmetic, mixedRationalArithmetic, primitiveArithmetic, rationalArithmeticMethods inherited from class gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer
_expr, compile, getIRParameters, pushArgumentsNoCasting, pushArgumentsWithCasting, shortCircuitValueMethods inherited from class gw.internal.gosu.ir.transform.AbstractElementTransformer
_cc, assignStructuralTypeOwner, avoidVerifyError, booleanLiteral, boxValue, boxValue, boxValueToType, buildAddition, buildArithmetic, buildArrayLength, buildArrayLoad, buildArrayLoad, buildArrayStore, buildAssignment, buildCast, buildComposite, buildComposite, buildEquals, buildFieldGet, buildFieldSet, buildGreaterThan, buildIf, buildIfElse, buildInitializedArray, buildMethodCall, buildMethodCall, buildMethodCall, buildNegation, buildNewExpression, buildNewExpression, buildNewExpression, buildNotEquals, buildNullCheckTernary, buildReturn, buildSubtraction, buildTernary, buildThrow, callMethod, callMethod, callMethod, callMethod, callMethod, callSpecialMethod, callSpecialMethod, callSpecialMethod, callStaticMethod, castResultingTypeIfNecessary, charLiteral, checkCast, checkCast, checkCast, classLiteral, classLiteral, classLiteral, clearCustomRuntimes, collectArgsIntoObjArray, convertBoxedNullToPrimitive, convertNullToPrimitive, convertOperandToBig, convertOperandToPrimitive, convertOperandToRational, exprList, fastStringCoercion, findComparableParamType, findDimensionType, getActualPropertyInfo, getCapturedSymbolParameterName, getClassInfos, getConcreteType, getConstructorParamTypes, getCustomRuntime, getDeclaredField, getDeclaredFieldImpl, getDeclaredMethod, getDeclaredMethod, getDefaultConstIns, getDescriptor, getDescriptor, getDescriptor, getDescriptor, getEnclosingDFS, getField, getField_new, getGosuClass, getInstanceField, getIRTypes, getIRTypes, getModifiers, getParsedElement, getRuntimeEnclosingType, getStaticField, getTypes, getTypeVarParamName, getTypeVarsForDFS, handleCustomExpressionRuntime, handleNamedArgs, identifier, initLocalVar, initLocalVarWithDefault, initMultiArray, inStaticContext, isBigType, isBoxedIntType, isBytecodeType, isBytecodeType, isCheckedArithmeticEnabled, isCompilingEnhancement, isEnhancementType, isEvalProgram, isExecuteMethod, isHandledByCustomCoercion, isIntType, isMemberOnEnclosingType, isMemberOnEnhancementOfEnclosingType, isNonBigBoxedNumberType, isNonStaticInnerClass, isNumberType, isPrimitiveNumberType, isProgram, isProgramOrEnclosedInProgram, makeAnnotationInfos, makeArrayViaTypeInfo, makeEmptyArrayViaTypeInfo, makeIRSymbol, maybeUnwrapMetaType, newArray, nullCheckVar, nullLiteral, numberConvert, numberConvert, numericLiteral, pushArrayOfDefValueExpr, pushArrayOfString, pushArrayOfTypes, pushCapturedSymbols, pushConstant, pushEnumSuperConstructorArguments, pushExternalSymbolsMap, pushLazyType, pushLazyType, pushNull, pushOuter, pushOuter, pushOuter, pushParamTypes, pushRuntimeTypeOfTypeVar, pushString, pushThis, pushThisOrOuter, pushType, pushType, pushTypeParametersForConstructor, requiresExternalSymbolCapture, requiresImplicitEnhancementArg, requiresImplicitEnhancementArg, setCc, setField, setField, setInstanceField, setStaticField, stringLiteral, unboxValueFromType, unboxValueToType, unboxValueToType, valueOf
-
Constructor Details
-
MultiplicativeExpressionTransformer
private MultiplicativeExpressionTransformer(TopLevelTransformationContext cc, MultiplicativeExpression expr)
-
-
Method Details
-
compile
-
compile_impl
- Specified by:
compile_implin classAbstractExpressionTransformer<MultiplicativeExpression>
-
dimensionMultiplication
-
doMultiplicationOrDivision
private IRExpression doMultiplicationOrDivision(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit, boolean bLhsDim, boolean bRhsDim) -
verifyDivision
private boolean verifyDivision() -
doDimByDimDivision
-
doDimByNumberMultiplyOrDivide
private IRExpression doDimByNumberMultiplyOrDivide(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit, boolean bLhsDim) -
multiplyBoxedDimension
private IRArithmeticExpression multiplyBoxedDimension(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) -
multiplyBigDimension
-
multiplyRationalDimension
private IRExpression multiplyRationalDimension(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) -
dynamicMultiplication
-