Skip to content

Commit

Permalink
Merge pull request #66 from lolengine/fix-lua-backtracking
Browse files Browse the repository at this point in the history
Reduce backtracking in Lua “for” statement parsing.
  • Loading branch information
ColinH authored Aug 4, 2017
2 parents fec6fbe + 5e63cff commit bc56a60
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/example/pegtl/lua53_parse.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,9 +300,9 @@ namespace lua53
struct else_statement : pegtl::if_must< key_else, statement_list< key_end > > {};
struct if_statement : pegtl::if_must< key_if, seps, expression, seps, key_then, statement_list< at_elseif_else_end >, seps, pegtl::until< pegtl::sor< else_statement, key_end >, elseif_statement, seps > > {};

struct for_statement_one : pegtl::seq< name, seps, pegtl::one< '=' >, seps, expression, seps, pegtl::one< ',' >, seps, expression, pegtl::pad_opt< pegtl::if_must< pegtl::one< ',' >, seps, expression >, sep >, key_do, statement_list< key_end > > {};
struct for_statement_two : pegtl::seq< name_list_must, seps, key_in, seps, expr_list_must, seps, key_do, statement_list< key_end > > {};
struct for_statement : pegtl::if_must< key_for, seps, pegtl::sor< for_statement_one, for_statement_two > > {};
struct for_statement_one : pegtl::seq< pegtl::one< '=' >, seps, expression, seps, pegtl::one< ',' >, seps, expression, pegtl::pad_opt< pegtl::if_must< pegtl::one< ',' >, seps, expression >, sep > > {};
struct for_statement_two : pegtl::seq< pegtl::opt< pegtl::if_must< pegtl::one< ',' >, seps, name_list_must, seps > >, key_in, seps, expr_list_must, seps > {};
struct for_statement : pegtl::if_must< key_for, seps, name, seps, pegtl::sor< for_statement_one, for_statement_two >, key_do, statement_list< key_end > > {};

struct assignment_variable_list : pegtl::list_must< variable, pegtl::one< ',' >, sep > {};
struct assignments_one : pegtl::if_must< pegtl::one< '=' >, seps, expr_list_must > {};
Expand Down

0 comments on commit bc56a60

Please sign in to comment.