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
ConstructorsModifierConstructorDescriptionprivate
MultiplicativeExpressionTransformer
(TopLevelTransformationContext cc, MultiplicativeExpression expr) -
Method Summary
Modifier and TypeMethodDescriptionstatic IRExpression
protected IRExpression
private IRExpression
dimensionMultiplication
(IType type) private IRExpression
doDimByDimDivision
(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private IRExpression
doDimByNumberMultiplyOrDivide
(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit, boolean bLhsDim) private IRExpression
doMultiplicationOrDivision
(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit, boolean bLhsDim, boolean bRhsDim) private IRExpression
private IRExpression
multiplyBigDimension
(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private IRArithmeticExpression
multiplyBoxedDimension
(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private IRExpression
multiplyRationalDimension
(IType type, IRSymbol tempLhsInit, IRSymbol tempRhsInit) private boolean
Methods 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, rationalArithmetic
Methods inherited from class gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer
_expr, compile, getIRParameters, pushArgumentsNoCasting, pushArgumentsWithCasting, shortCircuitValue
Methods 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_impl
in 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
-