aboutsummaryrefslogtreecommitdiff
path: root/MoonParser/parser.hpp
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2019-10-29 11:25:27 +0800
committerLi Jin <dragon-fly@qq.com>2019-10-29 11:25:27 +0800
commit975167856ed0b11c2ede03c6eb750ca4e4a6a7fc (patch)
treefa4369fe7e7d49c63cae93d6c5b52b78116f58cd /MoonParser/parser.hpp
parent726fee3152c81fdac7e3ad5f663bfbea8f99ddd8 (diff)
downloadyuescript-975167856ed0b11c2ede03c6eb750ca4e4a6a7fc.tar.gz
yuescript-975167856ed0b11c2ede03c6eb750ca4e4a6a7fc.tar.bz2
yuescript-975167856ed0b11c2ede03c6eb750ca4e4a6a7fc.zip
complete moon compiler in C++.
Diffstat (limited to 'MoonParser/parser.hpp')
-rw-r--r--MoonParser/parser.hpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/MoonParser/parser.hpp b/MoonParser/parser.hpp
index a84b9a3..cbf0168 100644
--- a/MoonParser/parser.hpp
+++ b/MoonParser/parser.hpp
@@ -1,5 +1,4 @@
1#ifndef PARSER_HPP 1#pragma once
2#define PARSER_HPP
3 2
4 3
5//gcc chokes without rule::rule(const rule &), 4//gcc chokes without rule::rule(const rule &),
@@ -16,6 +15,8 @@
16#include <codecvt> 15#include <codecvt>
17#include <locale> 16#include <locale>
18 17
18namespace parserlib {
19
19// const str hash helper functions 20// const str hash helper functions
20inline constexpr size_t hash(char const* input) 21inline constexpr size_t hash(char const* input)
21{ 22{
@@ -35,9 +36,6 @@ typedef std::basic_string<wchar_t> input;
35typedef input::iterator input_it; 36typedef input::iterator input_it;
36typedef std::wstring_convert<std::codecvt_utf8<input::value_type>> Converter; 37typedef std::wstring_convert<std::codecvt_utf8<input::value_type>> Converter;
37 38
38namespace parserlib {
39
40
41class _private; 39class _private;
42class _expr; 40class _expr;
43class _context; 41class _context;
@@ -66,7 +64,7 @@ public:
66 int m_col; 64 int m_col;
67 65
68 ///null constructor. 66 ///null constructor.
69 pos() {} 67 pos():m_line(-1),m_col(0) {}
70 68
71 /** constructor from input. 69 /** constructor from input.
72 @param i input. 70 @param i input.
@@ -425,6 +423,3 @@ template <class T> T &operator << (T &stream, const input_range &ir) {
425 423
426 424
427} //namespace parserlib 425} //namespace parserlib
428
429
430#endif //PARSER_HPP