#pragma once #include #include #include #include using index_t = size_t; std::vector split(std::string s); struct Location { size_t line; size_t column; }; bool operator==(const Location &a, const Location &b); struct Token { std::string type; std::string value; Location location; }; bool operator==(const Token &a, const Token &b); std::ostream& operator<<(std::ostream& os, const Token& token);