[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Push / pull model
Buttom up parsers do require implicit state; you've got a stack of contexts that you are working with in the parsing tool. But the parsing tool manages the the stack for you when it runs. Also, when you are building a parse tree using such a tool, quite often you maintain state in the context items on the stack to keep track of the parse. Keith -----Original Message----- From: John Cowan [mailto:jcowan@r...] Sent: Thursday, September 19, 2002 12:21 PM To: keith@w... Cc: John Cowan; Lars Marius Garshol; xml-dev@l... Subject: Re: Push / pull model Keith W. Boone (keith@w...) 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!" --J.R.R. Tolkien -- John Cowan jcowan@r... "You need a change: try Canada" "You need a change: try China" --fortune cookies opened by a couple that I know ----------------------------------------------------------------- The xml-dev list is sponsored by XML.org <http://www.xml.org>, an initiative of OASIS <http://www.oasis-open.org> The list archives are at http://lists.xml.org/archives/xml-dev/ To subscribe or unsubscribe from this list use the subscription manager: <http://lists.xml.org/ob/adm.pl>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|