From 51cc6a4d71441b7c8b38efc8216557426ae4a9cd Mon Sep 17 00:00:00 2001 From: Ruben Dashyan Date: Wed, 13 Nov 2019 11:24:24 +0100 Subject: [PATCH] [poincare/layout_helper] Simplify Infix and Prefix --- poincare/src/layout_helper.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/poincare/src/layout_helper.cpp b/poincare/src/layout_helper.cpp index 4716e1da5..57dd3a6ef 100644 --- a/poincare/src/layout_helper.cpp +++ b/poincare/src/layout_helper.cpp @@ -11,13 +11,12 @@ namespace Poincare { Layout LayoutHelper::Infix(const Expression & expression, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits, const char * operatorName) { - int numberOfChildren = expression.numberOfChildren(); - assert(numberOfChildren > 1); HorizontalLayout result = HorizontalLayout::Builder(); - result.addOrMergeChildAtIndex(expression.childAtIndex(0).createLayout(floatDisplayMode, numberOfSignificantDigits), 0, true); - for (int i = 1; i < numberOfChildren; i++) { - size_t operatorLength = strlen(operatorName); - if (operatorLength > 0) { + const size_t operatorLength = strlen(operatorName); + const int numberOfChildren = expression.numberOfChildren(); + assert(numberOfChildren > 1); + for (int i = 0; i < numberOfChildren; i++) { + if (i > 0 && operatorLength > 0) { result.addOrMergeChildAtIndex(String(operatorName, operatorLength), result.numberOfChildren(), true); } result.addOrMergeChildAtIndex( @@ -35,13 +34,12 @@ Layout LayoutHelper::Prefix(const Expression & expression, Preferences::PrintFlo // Create the layout of arguments separated by commas. HorizontalLayout args = HorizontalLayout::Builder(); - int numberOfChildren = expression.numberOfChildren(); - if (numberOfChildren > 0) { - args.addOrMergeChildAtIndex(expression.childAtIndex(0).createLayout(floatDisplayMode, numberOfSignificantDigits), 0, true); - for (int i = 1; i < numberOfChildren; i++) { + const int numberOfChildren = expression.numberOfChildren(); + for (int i = 0; i < numberOfChildren; i++) { + if (i > 0) { args.addChildAtIndex(CodePointLayout::Builder(','), args.numberOfChildren(), args.numberOfChildren(), nullptr); - args.addOrMergeChildAtIndex(expression.childAtIndex(i).createLayout(floatDisplayMode, numberOfSignificantDigits), args.numberOfChildren(), true); } + args.addOrMergeChildAtIndex(expression.childAtIndex(i).createLayout(floatDisplayMode, numberOfSignificantDigits), args.numberOfChildren(), true); } // Add the parenthesed arguments. result.addOrMergeChildAtIndex(Parentheses(args, false), result.numberOfChildren(), true);