diff --git a/src/script_parser.cpp b/src/script_parser.cpp index 5bbc62006..95c629fa2 100644 --- a/src/script_parser.cpp +++ b/src/script_parser.cpp @@ -13,11 +13,12 @@ using ErrorReport = lexy_ext::_report_error; Expected ParseScript(const std::string& script) { - char error_msgs_buffer[2048]; + std::string error_msgs_buffer; // dynamically growing error buffer auto input = lexy::string_input(script); - auto result = - lexy::parse(input, ErrorReport().to(error_msgs_buffer)); + + auto reporter = ErrorReport().to(std::back_inserter(error_msgs_buffer)); + auto result = lexy::parse(input, reporter); if(result.has_value() && result.error_count() == 0) { try @@ -69,11 +70,12 @@ BT::Expected ParseScriptAndExecute(Ast::Environment& env, const std::string Result ValidateScript(const std::string& script) { - char error_msgs_buffer[2048]; + std::string error_msgs_buffer; // dynamically growing error buffer auto input = lexy::string_input(script); - auto result = - lexy::parse(input, ErrorReport().to(error_msgs_buffer)); + + auto reporter = ErrorReport().to(std::back_inserter(error_msgs_buffer)); + auto result = lexy::parse(input, reporter); if(result.has_value() && result.error_count() == 0) { try