|
From: | Akim Demaille |
Subject: | Re: Are Google summer of code 2006 ideas still available? |
Date: | Sun, 1 Apr 2007 07:21:39 +0200 |
Le 1 avr. 07 à 06:46, Joel E. Denny a écrit :
On Fri, 30 Mar 2007, Akim Demaille wrote:- first, design a true AST for Bison something to represent the grammar we read. We have more or less something like this in Bison, but much work is done on it, it's not "faithful" to the entry, it's already heavily modified. Once this AST done, then be ready to process it for real, applying all the transformations we want (elimination of useless things,elimination of symbolic names, elimination of mid-rule actions, fusethe %unions, run semantic checks etc.).I've often wished that Bison's syntactic and semantic analysis phases were more fully separated. However, this sounds like a major rewrite of vital Bison internals. If someone tackles this over the summer, I hope we canfind a way to maintain a stable version of Bison in parallel.
IMO there is actually more value to get from this rewrite than from %import itself: the latter is very reachable from the former. And a clean AST will considerably ease many other improvements. Not to mention that some of the bugs we hit would never have existed in the first place.
I wish Bison was in C++... Joel, WDYT? This kind of changes would really benefit from moving to some simple, standard, portable, C++.Yeah, I know Paul, there's no such thing as portability, just sweat :)With a strong emphasis on *simple* C++, I agree. I don't want to scareaway developers by employing hardcore generic programming, multipleinheritance, etc. I imagine a "C++ Don'ts" section evolving in HACKING.
I wholeheartedly agree. Moreover, I guess harder constructs are less portable anyway. What I mean when I say C++ for Bison is basically classes (with private parts), iostreams, and structures such as lists and vectors.
I'm not strong with portability issues, so I'll rely on others to figurethat part out.
If Paul is on our side and the project is accepted, let ask rms again.
[Prev in Thread] | Current Thread | [Next in Thread] |