On 2020-10-26 at 10:59 -07, Tom Gillespie <[email protected]> wrote...
> You can identify headlines, but you can't identify nesting level;
Do you need to? This is valid as an entire Org file, I think:
*** foo
* bar
***** baz
And that can be represented in EBNF. I'm not aware of places where behavior is
indent-level specific, except inline tasks, and that edge case can be
represented.
> There is a similar issue with the indentation level in
> order to correctly interpret plain lists.
list ::= ('+' string newline)+ sublist?
sublist ::= (indent list)+
I think this captures lists?
> Another example of something that requires a stack is the greater
> blocks, where you have #+begin_{name} and #+end_{name}, and the names
> must match.
Definitely not able to be represented in EBNF, unless as you say {name} is a
limited vocabulary.
-k.