Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #1126
| From | Ivan Godard <ivan@ootbcomp.com> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: LL vs LR, was Programming language and IDE design |
| Date | 2014-03-01 20:31 -0800 |
| Organization | A noiseless patient Spider |
| Message-ID | <14-03-004@comp.compilers> (permalink) |
| References | <13-11-016@comp.compilers> <13-11-018@comp.compilers> <14-03-003@comp.compilers> |
On 3/1/2014 4:03 PM, Hannah wrote: <snip> > So the C grammar is not LL(k) for any k, either. You can probably parse > that particular part of the C/C++ grammar easily using LR. > > Hannah. The standard way to handle this, and many such other cases where a formal grammar is not LL, is to introduce a function (in recursive descent) or rule (in parser generators) that recognizes "parenthesized thingy" and then figure it out later. Yes, that amounts to LR, but you only need it in a few specialized places. There's an equivalent trick in "DOI=1," in Fortran, where you let the lexer resolve it so the parser sees proper lexemes, not characters. C and its descendants are well known for being inhumane (as well as parser-unfriendly) in their excessive overloading of parens and braces. More friendly (or less keystroke-obsessed) languages require all syntactic regions to have both openers and closers, unique for each kind of region, to avoid the canonical C bug of mismatched closers; Algol68 is an early example of doing it right. [C++ is unusually bad, with some parts just plain ambiguous. In the example a few messages back, I gather that the rule is that if you can parse it as a declaration, it's a declaration, otherwise it's something else. -John]
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Programming language and IDE design Martin Ward <martin@gkc.org.uk> - 2013-11-16 15:55 +0000
Re: Programming language and IDE design Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2013-11-16 19:48 +0100
Re: Programming language and IDE design George Neuner <gneuner2@comcast.net> - 2013-11-18 19:02 -0500
Re: Programming language and IDE design "Steven G. Kargl" <sgk@REMOVEtroutmask.apl.washington.edu> - 2013-11-19 15:36 +0000
Re: Programming language and IDE design George Neuner <gneuner2@comcast.net> - 2013-11-19 12:41 -0500
Re: Parsing Fortran, was Programming language and IDE design glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2013-11-19 20:18 +0000
Re: Parsing Fortran, was Programming language and IDE design glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2013-11-21 21:22 +0000
Re: Programming language and IDE design wclodius@earthlink.net (William Clodius) - 2013-11-22 18:27 -0700
Re: Programming language and IDE design "robin" <robin51@dodo.com.au> - 2013-11-25 10:33 +1100
Re: Programming language and IDE design Martin Ward <martin@gkc.org.uk> - 2013-12-03 15:15 +0000
Re: Programming language and IDE design Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2013-12-05 03:35 +0100
Re: Programming language and IDE design hu47121@usenet.kitty.sub.org (Hannah) - 2014-03-02 00:03 +0000
Re: LL vs LR, was Programming language and IDE design Ivan Godard <ivan@ootbcomp.com> - 2014-03-01 20:31 -0800
Re: LL vs LR, was Programming language and IDE design Kaz Kylheku <kaz@kylheku.com> - 2014-03-02 18:41 +0000
Re: Programming language and IDE design George Neuner <gneuner2@comcast.net> - 2014-03-02 12:21 -0500
Re: Programming language and IDE design Jonathan Thornburg <jonathan@cobalt.astro.indiana.edu> - 2013-11-19 19:39 +0000
csiph-web