Skip to content

Commit

Permalink
Change the way that the pending operations are applied to symbol table
Browse files Browse the repository at this point in the history
parsers.  Instead of trying to find all of them at the start of the top-level
parse, they are recorded in the context, and then applied at the end of the
top-level parse.  The previous technique did not work, simplt because the
top-level parse cannot see all the parser involded -- some are behind rule
firewalls, by design.

Related to #183.
Fixes #204.
  • Loading branch information
tzlaine committed Nov 1, 2024
1 parent 4344dd3 commit 94a9dae
Show file tree
Hide file tree
Showing 5 changed files with 285 additions and 112 deletions.
3 changes: 2 additions & 1 deletion include/boost/parser/concepts.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ namespace boost { namespace parser {
std::declval<int &>(),
std::declval<ErrorHandler const &>(),
std::declval<detail::nope &>(),
std::declval<detail::symbol_table_tries_t &>()));
std::declval<detail::symbol_table_tries_t &>(),
std::declval<detail::pending_symbol_table_operations_t &>()));

template<typename T, typename I, typename S, typename GlobalState>
concept error_handler =
Expand Down
Loading

0 comments on commit 94a9dae

Please sign in to comment.