From 6f73b76c5f938e70b488c20e094540c9dd380283 Mon Sep 17 00:00:00 2001 From: yhirose Date: Wed, 27 Jan 2021 13:03:13 -0500 Subject: [PATCH] Fix #141 --- peglib.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/peglib.h b/peglib.h index 61950d0..b7c3164 100644 --- a/peglib.h +++ b/peglib.h @@ -184,6 +184,10 @@ inline std::u32string decode(const char *s8, size_t l) { return out; } +template const char *u8(const T *s) { + return reinterpret_cast(s); +} + /*----------------------------------------------------------------------------- * escape_characters *---------------------------------------------------------------------------*/ @@ -3075,9 +3079,7 @@ private: seq(g["COMMA"], g["Number"])); g["Number"] <= seq(oom(cls("0-9")), g["Spacing"]); - g["LEFTARROW"] <= - seq(cho(lit("<-"), lit(reinterpret_cast(u8"←"))), - g["Spacing"]); + g["LEFTARROW"] <= seq(cho(lit("<-"), lit(u8(u8"←"))), g["Spacing"]); ~g["SLASH"] <= seq(chr('/'), g["Spacing"]); ~g["PIPE"] <= seq(chr('|'), g["Spacing"]); g["AND"] <= seq(chr('&'), g["Spacing"]); @@ -3089,8 +3091,8 @@ private: ~g["CLOSE"] <= seq(chr(')'), g["Spacing"]); g["DOT"] <= seq(chr('.'), g["Spacing"]); - g["CUT"] <= seq(lit(u8"↑"), g["Spacing"]); - ~g["LABEL"] <= seq(cho(chr('^'), lit(u8"⇑")), g["Spacing"]); + g["CUT"] <= seq(lit(u8(u8"↑")), g["Spacing"]); + ~g["LABEL"] <= seq(cho(chr('^'), lit(u8(u8"⇑"))), g["Spacing"]); ~g["Spacing"] <= zom(cho(g["Space"], g["Comment"])); g["Comment"] <=