List of usage examples for org.eclipse.jdt.core.dom InfixExpression extendedOperands
ASTNode.NodeList extendedOperands
To view the source code for org.eclipse.jdt.core.dom InfixExpression extendedOperands.
Click Source Link
From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java
License:Open Source License
@Override public boolean visit(InfixExpression node) { node.getLeftOperand().accept(this); this.fBuffer.append(' '); // for cases like x= i - -1; or x= i++ + ++i; this.fBuffer.append(node.getOperator().toString()); this.fBuffer.append(' '); node.getRightOperand().accept(this); final List<Expression> extendedOperands = node.extendedOperands(); if (extendedOperands.size() != 0) { this.fBuffer.append(' '); for (Iterator<Expression> it = extendedOperands.iterator(); it.hasNext();) { this.fBuffer.append(node.getOperator().toString()).append(' '); Expression e = it.next(); e.accept(this); }// w ww .j av a 2s . c om } return false; }
From source file:boa.datagen.util.Java7Visitor.java
License:Apache License
@Override public boolean visit(InfixExpression node) { boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder(); // b.setPosition(pos.build()); if (node.getOperator() == InfixExpression.Operator.AND) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_AND); else if (node.getOperator() == InfixExpression.Operator.CONDITIONAL_AND) b.setKind(boa.types.Ast.Expression.ExpressionKind.LOGICAL_AND); else if (node.getOperator() == InfixExpression.Operator.CONDITIONAL_OR) b.setKind(boa.types.Ast.Expression.ExpressionKind.LOGICAL_OR); else if (node.getOperator() == InfixExpression.Operator.DIVIDE) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_DIV); else if (node.getOperator() == InfixExpression.Operator.EQUALS) b.setKind(boa.types.Ast.Expression.ExpressionKind.EQ); else if (node.getOperator() == InfixExpression.Operator.GREATER) b.setKind(boa.types.Ast.Expression.ExpressionKind.GT); else if (node.getOperator() == InfixExpression.Operator.GREATER_EQUALS) b.setKind(boa.types.Ast.Expression.ExpressionKind.GTEQ); else if (node.getOperator() == InfixExpression.Operator.LEFT_SHIFT) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_LSHIFT); else if (node.getOperator() == InfixExpression.Operator.LESS) b.setKind(boa.types.Ast.Expression.ExpressionKind.LT); else if (node.getOperator() == InfixExpression.Operator.LESS_EQUALS) b.setKind(boa.types.Ast.Expression.ExpressionKind.LTEQ); else if (node.getOperator() == InfixExpression.Operator.MINUS) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_SUB); else if (node.getOperator() == InfixExpression.Operator.NOT_EQUALS) b.setKind(boa.types.Ast.Expression.ExpressionKind.NEQ); else if (node.getOperator() == InfixExpression.Operator.OR) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_OR); else if (node.getOperator() == InfixExpression.Operator.PLUS) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_ADD); else if (node.getOperator() == InfixExpression.Operator.REMAINDER) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_MOD); else if (node.getOperator() == InfixExpression.Operator.RIGHT_SHIFT_SIGNED) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_RSHIFT); else if (node.getOperator() == InfixExpression.Operator.RIGHT_SHIFT_UNSIGNED) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_UNSIGNEDRSHIFT); else if (node.getOperator() == InfixExpression.Operator.TIMES) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_MULT); else if (node.getOperator() == InfixExpression.Operator.XOR) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_XOR); node.getLeftOperand().accept(this); b.addExpressions(expressions.pop()); node.getRightOperand().accept(this); b.addExpressions(expressions.pop()); for (Object e : node.extendedOperands()) { ((org.eclipse.jdt.core.dom.Expression) e).accept(this); b.addExpressions(expressions.pop()); }/* ww w .ja va 2 s. c o m*/ expressions.push(b.build()); return false; }
From source file:coloredide.utils.CopiedNaiveASTFlattener.java
License:Open Source License
public boolean visit(InfixExpression node) { node.getLeftOperand().accept(this); this.buffer.append(' '); // for cases like x= i - -1; or x= i++ + // ++i;//from w w w. j a va 2 s .c o m this.buffer.append(node.getOperator().toString()); this.buffer.append(' '); node.getRightOperand().accept(this); final List extendedOperands = node.extendedOperands(); if (extendedOperands.size() != 0) { this.buffer.append(' '); for (Iterator it = extendedOperands.iterator(); it.hasNext();) { this.buffer.append(node.getOperator().toString()).append(' '); Expression e = (Expression) it.next(); e.accept(this); } } return false; }
From source file:com.bsiag.eclipse.jdt.java.formatter.linewrap.WrapPreparator.java
License:Open Source License
private void findTokensToWrap(InfixExpression node, int depth) { Expression left = node.getLeftOperand(); if (left instanceof InfixExpression && samePrecedence(node, (InfixExpression) left)) { findTokensToWrap((InfixExpression) left, depth + 1); } else if (this.wrapIndexes.isEmpty() // always add first operand, it will be taken as wrap parent || !this.options.wrap_before_binary_operator) { this.wrapIndexes.add(this.tm.firstIndexIn(left, -1)); }/*from w ww . j a v a 2 s.c o m*/ Expression right = node.getRightOperand(); List<Expression> extended = node.extendedOperands(); for (int i = -1; i < extended.size(); i++) { Expression operand = (i == -1) ? right : extended.get(i); if (operand instanceof InfixExpression && samePrecedence(node, (InfixExpression) operand)) { findTokensToWrap((InfixExpression) operand, depth + 1); } int indexBefore = this.tm.firstIndexBefore(operand, -1); while (this.tm.get(indexBefore).isComment()) indexBefore--; assert node.getOperator().toString().equals(this.tm.toString(indexBefore)); int indexAfter = this.tm.firstIndexIn(operand, -1); this.wrapIndexes.add(this.options.wrap_before_binary_operator ? indexBefore : indexAfter); if (!this.options.join_wrapped_lines) { // TODO there should be an option for never joining wraps on opposite side of the operator if (this.options.wrap_before_binary_operator) { if (this.tm.countLineBreaksBetween(this.tm.get(indexAfter - 1), this.tm.get(indexAfter)) > 0) this.wrapIndexes.add(indexAfter); } else { if (this.tm.countLineBreaksBetween(this.tm.get(indexBefore), this.tm.get(indexBefore - 1)) > 0) this.wrapIndexes.add(indexBefore); } } } }
From source file:com.bsiag.eclipse.jdt.java.formatter.SpacePreparator.java
License:Open Source License
@Override public boolean visit(InfixExpression node) { String operator = node.getOperator().toString(); handleOperator(operator, node.getRightOperand(), this.options.insert_space_before_binary_operator, this.options.insert_space_after_binary_operator); List<Expression> extendedOperands = node.extendedOperands(); for (Expression operand : extendedOperands) { handleOperator(operator, operand, this.options.insert_space_before_binary_operator, this.options.insert_space_after_binary_operator); }/* ww w.jav a 2s.c o m*/ return true; }
From source file:com.google.dart.java2dart.SyntaxTranslator.java
License:Open Source License
@Override public boolean visit(org.eclipse.jdt.core.dom.InfixExpression node) { Expression left = translate(node.getLeftOperand()); Expression right = translate(node.getRightOperand()); // operator//from ww w.j a va 2 s . co m TokenType tokenType = null; org.eclipse.jdt.core.dom.InfixExpression.Operator javaOperator = node.getOperator(); if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.PLUS) { tokenType = TokenType.PLUS; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.MINUS) { tokenType = TokenType.MINUS; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.TIMES) { tokenType = TokenType.STAR; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.DIVIDE) { if (isIntegerType(node.getLeftOperand()) && isIntegerType(node.getRightOperand())) { tokenType = TokenType.TILDE_SLASH; } else { tokenType = TokenType.SLASH; } } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.REMAINDER) { tokenType = TokenType.PERCENT; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.LEFT_SHIFT) { tokenType = TokenType.LT_LT; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.RIGHT_SHIFT_SIGNED || javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.RIGHT_SHIFT_UNSIGNED) { tokenType = TokenType.GT_GT; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.CONDITIONAL_OR) { tokenType = TokenType.BAR_BAR; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.CONDITIONAL_AND) { tokenType = TokenType.AMPERSAND_AMPERSAND; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.XOR) { tokenType = TokenType.CARET; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.OR) { tokenType = TokenType.BAR; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.AND) { tokenType = TokenType.AMPERSAND; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.LESS) { tokenType = TokenType.LT; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.GREATER) { tokenType = TokenType.GT; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.LESS_EQUALS) { tokenType = TokenType.LT_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.GREATER_EQUALS) { tokenType = TokenType.GT_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.EQUALS) { if (isNumberOrNull(left) || isNumberOrNull(right)) { tokenType = TokenType.EQ_EQ; } else { return done(methodInvocation("identical", left, right)); } } if (javaOperator == org.eclipse.jdt.core.dom.InfixExpression.Operator.NOT_EQUALS) { tokenType = TokenType.BANG_EQ; } Assert.isNotNull(tokenType, "No token for: " + javaOperator); // create BinaryExpression BinaryExpression binary = binaryExpression(left, tokenType, right); for (Object javaOperand : node.extendedOperands()) { Expression operand = translate((org.eclipse.jdt.core.dom.ASTNode) javaOperand); binary = binaryExpression(binary, tokenType, operand); } return done(binary); }
From source file:com.google.devtools.j2cpp.gen.CppStatementGenerator.java
License:Open Source License
@SuppressWarnings("unchecked") @Override// www.jav a 2 s.co m public boolean visit(InfixExpression node) { InfixExpression.Operator op = node.getOperator(); ITypeBinding type = Types.getTypeBinding(node); if (Types.isJavaStringType(type) && op.equals(InfixExpression.Operator.PLUS)) { printStringConcatenation(node.getLeftOperand(), node.getRightOperand(), node.extendedOperands(), false); } else if (op.equals(InfixExpression.Operator.RIGHT_SHIFT_UNSIGNED)) { printUnsignedRightShift(node.getLeftOperand(), node.getRightOperand()); } else if (op.equals(InfixExpression.Operator.REMAINDER) && isFloatingPoint(node)) { buffer.append(type.isEqualTo(node.getAST().resolveWellKnownType("float")) ? "fmodf" : "fmod"); buffer.append('('); node.getLeftOperand().accept(this); buffer.append(", "); node.getRightOperand().accept(this); buffer.append(')'); } else { node.getLeftOperand().accept(this); buffer.append(' '); buffer.append(node.getOperator().toString()); buffer.append(' '); node.getRightOperand().accept(this); final List<Expression> extendedOperands = node.extendedOperands(); if (extendedOperands.size() != 0) { buffer.append(' '); for (Iterator<Expression> it = extendedOperands.iterator(); it.hasNext();) { buffer.append(node.getOperator().toString()).append(' '); it.next().accept(this); } } } return false; }
From source file:com.google.devtools.j2cpp.types.ImplementationImportCollector.java
License:Open Source License
@Override public boolean visit(InfixExpression node) { if (Types.isJavaStringType(Types.getTypeBinding(node))) { boolean needsImport = false; if (Types.isBooleanType(Types.getTypeBinding(node.getLeftOperand())) || Types.isBooleanType(Types.getTypeBinding(node.getRightOperand()))) { needsImport = true;//from w w w . ja v a2 s. c om } else { @SuppressWarnings("unchecked") List<Expression> extendedExpressions = node.extendedOperands(); // Safe by definition for (Expression extendedExpression : extendedExpressions) { if (Types.isBooleanType(Types.getTypeBinding(extendedExpression))) { needsImport = true; break; } } } if (needsImport) { // Implicit conversion from boolean -> String translates into a // Boolean.toString(...) call, so add a reference to java.lang.Boolean. addReference(node.getAST().resolveWellKnownType("java.lang.Boolean")); } } return super.visit(node); }
From source file:com.google.devtools.j2objc.util.ASTUtil.java
License:Apache License
@SuppressWarnings("unchecked") public static List<Expression> getExtendedOperands(InfixExpression expr) { return expr.extendedOperands(); }
From source file:com.google.googlejavaformat.java.JavaInputAstVisitor.java
License:Apache License
/** * Helper method for {@link InfixExpression}s. Visit this {@link Expression} node, and its * children, as long as they are {@link InfixExpression} nodes of the same precedence. Accumulate * the operands and operators.//from ww w . j av a 2 s . c om * @param precedence the precedence of the operators to collect * @param operands the output list of {@code n + 1} operands * @param operators the output list of {@code n} operators */ private static void walkInfix(int precedence, Expression expression, List<Expression> operands, List<String> operators) { if (expression.getNodeType() == ASTNode.INFIX_EXPRESSION) { InfixExpression infixExpression = (InfixExpression) expression; String myOperator = infixExpression.getOperator().toString(); if (PRECEDENCE.get(myOperator) == precedence) { walkInfix(precedence, infixExpression.getLeftOperand(), operands, operators); operators.add(myOperator); walkInfix(precedence, infixExpression.getRightOperand(), operands, operators); if (infixExpression.hasExtendedOperands()) { for (Expression extendedOperand : (List<Expression>) infixExpression.extendedOperands()) { operators.add(myOperator); walkInfix(precedence, extendedOperand, operands, operators); } } } else { operands.add(expression); } } else { operands.add(expression); } }