Skip to content

Commit cb6c751

Browse files
ahuo1GodGun123
andauthored
fix: use dynamically growing error buffer in ParseScript (#1007)
* fix: use dynamically growing error buffer in ParseScript * style: format code * fix: use dynamically growing error buffer in ValidateScript --------- Co-authored-by: ahuo <[email protected]>
1 parent 4b23dca commit cb6c751

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/script_parser.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ using ErrorReport = lexy_ext::_report_error<char*>;
1313

1414
Expected<ScriptFunction> ParseScript(const std::string& script)
1515
{
16-
char error_msgs_buffer[2048];
16+
std::string error_msgs_buffer; // dynamically growing error buffer
1717

1818
auto input = lexy::string_input<lexy::utf8_encoding>(script);
19-
auto result =
20-
lexy::parse<BT::Grammar::stmt>(input, ErrorReport().to(error_msgs_buffer));
19+
20+
auto reporter = ErrorReport().to(std::back_inserter(error_msgs_buffer));
21+
auto result = lexy::parse<BT::Grammar::stmt>(input, reporter);
2122
if(result.has_value() && result.error_count() == 0)
2223
{
2324
try
@@ -69,11 +70,12 @@ BT::Expected<Any> ParseScriptAndExecute(Ast::Environment& env, const std::string
6970

7071
Result ValidateScript(const std::string& script)
7172
{
72-
char error_msgs_buffer[2048];
73+
std::string error_msgs_buffer; // dynamically growing error buffer
7374

7475
auto input = lexy::string_input<lexy::utf8_encoding>(script);
75-
auto result =
76-
lexy::parse<BT::Grammar::stmt>(input, ErrorReport().to(error_msgs_buffer));
76+
77+
auto reporter = ErrorReport().to(std::back_inserter(error_msgs_buffer));
78+
auto result = lexy::parse<BT::Grammar::stmt>(input, reporter);
7779
if(result.has_value() && result.error_count() == 0)
7880
{
7981
try

0 commit comments

Comments
 (0)