Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #1127
| From | George Neuner <gneuner2@comcast.net> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Programming language and IDE design |
| Date | 2014-03-02 12:21 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <14-03-005@comp.compilers> (permalink) |
| References | <13-11-016@comp.compilers> <13-11-018@comp.compilers> <14-03-003@comp.compilers> |
On Sun, 2 Mar 2014 00:03:18 +0000 (UTC), hu47121@usenet.kitty.sub.org
(Hannah) wrote:
>I don't think C++ is LL(2).
>
>Think e.g.
>
> T(a)++;
>vs.
> T(a)[5];
>
>(Example from n3485, page 131).
>
>The former is a statement, while the latter is a declaration, and you
>can decide this only very late. As the first four tokens are the same,
>C++ can't be LL(4), at least.
>
>As you can substitute '('^n x ')' ^n for a in this example (i.e. enclose
>that identifier in any number of parentheses), C++ isn't LL(n) for any n.
>(In the first case, "a" is a subexpression, that can be parenthesized,
>while in the second case, it's the declarator-id that can also be
>parenthesized).
I suppose that it depends on your definitions: a "syntax" token is
different from a "grammar" token ... a single grammar token can
represent an expression of any complexity. I think the whole notion
of lookahead is ambiguously level dependent.
But I concede your point re: syntax.
>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.
However, both C and C++ are LL(*). LL(*) Antlr-3 grammars are
available for both http://www.antlr3.org/grammar/list.html
Also in that list you'll find an LL(k) Antlr-2 grammar for C/C++ which
at quick glance claims to be LL(2) ... but I haven't examined it to
know what tricks it may be employing.
http://hg.netbeans.org/main/file/tip/cnd.modelimpl/src/org/netbeans/modules/c
nd/modelimpl/parser/cppparser.g
George
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