From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25723 invoked by alias); 30 Mar 2010 21:18:13 -0000 Mailing-List: contact archer-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: List-Id: Received: (qmail 25711 invoked by uid 22791); 30 Mar 2010 21:18:13 -0000 X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org From: Tom Tromey To: Sergio Durigan Junior Cc: Project Archer Subject: Re: Parser rewritting References: <201003301546.34866.sergiodj@redhat.com> Reply-To: Tom Tromey Date: Tue, 30 Mar 2010 21:18:00 -0000 In-Reply-To: <201003301546.34866.sergiodj@redhat.com> (Sergio Durigan Junior's message of "Tue, 30 Mar 2010 15:46:34 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2010-q1/txt/msg00098.txt.bz2 >>>>> "Sergio" == Sergio Durigan Junior writes: Sergio> The current parser is written using Bison, and unfortunately it Sergio> is insufficient to satisfy our current needs, especially for C++ Sergio> productions. A few particulars... We ran into some problems with the function-like cast notation. I think those are probably fixable, by not differentiating different kinds of names here, but we think there will be more problems. E.g., I suspect we'll run into problems when we get rid of the template name hack in the lexer. Also, there is no good way in bison to disable a production only when the parsing language is C++. You can play games by returning different tokens in different modes, or you can run a preprocessor on the grammar, but both of those are pretty ugly. Tom