Search in sources :

Example 16 with Assignment

use of com.google.devtools.j2objc.ast.Assignment in project j2objc by google.

the class TranslationUtil method isAssigned.

public static boolean isAssigned(Expression node) {
    TreeNode parent = node.getParent();
    while (parent instanceof ParenthesizedExpression) {
        node = (Expression) parent;
        parent = node.getParent();
    }
    if (parent instanceof PostfixExpression) {
        PostfixExpression.Operator op = ((PostfixExpression) parent).getOperator();
        if (op == PostfixExpression.Operator.INCREMENT || op == PostfixExpression.Operator.DECREMENT) {
            return true;
        }
    } else if (parent instanceof PrefixExpression) {
        PrefixExpression.Operator op = ((PrefixExpression) parent).getOperator();
        if (op == PrefixExpression.Operator.INCREMENT || op == PrefixExpression.Operator.DECREMENT || op == PrefixExpression.Operator.ADDRESS_OF) {
            return true;
        }
    } else if (parent instanceof Assignment) {
        return node == ((Assignment) parent).getLeftHandSide();
    }
    return false;
}
Also used : ParenthesizedExpression(com.google.devtools.j2objc.ast.ParenthesizedExpression) Assignment(com.google.devtools.j2objc.ast.Assignment) TreeNode(com.google.devtools.j2objc.ast.TreeNode) PrefixExpression(com.google.devtools.j2objc.ast.PrefixExpression) PostfixExpression(com.google.devtools.j2objc.ast.PostfixExpression)

Aggregations

Assignment (com.google.devtools.j2objc.ast.Assignment)16 Expression (com.google.devtools.j2objc.ast.Expression)12 ParenthesizedExpression (com.google.devtools.j2objc.ast.ParenthesizedExpression)12 PrefixExpression (com.google.devtools.j2objc.ast.PrefixExpression)12 InfixExpression (com.google.devtools.j2objc.ast.InfixExpression)10 PostfixExpression (com.google.devtools.j2objc.ast.PostfixExpression)10 ConditionalExpression (com.google.devtools.j2objc.ast.ConditionalExpression)8 VariableDeclarationExpression (com.google.devtools.j2objc.ast.VariableDeclarationExpression)8 CastExpression (com.google.devtools.j2objc.ast.CastExpression)7 SimpleName (com.google.devtools.j2objc.ast.SimpleName)7 VariableDeclarationStatement (com.google.devtools.j2objc.ast.VariableDeclarationStatement)7 ExpressionStatement (com.google.devtools.j2objc.ast.ExpressionStatement)6 ThisExpression (com.google.devtools.j2objc.ast.ThisExpression)6 GeneratedVariableElement (com.google.devtools.j2objc.types.GeneratedVariableElement)6 VariableElement (javax.lang.model.element.VariableElement)6 CommaExpression (com.google.devtools.j2objc.ast.CommaExpression)5 InstanceofExpression (com.google.devtools.j2objc.ast.InstanceofExpression)5 Statement (com.google.devtools.j2objc.ast.Statement)5 TreeNode (com.google.devtools.j2objc.ast.TreeNode)5 Block (com.google.devtools.j2objc.ast.Block)4