Lists Home |
Date Index |
Keith W. Boone (email@example.com) scripsit:
> We may not use lexers that generate events, but we do use parsing tools that
> work that way. The events are reductions, and the actions of the event
> either build a parse tree, or interpret the code. In fact, these tools
> provide for a very natural way to specify the events [as a grammar], and
> produce very readable parsers.
Sure, you can write bottom-up parsers and they work well with push lexers.
Indeed, the reason yacc is such a win is that bottom-up parsing can be
table-driven and not require implicit state. But that doesn't mean that
the recursive descent pattern (which does not seem to be included in
pattern catalogs: why?) is not a sweet spot for many cases.
The redoubtable James Clark has said that it was much more straightforward
to write a RELAX NG validator for the compact syntax than for the XML
syntax, basically because the XML syntax could not make use of the
recursive descent pattern easily because the info items were being pushed.
Dar fys ma vel gom co palt, "Hoc
Pys go iskili far maino woc?
Pro si go fys do roc de
Do cat ym maino bocte
De volt fac soc ma taimful gyroc!"
John Cowan firstname.lastname@example.org
"You need a change: try Canada" "You need a change: try China"
--fortune cookies opened by a couple that I know