diff options
Diffstat (limited to 'MoonParser/parser.hpp')
-rw-r--r-- | MoonParser/parser.hpp | 15 |
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. |
34 | typedef std::basic_string<char32_t> input; | 34 | typedef std::basic_string<wchar_t> input; |
35 | typedef input::iterator input_it; | 35 | typedef input::iterator input_it; |
36 | 36 | typedef std::wstring_convert<std::codecvt_utf8<input::value_type>> Converter; | |
37 | template<class Facet> | ||
38 | struct deletable_facet : Facet | ||
39 | { | ||
40 | template<class ...Args> | ||
41 | deletable_facet(Args&& ...args): Facet(std::forward<Args>(args)...) {} | ||
42 | ~deletable_facet() {} | ||
43 | }; | ||
44 | typedef std::wstring_convert<deletable_facet<std::codecvt<input::value_type, char, std::mbstate_t>>, input::value_type> Converter; | ||
45 | 37 | ||
46 | namespace parserlib { | 38 | namespace 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. |
153 | class input_range { | 145 | class input_range { |
154 | public: | 146 | public: |
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. |