/* * Code formatter project * CS 4481 */ package submit.ast; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * * @author edwajohn, simponic :3 */ public interface Expression extends Node { public static void joinExpressionOperatorLists(List binaryOperatorTypes, List exprs, StringBuilder builder) { int numExpr = exprs.size(); Expression lhs = exprs.get(0); if (numExpr == 1) lhs.toCminus(builder, ""); if (numExpr > 1) { BinaryOperator binOp = null; for (int i = 0; i < binaryOperatorTypes.size(); i++) { binOp = new BinaryOperator(lhs, binaryOperatorTypes.get(i), exprs.get(i + 1)); lhs = binOp; } binOp.toCminus(builder, ""); } } public static void joinExpressions(BinaryOperatorType binaryOperatorType, List exprs, StringBuilder builder) { Expression.joinExpressionOperatorLists(Arrays.asList(new BinaryOperatorType[exprs.size() - 1]).stream() .map(e -> binaryOperatorType).collect(Collectors.toList()), exprs, builder); } }