diff --git a/legacy/Evaluator.cpp b/legacy/Evaluator.cpp index 7f6192d..5302f4e 100644 --- a/legacy/Evaluator.cpp +++ b/legacy/Evaluator.cpp @@ -3,12 +3,12 @@ #include "Evaluator.hpp" enum Operators{ -PLUS_SIGN, -CLOSE_PAREN, -OPEN_PAREN, -MINUS_SIGN, -DIVIDE_SIGN, -MULTIPLY_SIGN + PLUS_SIGN, + CLOSE_PAREN, + OPEN_PAREN, + MINUS_SIGN, + DIVIDE_SIGN, + MULTIPLY_SIGN }; int precedence(int op) { @@ -31,7 +31,7 @@ int precedence(int op) { } -void evaluateStacks(Stack &numbers, Stack &operators, int num) { +void evaluateStacks(Stack &numbers, Stack &operators) { bool eatOpenParen = false; bool cont = true; @@ -81,14 +81,11 @@ void evaluateStacks(Stack &numbers, Stack &operators, int n operators.pop(); RationalNumber operand2 = numbers.pop(); RationalNumber operand1 = numbers.pop(); - numbers.push(operand1/operand2); + numbers.push(operand1 / operand2); break; } } - if (num == 1) - cont = false; - } } @@ -106,7 +103,7 @@ RationalNumber evaluateExpression(StringTokenizer & st) { std::string next = st.nextToken(); - int value = 0; + Operators value = PLUS_SIGN; bool op = false; if (!next.empty()) { @@ -137,9 +134,8 @@ RationalNumber evaluateExpression(StringTokenizer & st) { break; default: - value = atoi(next.c_str()); op = false; - numbers.push(RationalNumber(value, 1)); + numbers.push(RationalNumber(atoi(next.c_str()), 1)); break; } @@ -152,12 +148,12 @@ RationalNumber evaluateExpression(StringTokenizer & st) { break; case CLOSE_PAREN: operators.push(value); - evaluateStacks(numbers, operators, 0); + evaluateStacks(numbers, operators); break; default: if (operators.peek() != NULL && precedence(value) <= precedence(*operators.peek()) ) { - evaluateStacks(numbers, operators, 0); + evaluateStacks(numbers, operators); } operators.push(value); break; @@ -167,7 +163,7 @@ RationalNumber evaluateExpression(StringTokenizer & st) { } if (operators.peek() != NULL) - evaluateStacks(numbers, operators, 0); + evaluateStacks(numbers, operators); if (numbers.peek() != NULL) { return *numbers.peek(); diff --git a/legacy/Evaluator.hpp b/legacy/Evaluator.hpp index c7986b2..8c18a0e 100644 --- a/legacy/Evaluator.hpp +++ b/legacy/Evaluator.hpp @@ -7,6 +7,6 @@ int precedence(int op); RationalNumber evaluateExpression(StringTokenizer &st); -void evaluateStacks(Stack &numbers, Stack &operators, int num); +void evaluateStacks(Stack &numbers, Stack &operators); #endif \ No newline at end of file diff --git a/legacy/RationalNumber.cpp b/legacy/RationalNumber.cpp index f23d98d..2c2a371 100644 --- a/legacy/RationalNumber.cpp +++ b/legacy/RationalNumber.cpp @@ -2,9 +2,9 @@ #include "RationalNumber.h" -RationalNumber::RationalNumber(int num, int den) { - numerator = num; - denominator = den; +RationalNumber::RationalNumber(int num, int den) + : numerator(num), denominator(den) +{ } RationalNumber RationalNumber::operator/(const RationalNumber & rn) const { diff --git a/legacy/Stack.h b/legacy/Stack.h index 6ae35c2..abd1e5d 100644 --- a/legacy/Stack.h +++ b/legacy/Stack.h @@ -24,20 +24,17 @@ class Stack data.pop_back(); return toReturn; } - - bool moreThanOne() const { - return data.size() > 1; - } - + void push(const Contained &newElem) { data.push_back(newElem); } const Contained * peek() const { - if (data.empty()) + if (data.empty()) { return NULL; - else + } else { return &data.back(); + } } private: std::vector data; diff --git a/legacy/StringTokenizer.cpp b/legacy/StringTokenizer.cpp index 869e360..a6bd74c 100644 --- a/legacy/StringTokenizer.cpp +++ b/legacy/StringTokenizer.cpp @@ -13,10 +13,10 @@ std::string StringTokenizer::nextToken() { while (currentOffset

Command Lines

-Creating temporary file "C:\Users\Jason\AppData\Local\Temp\RSP9AF5.tmp" with contents +Creating temporary file "C:\Users\Jason\AppData\Local\Temp\RSP47B5.tmp" with contents [ /nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"Debug/InfixEvaluator.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c "C:\Users\Jason\Documents\GitHub\infiz\legacy\Evaluator.cpp" ] -Creating command line "cl.exe @C:\Users\Jason\AppData\Local\Temp\RSP9AF5.tmp" +Creating command line "cl.exe @C:\Users\Jason\AppData\Local\Temp\RSP47B5.tmp" Creating command line "link.exe -lib /nologo /out:"Debug\InfixEvaluator.lib" .\Debug\Evaluator.obj .\Debug\RationalNumber.obj .\Debug\StringTokenizer.obj "

Output Window

Compiling... @@ -21,22 +21,14 @@ Creating library... --------------------Configuration: tests - Win32 Debug--------------------

Command Lines

-Creating temporary file "C:\Users\Jason\AppData\Local\Temp\RSP9CBB.tmp" with contents -[ -/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Debug/tests.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\Users\Jason\Documents\GitHub\infiz\legacy\tests.cpp" -] -Creating command line "cl.exe @C:\Users\Jason\AppData\Local\Temp\RSP9CBB.tmp" -Creating temporary file "C:\Users\Jason\AppData\Local\Temp\RSP9CBC.tmp" with contents +Creating temporary file "C:\Users\Jason\AppData\Local\Temp\RSP495C.tmp" with contents [ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/tests.pdb" /debug /machine:I386 /out:"Debug/tests.exe" /pdbtype:sept .\Debug\tests.obj \Users\Jason\Documents\GitHub\infiz\legacy\InfixEvaluator\Debug\InfixEvaluator.lib ] -Creating command line "link.exe @C:\Users\Jason\AppData\Local\Temp\RSP9CBC.tmp" +Creating command line "link.exe @C:\Users\Jason\AppData\Local\Temp\RSP495C.tmp"

Output Window

-Compiling... -tests.cpp Linking...