From 9db4e054627eb30b4e5a7333405c423df5a8d490 Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Tue, 4 Mar 2014 17:02:24 +0100 Subject: Did some refactoring to improve readability * now using range for-loops during Tree printing * inroduced popNode helper method which helps to simplify the Tree construction implementation --- src/utils.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/utils.cc') diff --git a/src/utils.cc b/src/utils.cc index 9a081f3..62c3af9 100644 --- a/src/utils.cc +++ b/src/utils.cc @@ -3,10 +3,11 @@ #include "exceptions.h" #include +#include namespace SimpleParser { -TokenType getTokenType(char tmp) { +TokenType determineToken(char tmp) { if ( std::isalpha(tmp) ) { return TokenType::VALUE_IDENTIFIER; } else { @@ -33,7 +34,7 @@ TokenType getTokenType(char tmp) { } } -PrecedenceLevel getPrecedence(TokenType token) { +PrecedenceLevel precedence(TokenType token) { switch ( token ) { case TokenType::VALUE_NUMBER: case TokenType::VALUE_IDENTIFIER: { @@ -73,7 +74,7 @@ std::vector lexer(std::string term) { for ( auto termIter = term.begin(); termIter != term.end(); termIter++ ) { - token = getTokenType(*termIter); + token = determineToken(*termIter); if ( token == TokenType::VALUE_NUMBER || token == TokenType::VALUE_IDENTIFIER || @@ -160,4 +161,12 @@ std::vector lexer(std::string term) { return output; } +double doubleToString(const std::string& str) { + double value; + std::istringstream convertStream(str); + convertStream >> value; + + return value; +} + } -- cgit v1.2.3