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