diff --git a/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.cpp b/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.cpp index f09c5715285c145cd768084b4165b3738f34cf61..ed60b219ac50dc7980ea04b88713827c6bd59309 100644 --- a/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.cpp +++ b/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.cpp @@ -113,7 +113,7 @@ Token gettok( ) { }; // else if strtod found a real number (or at least a double) result.first = tok_number; - result.second = tmpValue; // let C++ do any converisons + result.second = static_cast<numberType>(tmpValue); currentColumnNumber += (omega - alpha) -1; // minus one because we incremented it before the switch diff --git a/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.h b/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.h index 6dd74587d84d5e93da16dfbdf2e3b103a2ca8e34..4c47d441b2ca74a544703d663ab8903f27faae53 100644 --- a/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.h +++ b/recursiveDescentParsers/cplusplus/halfBakedCompiler/lexer.h @@ -27,7 +27,7 @@ namespace lex { // Utility Types -typedef double numberType; // feel fee to change this to something else like int or float or bigint.... +typedef double numberType; // also works with (at least) float or long // See https://en.cppreference.com/w/cpp/numeric/math/nan static const numberType bad_number = std::nan( "1" );