From 3f535edc133d7d6eb45ebf50627f3ee5deae1155 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Thu, 30 Jan 2020 19:19:45 +0800 Subject: make gcc happy. --- src/MoonP/moon_parser.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/MoonP/moon_parser.h') diff --git a/src/MoonP/moon_parser.h b/src/MoonP/moon_parser.h index 933aa7a..a0ad2fa 100644 --- a/src/MoonP/moon_parser.h +++ b/src/MoonP/moon_parser.h @@ -24,14 +24,17 @@ namespace MoonP { struct ParseInfo { ast_ptr node; std::string error; - std::unique_ptr input; + std::unique_ptr codes; std::string errorMessage(std::string_view msg, const input_range* loc) const; }; +template +struct identity { typedef T type; }; + #define AST_RULE(type) \ rule type; \ ast type##_impl = type; \ - template<> inline rule& getRule() { return type; } + inline rule& getRule(identity) { return type; } extern std::unordered_set LuaKeywords; extern std::unordered_set Keywords; @@ -76,11 +79,17 @@ protected: std::stack doStack; }; + + template + inline rule& getRule() { + return getRule(identity()); + } + private: Converter _converter; template - inline rule& getRule() { + inline rule& getRule(identity) { assert(false); return Cut; } -- cgit v1.2.3-55-g6feb