public class SyntheticAccessorRewriter extends AbstractExpressionRewriter implements Op04Rewriter
Modifier and Type | Class and Description |
---|---|
private class |
SyntheticAccessorRewriter.AccessorMatchCollector |
private class |
SyntheticAccessorRewriter.FuncMatchCollector |
private class |
SyntheticAccessorRewriter.VisibiliyDecreasingRewriter |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ASSIGNMENT1 |
private static java.lang.String |
MUTATION1 |
private static java.lang.String |
MUTATION2 |
private static java.lang.String |
MUTATION3 |
private static java.lang.String |
POST_DEC |
private static java.lang.String |
POST_INC |
private static java.lang.String |
PRE_DEC |
private static java.lang.String |
PRE_INC |
private static java.lang.String |
RETURN_LVALUE |
private static java.lang.String |
STA_FUN1 |
private static java.lang.String |
STA_SUB1 |
private DCCommonState |
state |
private static java.lang.String |
SUPER_INVOKE |
private static java.lang.String |
SUPER_RETINVOKE |
private JavaTypeInstance |
thisClassType |
private ExpressionRewriter |
visbilityRewriter |
Constructor and Description |
---|
SyntheticAccessorRewriter(DCCommonState state,
JavaTypeInstance thisClassType) |
handleStatement, rewriteExpression, rewriteExpression
private final DCCommonState state
private final JavaTypeInstance thisClassType
private final ExpressionRewriter visbilityRewriter
private static final java.lang.String RETURN_LVALUE
private static final java.lang.String MUTATION1
private static final java.lang.String MUTATION2
private static final java.lang.String MUTATION3
private static final java.lang.String ASSIGNMENT1
private static final java.lang.String PRE_INC
private static final java.lang.String POST_INC
private static final java.lang.String PRE_DEC
private static final java.lang.String POST_DEC
private static final java.lang.String SUPER_INVOKE
private static final java.lang.String SUPER_RETINVOKE
private static final java.lang.String STA_SUB1
private static final java.lang.String STA_FUN1
public SyntheticAccessorRewriter(DCCommonState state, JavaTypeInstance thisClassType)
public void rewrite(Op04StructuredStatement root)
rewrite
in interface Op04Rewriter
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
rewriteExpression
in interface ExpressionRewriter
rewriteExpression
in class AbstractExpressionRewriter
public LValue rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
rewriteExpression
in interface ExpressionRewriter
rewriteExpression
in class AbstractExpressionRewriter
private Expression rewriteFunctionExpression(StaticFunctionInvokation functionInvokation)
private static boolean validRelationship(JavaTypeInstance type1, JavaTypeInstance type2)
private Expression rewriteFunctionExpression2(StaticFunctionInvokation functionInvokation)
private Expression tryRewriteAccessor(java.util.List<StructuredStatement> structuredStatements, JavaTypeInstance otherType, java.util.List<Expression> appliedArgs, java.util.List<LocalVariable> methodArgs)
private Expression tryRewriteFunctionCall(java.util.List<StructuredStatement> structuredStatements, JavaTypeInstance otherType, java.util.List<Expression> appliedArgs, java.util.List<LocalVariable> methodArgs)
private Expression getCastFriendArg(JavaTypeInstance otherType, LocalVariable methodArg, Expression appliedArg)