From b7eeb6676b8f67be7cc1560d9586f2672a5ad0eb Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Wed, 31 Aug 2016 19:15:13 +0000 Subject: Print parsed tokens --- main.cpp | 3 +++ parser.cpp | 18 ++++++++++++++++++ parser.h | 6 ++++++ token.cpp | 3 +++ token.h | 1 + 5 files changed, 31 insertions(+) diff --git a/main.cpp b/main.cpp index 22d58b9..0e8e367 100644 --- a/main.cpp +++ b/main.cpp @@ -21,5 +21,8 @@ int main(int argc, char** argv) { std::string input = readFile(filename); std::cout << input; + Parser parser(input); + parser.printTokens(); + return 0; } diff --git a/parser.cpp b/parser.cpp index 76da588..828b574 100644 --- a/parser.cpp +++ b/parser.cpp @@ -1,4 +1,5 @@ #include "parser.h" +#include #include #include #include "token.h" @@ -9,6 +10,10 @@ Parser::Parser(std::string& input) { bool isString = false; std::string tmp; for (auto& c : input) { + if (std::isspace(c)) { + continue; + } + if (c == '"' && !isString) { isString = true; continue; @@ -31,4 +36,17 @@ Parser::Parser(std::string& input) { tmp += c; } } + + m_tokens = result; +} + +std::vector& Parser::getTokens() { + return m_tokens; +} + +void Parser::printTokens() { + for (auto& token : getTokens()) { + std::cout << "Token[" << token.getLexeme() << "] "; + } + std::cout << std::endl; } diff --git a/parser.h b/parser.h index c29d8f1..eab8354 100644 --- a/parser.h +++ b/parser.h @@ -1,7 +1,13 @@ #pragma once #include +#include "token.h" +#include class Parser { + private: + std::vector m_tokens; public: Parser(std::string&); + std::vector& getTokens(); + void printTokens(); }; diff --git a/token.cpp b/token.cpp index 560f89e..df8c82a 100644 --- a/token.cpp +++ b/token.cpp @@ -5,3 +5,6 @@ Token::Token(std::string& lexeme, bool isString) : } +const std::string& Token::getLexeme() const { + return m_lexeme; +} diff --git a/token.h b/token.h index b6ad24d..0d3a314 100644 --- a/token.h +++ b/token.h @@ -8,4 +8,5 @@ class Token { public: Token(std::string& lexeme, bool isString); + const std::string& getLexeme() const; }; -- cgit v1.3