From 3320e1496b1d099f63dea869f4a1cc19630dc3a9 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Mon, 24 Nov 2014 15:51:08 -0700 Subject: Fixed an annoying parsing bug. --- src/unitparser.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/unitparser.cpp') diff --git a/src/unitparser.cpp b/src/unitparser.cpp index 43dacfc..6a5dcf4 100644 --- a/src/unitparser.cpp +++ b/src/unitparser.cpp @@ -11,6 +11,8 @@ UnitParser::UnitParser() setName("Parser"); add( static_cast(&UnitParser::order1), "order1", Bu::UnitSuite::expectPass ); + add( static_cast(&UnitParser::assignment), + "assignment", Bu::UnitSuite::expectPass ); } UnitParser::~UnitParser() @@ -35,5 +37,19 @@ void UnitParser::order1() unitTest(parse("(2+3)*5") == "25"); unitTest(parse("1.59*40/24*21", 5) == "55.65"); unitTest(parse("1.59*40/(24*21)", 5) == "0.12619"); // bc says it's this: "0.12619"); + unitTest(parse("10+2*2*2+2") == "20"); +} + +void UnitParser::assignment() +{ + Bu::MemBuf mbIn("$test = 2*2*2"); + Bu::MemBuf mbOut; + Lexer lex( mbIn ); + lex.setScale( 0 ); + Parser parser( lex, mbOut ); + parser.parse(); + Bu::println("%1 == %2").arg( mbOut.getString().trimWhitespace() ) + .arg( parser.getVariable("test") ); + unitTest( mbOut.getString().trimWhitespace() == parser.getVariable("test").toString() ); } -- cgit v1.2.3