void addNumberTest(Lexer& lexr) { // TODO: add support for decimal point and negative sign lexr.addTest( [] (Scanner& sc) { std::cout << "Running Number test...\n"; char c = sc.getCurrentChar(); if (NUMBER_CHARS.find(c) != std::string::npos) { int lineNumber = sc.getLineNumber(); int columnNumber = sc.getColumnNumber(); std::string tokenString(1, c); while (NUMBER_CHARS.find(sc.fetchNextChar()) != std::string::npos) { tokenString += sc.moveToNextChar(); } return Token(lineNumber, columnNumber, tokenString, TType::Values::Number); } return Token(); } ); }