36 lines
841 B
Plaintext
36 lines
841 B
Plaintext
|
Headings add exit matcher for heading
|
||
|
|
||
|
Paragraphs add exit matcher for elements (but it should be sans paragraph)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
* foo
|
||
|
* bar
|
||
|
* baz
|
||
|
|
||
|
context tree -> ()
|
||
|
|
||
|
match * foo
|
||
|
|
||
|
context tree -> exit(heading matcher)
|
||
|
|
||
|
check exit
|
||
|
invoke heading matcher
|
||
|
check exit
|
||
|
invoke heading matcher
|
||
|
check exit
|
||
|
invoke heading matcher
|
||
|
adds second heading matcher exit
|
||
|
|
||
|
|
||
|
Ways around this:
|
||
|
- Always parse SOMETHING before checking for exit
|
||
|
- Doesn't always seem possible
|
||
|
- Disable exit matchers during exit check
|
||
|
- Seems like it would break syntax
|
||
|
- Have separate parsers for the beginning of the exit condition (for example, checking for just the headline instead of the full heading parser)
|
||
|
- Won't be possible with paragraphs ending at any other element
|
||
|
- Check exit matchers in parent parser
|
||
|
- Will this work? seems like it would just create larger loops
|