public ExpressionTree assignmentExpression(ExpressionTree expression, Optional<List<OperatorAndOperand>> operatorAndOperands) { if (!operatorAndOperands.isPresent()) { return expression; } ExpressionTree result = null; InternalSyntaxToken lastOperator = null; for (OperatorAndOperand operatorAndOperand : Lists.reverse(operatorAndOperands.get())) { if (lastOperator == null) { result = operatorAndOperand.operand(); } else { result = new AssignmentExpressionTreeImpl( kindMaps.getAssignmentOperator((JavaPunctuator) lastOperator.getType()), operatorAndOperand.operand(), lastOperator, result); } lastOperator = operatorAndOperand.operator(); } result = new AssignmentExpressionTreeImpl( kindMaps.getAssignmentOperator((JavaPunctuator) lastOperator.getType()), expression, lastOperator, result); return result; }
public AssignmentExpressionTreeImpl newElementValuePair(AstNode identifierAstNode, AstNode equalTokenAstNode, ExpressionTree elementValue) { InternalSyntaxToken operator = InternalSyntaxToken.create(equalTokenAstNode); return new AssignmentExpressionTreeImpl( kindMaps.getAssignmentOperator((JavaPunctuator) operator.getType()), new IdentifierTreeImpl(InternalSyntaxToken.create(identifierAstNode)), operator, elementValue); }
private ExpressionTree binaryExpression(ExpressionTree expression, Optional<List<OperatorAndOperand>> operatorAndOperands) { if (!operatorAndOperands.isPresent()) { return expression; } ExpressionTree result = expression; for (OperatorAndOperand operatorAndOperand : operatorAndOperands.get()) { result = new BinaryExpressionTreeImpl( kindMaps.getBinaryOperator((JavaPunctuator) operatorAndOperand.operator().getType()), result, operatorAndOperand.operator(), operatorAndOperand.operand()); } return result; }