aboutsummaryrefslogtreecommitdiff
path: root/MoonParser/parser.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'MoonParser/parser.hpp')
-rw-r--r--MoonParser/parser.hpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/MoonParser/parser.hpp b/MoonParser/parser.hpp
index cbabf06..ae83215 100644
--- a/MoonParser/parser.hpp
+++ b/MoonParser/parser.hpp
@@ -31,17 +31,9 @@ inline std::size_t constexpr operator"" _id(const char* s, size_t)
31} 31}
32 32
33///type of the parser's input. 33///type of the parser's input.
34typedef std::basic_string<char32_t> input; 34typedef std::basic_string<wchar_t> input;
35typedef input::iterator input_it; 35typedef input::iterator input_it;
36 36typedef std::wstring_convert<std::codecvt_utf8<input::value_type>> Converter;
37template<class Facet>
38struct deletable_facet : Facet
39{
40 template<class ...Args>
41 deletable_facet(Args&& ...args): Facet(std::forward<Args>(args)...) {}
42 ~deletable_facet() {}
43};
44typedef std::wstring_convert<deletable_facet<std::codecvt<input::value_type, char, std::mbstate_t>>, input::value_type> Converter;
45 37
46namespace parserlib { 38namespace parserlib {
47 39
@@ -152,6 +144,8 @@ typedef void (*parse_proc)(const pos &b, const pos &e, void *d);
152///input range. 144///input range.
153class input_range { 145class input_range {
154public: 146public:
147 virtual ~input_range() {}
148
155 ///begin position. 149 ///begin position.
156 pos m_begin; 150 pos m_begin;
157 151
@@ -160,7 +154,6 @@ public:
160 154
161 ///empty constructor. 155 ///empty constructor.
162 input_range() {} 156 input_range() {}
163 virtual ~input_range() {}
164 157
165 /** constructor. 158 /** constructor.
166 @param b begin position. 159 @param b begin position.