From 6b6e98d062c7ec5f11be79ed5164aa59047dab30 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Tue, 18 Oct 2022 10:26:48 +0800 Subject: move utf8 bom skipping to parser. --- src/yuescript/yue_compiler.cpp | 2 +- src/yuescript/yue_parser.cpp | 3 +++ src/yuescript/yuescript.h | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index bdb07e0..2be4498 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -60,7 +60,7 @@ namespace yue { typedef std::list str_list; -const std::string_view version = "0.15.4"sv; +const std::string_view version = "0.15.5"sv; const std::string_view extension = "yue"sv; class YueCompilerImpl { diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp index 9fca97e..f86afb4 100755 --- a/src/yuescript/yue_parser.cpp +++ b/src/yuescript/yue_parser.cpp @@ -678,6 +678,9 @@ YueParser::YueParser() { ParseInfo YueParser::parse(std::string_view codes, rule& r) { ParseInfo res; + if (codes.substr(0, 3) == "\xEF\xBB\xBF"sv) { + codes = codes.substr(3); + } try { res.codes = std::make_unique(); *(res.codes) = _converter.from_bytes(&codes.front(), &codes.back() + 1); diff --git a/src/yuescript/yuescript.h b/src/yuescript/yuescript.h index a327387..2d2d660 100644 --- a/src/yuescript/yuescript.h +++ b/src/yuescript/yuescript.h @@ -40,7 +40,6 @@ yue.read_file = function(fname) end local text = assert(file:read("*a")) file:close() - if string.sub(text, 1, 3) == "\239\187\191" then text = string.sub(text, 4) end return text end local function get_options(...) -- cgit v1.2.3-55-g6feb