Restore the context to the last saved one and drop it.
The saved context MUST be removed.
Called each time that the last alternative (of the
previous alternative point) is starting.
Should be similar to context_restore followed by context_cut.
The current state must be set. It is the
first state, the root of the search.
When the feature returns, 'search_is_success' must be
checked to know if a solution was found.
When search_is_success=False, it means that there
is no solution at all. Conversely, if search_is_success=True,
then the first solution is found and 'search_next'
can be called to get the next solution if it exists.
When the feature returns, 'search_is_success' must be
checked to know if a solution was found.
When search_is_success=False at the end, it means that there
is no more solution. Conversely, if search_is_success=True,
then a solution is found and 'search_next'
can be called again to get the next solution.
This occurs if either a solution is found
(and then search_is_success=True) or no solution
is found (and then search_is_success=False).
That feature should be modified only by continue
and backtrack.
Call the action for each group that matched during the last match.
The first action argument is the name of the group; the second is its content.
The order of the action calls is the ascending order of the group definitions in the pattern.
Note: the same STRING objects may be reused, so be sure to copy them if you want to keep them.
Item(0) is the starting position in the text where
starts the substring who is matching the whole pattern.
Next elements are the starting positions in the text of
substrings matching sub-elements of the pattern.
Elements before item(0) refers to positions in the
substitution_pattern. They are stored in reverse order,
the first verbatim string being at index -1, the
second one at index -2...