コード例 #1
0
  @Override
  public boolean enterBinaryNode(final BinaryNode binaryNode) {
    if (binaryNode.isAssignment()) {
      final ExpressionTree srcTree = translateExpr(binaryNode.getAssignmentSource());
      final ExpressionTree destTree = translateExpr(binaryNode.getAssignmentDest());

      if (binaryNode.isTokenType(TokenType.ASSIGN)) {
        curExpr = new AssignmentTreeImpl(binaryNode, destTree, srcTree);
      } else {
        curExpr = new CompoundAssignmentTreeImpl(binaryNode, destTree, srcTree);
      }
    } else {
      final ExpressionTree leftTree = translateExpr(binaryNode.lhs());
      final ExpressionTree rightTree = translateExpr(binaryNode.rhs());

      if (binaryNode.isTokenType(TokenType.INSTANCEOF)) {
        curExpr = new InstanceOfTreeImpl(binaryNode, leftTree, rightTree);
      } else {
        curExpr = new BinaryTreeImpl(binaryNode, leftTree, rightTree);
      }
    }

    return false;
  }