Hacker News new | ask | show | jobs
by orlp 1584 days ago
> If you wanted whatever it was your grammar accepted

It is one-line, two-rule PEG grammar. What does it accept, and why? If we can't state this with confidence in such a tiny example, what makes us have any confidence in larger, more complex grammars? We should understand our tools. PEG pretends to be simple and understandable, but it's much less so than it might seem on the surface.

1 comments

Simple rules can give surprising, complex behaviour.

That's a good point. Unfortunately, it's also true not only of PEGs and recursive-descent parsing, but also of essentially every parsing formalism out there. So it doesn't seem to disqualify PEGs in particular.

(It's also true of programming languages generally: For which inputs does Collatz halt, and why?)

I contest that. The parsers based on the formalism of CFG do not have that problem. The straightforward mental model of the user always matches their behaviour, no complexity, no surprises.