#ifndef LEXER_H #define LEXER_H #include #include #include #include #include #include "Token.h" using namespace std; class Lexer { public: Lexer(); virtual ~Lexer(); void add_keyword(string word); void add_punctuation_char(char c); void add_operator(string oper); string unescape_string(string text); vector parse_line(string line); pair parse_token(string line); type_of_token guess_type(string value); bool is_keyword(string value); bool is_punctuation(char c); bool is_operator(string value ); protected: private: vector keywords; vector punctuation; vector operators; }; #endif // LEXER_H