I discovered that my Arborist library - https://github.com/davidkellis/arborist/ - doesn’t properly (if you ask me; proper is subjective since it isn’t part of the original PEG formalism) handle left-recursion in two different situations.

I spent most of December either doing Christmas stuff with family, or thinking about how to solve the left-recursion problem. Long story short, it looks like the parser needs to maintain a tree of of recursive rule applications, on a per-rule basis, such that only the first occurrence of recursion within a sequence of child nodes should grow the seed maximally, and otherwise the node should grow the seed minimally. Out of context, non of that makes sense, but perhaps I’ll write a longer post later explaining what I mean. I probably won’t though, because right now I’m the only one who cares about the solution. Later on, if someone else wants to know, I’d be much more likely to write up an explanation.

Once I get the parser fixed, I’ll be able to resume implementing the Able grammar.