Dealing with Precedence, Left Recursion, and Associativity
Expressions have always been a hassle to specify with top-down grammars and to recognize by hand with recursive-descent parsers, first because the most natural grammar is ambiguous and second because the most natural specification uses a special kind of recursion called left recursion. Weâll discuss the latter in detail later, but for now, keep in mind that top-down grammars and parsers cannot deal with left recursion in their classic form.
To illustrate the problem, imagine a simple arithmetic expression language that has multiply and addition operators and integer âatoms.â Expressions are self-similar, so itâs natural for us to say that a multiplicative expression is two ...
Get The Definitive ANTLR 4 Reference, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.