[gnome-calculator/gnome-3-22] Fixed first expression with parentheses (bgo#700617)
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calculator/gnome-3-22] Fixed first expression with parentheses (bgo#700617)
- Date: Tue, 25 Oct 2016 05:40:30 +0000 (UTC)
commit 0a02131392ca40bb82f11570a0bb3a9991a3dbbb
Author: Robert Roth <robert roth off gmail com>
Date: Fri Oct 21 01:01:18 2016 +0300
Fixed first expression with parentheses (bgo#700617)
lib/equation-parser.vala | 15 ++++++++++++++-
tests/test-equation.vala | 2 ++
2 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/lib/equation-parser.vala b/lib/equation-parser.vala
index 994e11d..20ecdd6 100644
--- a/lib/equation-parser.vala
+++ b/lib/equation-parser.vala
@@ -1564,7 +1564,20 @@ public class Parser
if (token.type == LexerTokenType.R_R_BRACKET)
{
depth_level--;
- return true;
+ token = lexer.get_next_token ();
+ lexer.roll_back ();
+
+ if (token.type == LexerTokenType.NUMBER)
+ {
+ insert_into_tree (new MultiplyNode (this, null, make_precedence_p (Precedence.MULTIPLY),
get_associativity_p (Precedence.MULTIPLY)));
+
+ if (!expression ())
+ return false;
+ else
+ return true;
+ }
+ else
+ return true;
}
//Expected ")" here...
else
diff --git a/tests/test-equation.vala b/tests/test-equation.vala
index 76d1250..d7e48ab 100644
--- a/tests/test-equation.vala
+++ b/tests/test-equation.vala
@@ -360,6 +360,8 @@ private void test_equations ()
test ("(1+2)×3", "9", 0);
test ("(1+2×3)", "7", 0);
test ("2(1+1)", "4", 0);
+ test ("(2)1+1", "3", 0);
+ test ("(2)(1)", "2", 0);
test ("4÷2(1+1)", "4", 0);
/* Percentage */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]