Electroneum
token.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
5 namespace mstch {
6 
7 using delim_type = std::pair<std::string, std::string>;
8 
9 class token {
10  public:
11  enum class type {
14  };
15  token(const std::string& str, std::size_t left = 0, std::size_t right = 0);
16  type token_type() const { return m_type; };
17  const std::string& raw() const { return m_raw; };
18  const std::string& name() const { return m_name; };
19  const std::string& partial_prefix() const { return m_partial_prefix; };
20  const delim_type& delims() const { return m_delims; };
21  void partial_prefix(const std::string& p_partial_prefix) {
22  m_partial_prefix = p_partial_prefix;
23  };
24  bool eol() const { return m_eol; }
25  void eol(bool eol) { m_eol = eol; }
26  bool ws_only() const { return m_ws_only; }
27 
28  private:
30  std::string m_name;
31  std::string m_raw;
32  std::string m_partial_prefix;
34  bool m_eol;
35  bool m_ws_only;
36  type token_info(char c);
37 };
38 
39 }
token(const std::string &str, std::size_t left=0, std::size_t right=0)
Definition: token.cpp:18
type
Definition: token.hpp:11
const delim_type & delims() const
Definition: token.hpp:20
bool ws_only() const
Definition: token.hpp:26
bool m_ws_only
Definition: token.hpp:35
type token_type() const
Definition: token.hpp:16
std::string m_raw
Definition: token.hpp:31
type m_type
Definition: token.hpp:29
std::string m_name
Definition: token.hpp:30
Definition: mstch.hpp:11
type token_info(char c)
Definition: token.cpp:6
const std::string & partial_prefix() const
Definition: token.hpp:19
bool eol() const
Definition: token.hpp:24
delim_type m_delims
Definition: token.hpp:33
bool m_eol
Definition: token.hpp:34
void partial_prefix(const std::string &p_partial_prefix)
Definition: token.hpp:21
const std::string & name() const
Definition: token.hpp:18
std::string m_partial_prefix
Definition: token.hpp:32
std::pair< std::string, std::string > delim_type
Definition: token.hpp:7
const std::string & raw() const
Definition: token.hpp:17
Definition: token.hpp:9
void eol(bool eol)
Definition: token.hpp:25